RUN: /usr/share/launchpad-buildd/slavebin/slave-prep Forking launchpad-buildd slave process... Kernel version: Linux bos01-ppc64el-005 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:11 UTC 2017 ppc64le Buildd toolchain package versions: launchpad-buildd_157 python-lpbuildd_157 sbuild_0.67.0-2ubuntu7.1 bzr-builder_0.7.3+bzr174~ppa13~ubuntu14.10.1 bzr_2.7.0-2ubuntu3.1 git-build-recipe_0.3.4~git201611291343.dcee459~ubuntu16.04.1 git_1:2.7.4-0ubuntu1.3 dpkg-dev_1.18.4ubuntu1.3 python-debian_0.1.27ubuntu2. Syncing the system clock with the buildd NTP service... 15 Jan 11:15:53 ntpdate[1765]: adjust time server 10.211.37.1 offset 0.000139 sec RUN: /usr/share/launchpad-buildd/slavebin/in-target unpack-chroot --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 /home/buildd/filecache-default/64ab4a3b1843816d631a3747c16f42fa2d8de59d Creating target for build PACKAGEBUILD-14087662 RUN: /usr/share/launchpad-buildd/slavebin/in-target mount-chroot --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Starting target for build PACKAGEBUILD-14087662 RUN: /usr/share/launchpad-buildd/slavebin/in-target override-sources-list --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main' 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic main' 'deb http://ftpmaster.internal/ubuntu bionic main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu bionic-security main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu bionic-updates main restricted universe multiverse' Overriding sources.list in build-PACKAGEBUILD-14087662 RUN: /usr/share/launchpad-buildd/slavebin/in-target add-trusted-keys --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Adding trusted keys to build-PACKAGEBUILD-14087662 Warning: apt-key output should not be parsed (stdout is not a terminal) OK Warning: apt-key output should not be parsed (stdout is not a terminal) /etc/apt/trusted.gpg -------------------- pub rsa1024 2009-10-22 [SC] 60C3 1780 3A41 BA51 845E 371A 1E93 77A2 BA9E F27F uid [ unknown] Launchpad Toolchain builds /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32 uid [ unknown] Ubuntu Archive Automatic Signing Key (2012) /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid [ unknown] Ubuntu CD Image Automatic Signing Key (2012) RUN: /usr/share/launchpad-buildd/slavebin/in-target update-debian-chroot --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Updating target for build PACKAGEBUILD-14087662 Get:1 http://ftpmaster.internal/ubuntu bionic InRelease [235 kB] Get:2 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [15.4 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic InRelease [15.4 kB] Get:4 http://ftpmaster.internal/ubuntu bionic-security InRelease [65.4 kB] Get:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el Packages [13.7 kB] Get:6 http://ftpmaster.internal/ubuntu bionic-updates InRelease [65.4 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main Translation-en [9132 B] Get:8 http://ftpmaster.internal/ubuntu bionic/main ppc64el Packages [973 kB] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main ppc64el Packages [3300 B] Get:10 http://ftpmaster.internal/ubuntu bionic/main Translation-en [518 kB] Get:11 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main Translation-en [4552 B] Get:12 http://ftpmaster.internal/ubuntu bionic/restricted Translation-en [2384 B] Get:13 http://ftpmaster.internal/ubuntu bionic/universe ppc64el Packages [8114 kB] Get:14 http://ftpmaster.internal/ubuntu bionic/universe Translation-en [4941 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/multiverse ppc64el Packages [133 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/multiverse Translation-en [109 kB] Fetched 15.2 MB in 3s (4668 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages were automatically installed and are no longer required: g++-7 libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libidn2-0 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libnghttp2-14 libpsl5 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libstdc++-7-dev libunistring0 libwind0-heimdal Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: cpp-8 g++-8 gcc-8 gcc-8-base libasan5 libgcc-8-dev liblsan0 libnghttp2-14 libquadmath0 libstdc++-8-dev libtsan0 libubsan1 The following packages will be upgraded: adduser apt apt-transport-https base-files base-passwd binutils binutils-common binutils-powerpc64le-linux-gnu bsdutils build-essential coreutils cpp cpp-7 debconf debianutils dpkg dpkg-dev e2fslibs e2fsprogs fdisk findutils g++ g++-7 gcc gcc-7 gcc-7-base gnupg gnupg-agent gpgv init init-system-helpers libapparmor1 libapt-pkg5.0 libasan4 libasn1-8-heimdal libassuan0 libatomic1 libbinutils libblkid1 libc-bin libc-dev-bin libc6 libc6-dev libcap-ng0 libcap2 libcc1-0 libcomerr2 libcurl3-gnutls libdpkg-perl libfdisk1 libgcc-7-dev libgcc1 libgcrypt20 libgomp1 libgpg-error0 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal libidn11 libidn2-0 libip4tc0 libitm1 libkeyutils1 libkrb5-26-heimdal liblockfile-bin liblockfile1 libmount1 libnettle6 libnpth0 libp11-kit0 libpcre3 libperl5.26 libpng16-16 libpsl5 libroken18-heimdal libseccomp2 libselinux1 libsemanage-common libsemanage1 libsmartcols1 libsqlite3-0 libss2 libssl1.0.0 libstdc++-7-dev libstdc++6 libsystemd0 libtasn1-6 libubsan0 libudev1 libuuid1 libwind0-heimdal linux-libc-dev lsb-base mount multiarch-support openssl optipng perl perl-base perl-modules-5.26 pinentry-curses sensible-utils systemd systemd-sysv sysvinit-utils tzdata util-linux 110 upgraded, 12 newly installed, 0 to remove and 0 not upgraded. Need to get 161 MB of archives. After this operation, 462 MB of additional disk space will be used. Get:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el gcc-8-base ppc64el 8-20180110-1ubuntu1 [17.9 kB] Get:2 http://ftpmaster.internal/ubuntu bionic/main ppc64el perl-modules-5.26 all 5.26.1-3 [2761 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libgcc1 ppc64el 1:8-20180110-1ubuntu1 [29.5 kB] Get:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libstdc++6 ppc64el 8-20180110-1ubuntu1 [439 kB] Get:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libgomp1 ppc64el 8-20180110-1ubuntu1 [70.1 kB] Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libitm1 ppc64el 8-20180110-1ubuntu1 [29.5 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libcc1-0 ppc64el 8-20180110-1ubuntu1 [39.0 kB] Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libatomic1 ppc64el 8-20180110-1ubuntu1 [8464 B] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el liblsan0 ppc64el 8-20180110-1ubuntu1 [141 kB] Get:10 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libtsan0 ppc64el 8-20180110-1ubuntu1 [291 kB] Get:11 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el cpp-8 ppc64el 8-20180110-1ubuntu1 [31.9 MB] Get:12 http://ftpmaster.internal/ubuntu bionic/main ppc64el libperl5.26 ppc64el 5.26.1-3 [3399 kB] Get:13 http://ftpmaster.internal/ubuntu bionic/main ppc64el perl ppc64el 5.26.1-3 [201 kB] Get:14 http://ftpmaster.internal/ubuntu bionic/main ppc64el perl-base ppc64el 5.26.1-3 [1304 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/main ppc64el libc6-dev ppc64el 2.26-0ubuntu2 [2458 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/main ppc64el libc-dev-bin ppc64el 2.26-0ubuntu2 [65.4 kB] Get:17 http://ftpmaster.internal/ubuntu bionic/main ppc64el linux-libc-dev ppc64el 4.13.0-25.29 [956 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main ppc64el libc6 ppc64el 2.26-0ubuntu2 [2619 kB] Get:19 http://ftpmaster.internal/ubuntu bionic/main ppc64el init-system-helpers all 1.51 [37.3 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main ppc64el base-files ppc64el 10ubuntu1 [55.9 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main ppc64el bsdutils ppc64el 1:2.30.2-0.1ubuntu1 [61.8 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main ppc64el coreutils ppc64el 8.26-3ubuntu4 [1251 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main ppc64el debianutils ppc64el 4.8.4 [85.8 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main ppc64el dpkg ppc64el 1.19.0.4ubuntu1 [1149 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main ppc64el e2fslibs ppc64el 1.43.8-1ubuntu1 [173 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main ppc64el e2fsprogs ppc64el 1.43.8-1ubuntu1 [512 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main ppc64el findutils ppc64el 4.6.0+git+20170828-2 [314 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main ppc64el libuuid1 ppc64el 2.30.2-0.1ubuntu1 [15.5 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main ppc64el libblkid1 ppc64el 2.30.2-0.1ubuntu1 [128 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsmartcols1 ppc64el 2.30.2-0.1ubuntu1 [84.7 kB] Get:31 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main ppc64el cpp ppc64el 4:8-20121108-1ubuntu0.2 [42.2 kB] Get:32 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libasan5 ppc64el 8-20180110-1ubuntu1 [384 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main ppc64el libfdisk1 ppc64el 2.30.2-0.1ubuntu1 [160 kB] Get:34 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libubsan1 ppc64el 8-20180110-1ubuntu1 [130 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpcre3 ppc64el 2:8.39-8 [224 kB] Get:36 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libquadmath0 ppc64el 8-20180110-1ubuntu1 [130 kB] Get:37 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libgcc-8-dev ppc64el 8-20180110-1ubuntu1 [1170 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main ppc64el libselinux1 ppc64el 2.7-2 [78.6 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmount1 ppc64el 2.30.2-0.1ubuntu1 [139 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main ppc64el fdisk ppc64el 2.30.2-0.1ubuntu1 [108 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main ppc64el util-linux ppc64el 2.30.2-0.1ubuntu1 [881 kB] Get:42 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el gcc-8 ppc64el 8-20180110-1ubuntu1 [31.6 MB] Get:43 http://ftpmaster.internal/ubuntu bionic/main ppc64el base-passwd ppc64el 3.5.44 [50.1 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main ppc64el libc-bin ppc64el 2.26-0ubuntu2 [573 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main ppc64el sysvinit-utils ppc64el 2.88dsf-59.10ubuntu1 [20.6 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main ppc64el libudev1 ppc64el 235-3ubuntu3 [60.9 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main ppc64el libapt-pkg5.0 ppc64el 1.6~alpha5 [878 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main ppc64el debconf all 1.5.65 [124 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main ppc64el adduser all 3.116ubuntu1 [163 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgpg-error0 ppc64el 1.27-5 [42.1 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgcrypt20 ppc64el 1.8.1-4 [448 kB] Get:52 http://ftpmaster.internal/ubuntu bionic/main ppc64el gpgv ppc64el 2.1.15-1ubuntu8 [218 kB] Get:53 http://ftpmaster.internal/ubuntu bionic/main ppc64el libseccomp2 ppc64el 2.3.1-2.1ubuntu3 [47.2 kB] Get:54 http://ftpmaster.internal/ubuntu bionic/main ppc64el apt ppc64el 1.6~alpha5 [1191 kB] Get:55 http://ftpmaster.internal/ubuntu bionic/main ppc64el libapparmor1 ppc64el 2.11.0-2ubuntu18 [29.9 kB] Get:56 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcap2 ppc64el 1:2.25-1.2 [13.5 kB] Get:57 http://ftpmaster.internal/ubuntu bionic/main ppc64el libidn11 ppc64el 1.33-2.1 [46.4 kB] Get:58 http://ftpmaster.internal/ubuntu bionic/main ppc64el libip4tc0 ppc64el 1.6.1-2ubuntu2 [23.6 kB] Get:59 http://ftpmaster.internal/ubuntu bionic/main ppc64el mount ppc64el 2.30.2-0.1ubuntu1 [111 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main ppc64el systemd ppc64el 235-3ubuntu3 [2961 kB] Get:61 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsystemd0 ppc64el 235-3ubuntu3 [213 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main ppc64el init ppc64el 1.51 [5868 B] Get:63 http://ftpmaster.internal/ubuntu bionic/main ppc64el systemd-sysv ppc64el 235-3ubuntu3 [13.1 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcap-ng0 ppc64el 0.7.7-3.1 [11.6 kB] Get:65 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcomerr2 ppc64el 1.43.8-1ubuntu1 [11.4 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsemanage-common all 2.7-2 [6916 B] Get:67 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsemanage1 ppc64el 2.7-2 [85.4 kB] Get:68 http://ftpmaster.internal/ubuntu bionic/main ppc64el libss2 ppc64el 1.43.8-1ubuntu1 [11.4 kB] Get:69 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnettle6 ppc64el 3.3-2 [120 kB] Get:70 http://ftpmaster.internal/ubuntu bionic/main ppc64el libhogweed4 ppc64el 3.3-2 [134 kB] Get:71 http://ftpmaster.internal/ubuntu bionic/main ppc64el libp11-kit0 ppc64el 0.23.9-2 [167 kB] Get:72 http://ftpmaster.internal/ubuntu bionic/main ppc64el libtasn1-6 ppc64el 4.12-3 [39.8 kB] Get:73 http://ftpmaster.internal/ubuntu bionic/main ppc64el g++-7 ppc64el 7.2.0-18ubuntu2 [7106 kB] Get:74 http://ftpmaster.internal/ubuntu bionic/main ppc64el gcc-7 ppc64el 7.2.0-18ubuntu2 [6903 kB] Get:75 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main ppc64el gcc ppc64el 4:8-20121108-1ubuntu0.2 [5168 B] Get:76 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el libstdc++-8-dev ppc64el 8-20180110-1ubuntu1 [1567 kB] Get:77 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main ppc64el g++-8 ppc64el 8-20180110-1ubuntu1 [34.4 MB] Get:78 http://ftpmaster.internal/ubuntu bionic/main ppc64el cpp-7 ppc64el 7.2.0-18ubuntu2 [6260 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main ppc64el libbinutils ppc64el 2.29.1-12ubuntu1 [457 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main ppc64el binutils ppc64el 2.29.1-12ubuntu1 [3404 B] Get:81 http://ftpmaster.internal/ubuntu bionic/main ppc64el binutils-common ppc64el 2.29.1-12ubuntu1 [190 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main ppc64el binutils-powerpc64le-linux-gnu ppc64el 2.29.1-12ubuntu1 [1969 kB] Get:83 http://ftpmaster.internal/ubuntu bionic/main ppc64el libasan4 ppc64el 7.2.0-18ubuntu2 [367 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main ppc64el libubsan0 ppc64el 7.2.0-18ubuntu2 [136 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main ppc64el libstdc++-7-dev ppc64el 7.2.0-18ubuntu2 [1524 kB] Get:86 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgcc-7-dev ppc64el 7.2.0-18ubuntu2 [986 kB] Get:87 http://ftpmaster.internal/ubuntu bionic/main ppc64el gcc-7-base ppc64el 7.2.0-18ubuntu2 [19.0 kB] Get:88 http://ftpmaster.internal/ubuntu bionic/main ppc64el lsb-base all 9.20170808ubuntu1 [12.5 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main ppc64el sensible-utils all 0.0.11 [14.8 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main ppc64el libassuan0 ppc64el 2.5.1-1 [33.9 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main ppc64el pinentry-curses ppc64el 1.0.0-3 [37.5 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnpth0 ppc64el 1.5-3 [7780 B] Get:93 http://ftpmaster.internal/ubuntu bionic/main ppc64el gnupg ppc64el 2.1.15-1ubuntu8 [847 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main ppc64el gnupg-agent ppc64el 2.1.15-1ubuntu8 [291 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsqlite3-0 ppc64el 3.21.0-1 [464 kB] Get:96 http://ftpmaster.internal/ubuntu bionic/main ppc64el libroken18-heimdal ppc64el 7.5.0+dfsg-1 [42.2 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main ppc64el libasn1-8-heimdal ppc64el 7.5.0+dfsg-1 [140 kB] Get:98 http://ftpmaster.internal/ubuntu bionic/main ppc64el libheimbase1-heimdal ppc64el 7.5.0+dfsg-1 [30.5 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main ppc64el libhcrypto4-heimdal ppc64el 7.5.0+dfsg-1 [100 kB] Get:100 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwind0-heimdal ppc64el 7.5.0+dfsg-1 [48.0 kB] Get:101 http://ftpmaster.internal/ubuntu bionic/main ppc64el libhx509-5-heimdal ppc64el 7.5.0+dfsg-1 [108 kB] Get:102 http://ftpmaster.internal/ubuntu bionic/main ppc64el libkrb5-26-heimdal ppc64el 7.5.0+dfsg-1 [216 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main ppc64el libheimntlm0-heimdal ppc64el 7.5.0+dfsg-1 [16.4 kB] Get:104 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgssapi3-heimdal ppc64el 7.5.0+dfsg-1 [92.6 kB] Get:105 http://ftpmaster.internal/ubuntu bionic/main ppc64el libssl1.0.0 ppc64el 1.0.2g-1ubuntu14 [880 kB] Get:106 http://ftpmaster.internal/ubuntu bionic/main ppc64el multiarch-support ppc64el 2.26-0ubuntu2 [6832 B] Get:107 http://ftpmaster.internal/ubuntu bionic/main ppc64el openssl ppc64el 1.0.2g-1ubuntu14 [520 kB] Get:108 http://ftpmaster.internal/ubuntu bionic/main ppc64el tzdata all 2017c-1 [188 kB] Get:109 http://ftpmaster.internal/ubuntu bionic/main ppc64el libidn2-0 ppc64el 2.0.4-1 [95.7 kB] Get:110 http://ftpmaster.internal/ubuntu bionic/main ppc64el libkeyutils1 ppc64el 1.5.9-9.2ubuntu1 [9736 B] Get:111 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpng16-16 ppc64el 1.6.34-1 [200 kB] Get:112 http://ftpmaster.internal/ubuntu bionic/universe ppc64el apt-transport-https all 1.6~alpha5 [1692 B] Get:113 http://ftpmaster.internal/ubuntu bionic/main ppc64el dpkg-dev all 1.19.0.4ubuntu1 [607 kB] Get:114 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdpkg-perl all 1.19.0.4ubuntu1 [211 kB] Get:115 http://ftpmaster.internal/ubuntu bionic/main ppc64el build-essential ppc64el 12.4ubuntu1 [4754 B] Get:116 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnghttp2-14 ppc64el 1.29.0-1 [84.6 kB] Get:117 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpsl5 ppc64el 0.19.1-4 [43.0 kB] Get:118 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcurl3-gnutls ppc64el 7.57.0-1ubuntu1 [215 kB] Get:119 http://ftpmaster.internal/ubuntu bionic/main ppc64el liblockfile-bin ppc64el 1.14-1.1 [12.0 kB] Get:120 http://ftpmaster.internal/ubuntu bionic/main ppc64el liblockfile1 ppc64el 1.14-1.1 [6988 B] Get:121 http://ftpmaster.internal/ubuntu bionic/main ppc64el optipng ppc64el 0.7.6-1.1 [86.8 kB] Get:122 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main ppc64el g++ ppc64el 4:8-20121108-1ubuntu0.2 [1528 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 161 MB in 4s (32.5 MB/s) (Reading database ... 12537 files and directories currently installed.) Preparing to unpack .../perl_5.26.1-3_ppc64el.deb ... Unpacking perl (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../perl-modules-5.26_5.26.1-3_all.deb ... Unpacking perl-modules-5.26 (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../libperl5.26_5.26.1-3_ppc64el.deb ... Unpacking libperl5.26:ppc64el (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../perl-base_5.26.1-3_ppc64el.deb ... Unpacking perl-base (5.26.1-3) over (5.26.0-8ubuntu1) ... Setting up perl-base (5.26.1-3) ... (Reading database ... 12537 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.26-0ubuntu2_ppc64el.deb ... Unpacking libc6-dev:ppc64el (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../libc-dev-bin_2.26-0ubuntu2_ppc64el.deb ... Unpacking libc-dev-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../linux-libc-dev_4.13.0-25.29_ppc64el.deb ... Unpacking linux-libc-dev:ppc64el (4.13.0-25.29) over (4.13.0-11.12) ... Selecting previously unselected package gcc-8-base:ppc64el. Preparing to unpack .../gcc-8-base_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking gcc-8-base:ppc64el (8-20180110-1ubuntu1) ... Setting up gcc-8-base:ppc64el (8-20180110-1ubuntu1) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../libgcc1_1%3a8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libgcc1:ppc64el (1:8-20180110-1ubuntu1) over (1:7.2.0-6ubuntu1) ... Setting up libgcc1:ppc64el (1:8-20180110-1ubuntu1) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../libc6_2.26-0ubuntu2_ppc64el.deb ... Unpacking libc6:ppc64el (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc6:ppc64el (2.26-0ubuntu2) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../init-system-helpers_1.51_all.deb ... Unpacking init-system-helpers (1.51) over (1.49ubuntu1) ... Setting up init-system-helpers (1.51) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../base-files_10ubuntu1_ppc64el.deb ... Unpacking base-files (10ubuntu1) over (9.6ubuntu101) ... Setting up base-files (10ubuntu1) ... Installing new version of config file /etc/debian_version ... Installing new version of config file /etc/issue ... Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../bsdutils_1%3a2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking bsdutils (1:2.30.2-0.1ubuntu1) over (1:2.30.1-0ubuntu4) ... Setting up bsdutils (1:2.30.2-0.1ubuntu1) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../coreutils_8.26-3ubuntu4_ppc64el.deb ... Unpacking coreutils (8.26-3ubuntu4) over (8.26-3ubuntu3) ... Setting up coreutils (8.26-3ubuntu4) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../debianutils_4.8.4_ppc64el.deb ... Unpacking debianutils (4.8.4) over (4.8.2) ... Setting up debianutils (4.8.4) ... (Reading database ... 12544 files and directories currently installed.) Preparing to unpack .../dpkg_1.19.0.4ubuntu1_ppc64el.deb ... Unpacking dpkg (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Setting up dpkg (1.19.0.4ubuntu1) ... Installing new version of config file /etc/alternatives/README ... Installing new version of config file /etc/cron.daily/dpkg ... Installing new version of config file /etc/logrotate.d/dpkg ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../e2fslibs_1.43.8-1ubuntu1_ppc64el.deb ... Unpacking e2fslibs:ppc64el (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up e2fslibs:ppc64el (1.43.8-1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../e2fsprogs_1.43.8-1ubuntu1_ppc64el.deb ... Unpacking e2fsprogs (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up e2fsprogs (1.43.8-1ubuntu1) ... Installing new version of config file /etc/mke2fs.conf ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../findutils_4.6.0+git+20170828-2_ppc64el.deb ... Unpacking findutils (4.6.0+git+20170828-2) over (4.6.0+git+20170729-2) ... Setting up findutils (4.6.0+git+20170828-2) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libuuid1_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking libuuid1:ppc64el (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libuuid1:ppc64el (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libblkid1_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking libblkid1:ppc64el (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libblkid1:ppc64el (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libsmartcols1_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking libsmartcols1:ppc64el (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libsmartcols1:ppc64el (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libfdisk1_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking libfdisk1:ppc64el (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libfdisk1:ppc64el (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libpcre3_2%3a8.39-8_ppc64el.deb ... Unpacking libpcre3:ppc64el (2:8.39-8) over (2:8.39-4) ... Setting up libpcre3:ppc64el (2:8.39-8) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libselinux1_2.7-2_ppc64el.deb ... Unpacking libselinux1:ppc64el (2.7-2) over (2.7-1) ... Setting up libselinux1:ppc64el (2.7-2) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../libmount1_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking libmount1:ppc64el (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libmount1:ppc64el (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../fdisk_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking fdisk (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up fdisk (2.30.2-0.1ubuntu1) ... (Reading database ... 12546 files and directories currently installed.) Preparing to unpack .../util-linux_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking util-linux (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up util-linux (2.30.2-0.1ubuntu1) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../base-passwd_3.5.44_ppc64el.deb ... Unpacking base-passwd (3.5.44) over (3.5.43) ... Setting up base-passwd (3.5.44) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../libc-bin_2.26-0ubuntu2_ppc64el.deb ... Unpacking libc-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc-bin (2.26-0ubuntu2) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../sysvinit-utils_2.88dsf-59.10ubuntu1_ppc64el.deb ... Unpacking sysvinit-utils (2.88dsf-59.10ubuntu1) over (2.88dsf-59.8git1) ... Setting up sysvinit-utils (2.88dsf-59.10ubuntu1) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../libstdc++6_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libstdc++6:ppc64el (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Setting up libstdc++6:ppc64el (8-20180110-1ubuntu1) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../libudev1_235-3ubuntu3_ppc64el.deb ... Unpacking libudev1:ppc64el (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libudev1:ppc64el (235-3ubuntu3) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../libapt-pkg5.0_1.6~alpha5_ppc64el.deb ... Unpacking libapt-pkg5.0:ppc64el (1.6~alpha5) over (1.5~rc4) ... Setting up libapt-pkg5.0:ppc64el (1.6~alpha5) ... (Reading database ... 12547 files and directories currently installed.) Preparing to unpack .../debconf_1.5.65_all.deb ... Unpacking debconf (1.5.65) over (1.5.63) ... Setting up debconf (1.5.65) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../adduser_3.116ubuntu1_all.deb ... Unpacking adduser (3.116ubuntu1) over (3.113+nmu3ubuntu5) ... Setting up adduser (3.116ubuntu1) ... (Reading database ... 12539 files and directories currently installed.) Preparing to unpack .../libgpg-error0_1.27-5_ppc64el.deb ... Unpacking libgpg-error0:ppc64el (1.27-5) over (1.27-3) ... Setting up libgpg-error0:ppc64el (1.27-5) ... (Reading database ... 12539 files and directories currently installed.) Preparing to unpack .../libgcrypt20_1.8.1-4_ppc64el.deb ... Unpacking libgcrypt20:ppc64el (1.8.1-4) over (1.7.8-2ubuntu1) ... Setting up libgcrypt20:ppc64el (1.8.1-4) ... (Reading database ... 12539 files and directories currently installed.) Preparing to unpack .../gpgv_2.1.15-1ubuntu8_ppc64el.deb ... Unpacking gpgv (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Setting up gpgv (2.1.15-1ubuntu8) ... (Reading database ... 12539 files and directories currently installed.) Preparing to unpack .../libseccomp2_2.3.1-2.1ubuntu3_ppc64el.deb ... Unpacking libseccomp2:ppc64el (2.3.1-2.1ubuntu3) over (2.3.1-2.1ubuntu2) ... Setting up libseccomp2:ppc64el (2.3.1-2.1ubuntu3) ... (Reading database ... 12539 files and directories currently installed.) Preparing to unpack .../apt_1.6~alpha5_ppc64el.deb ... Unpacking apt (1.6~alpha5) over (1.5~rc4) ... Setting up apt (1.6~alpha5) ... (Reading database ... 12535 files and directories currently installed.) Preparing to unpack .../libapparmor1_2.11.0-2ubuntu18_ppc64el.deb ... Unpacking libapparmor1:ppc64el (2.11.0-2ubuntu18) over (2.11.0-2ubuntu17) ... Preparing to unpack .../libcap2_1%3a2.25-1.2_ppc64el.deb ... Unpacking libcap2:ppc64el (1:2.25-1.2) over (1:2.25-1) ... Preparing to unpack .../libidn11_1.33-2.1_ppc64el.deb ... Unpacking libidn11:ppc64el (1.33-2.1) over (1.33-2) ... Setting up libidn11:ppc64el (1.33-2.1) ... (Reading database ... 12535 files and directories currently installed.) Preparing to unpack .../libip4tc0_1.6.1-2ubuntu2_ppc64el.deb ... Unpacking libip4tc0:ppc64el (1.6.1-2ubuntu2) over (1.6.1-2ubuntu1) ... Preparing to unpack .../mount_2.30.2-0.1ubuntu1_ppc64el.deb ... Unpacking mount (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Preparing to unpack .../systemd_235-3ubuntu3_ppc64el.deb ... Unpacking systemd (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libsystemd0_235-3ubuntu3_ppc64el.deb ... Unpacking libsystemd0:ppc64el (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libsystemd0:ppc64el (235-3ubuntu3) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../archives/init_1.51_ppc64el.deb ... Unpacking init (1.51) over (1.49ubuntu1) ... Setting up libapparmor1:ppc64el (2.11.0-2ubuntu18) ... Setting up libcap2:ppc64el (1:2.25-1.2) ... Setting up libip4tc0:ppc64el (1.6.1-2ubuntu2) ... Setting up mount (2.30.2-0.1ubuntu1) ... Setting up systemd (235-3ubuntu3) ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/system.conf ... Removing empty /etc/rc.local Removed /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service. Removing user `systemd-bus-proxy' ... Warning: group `systemd-bus-proxy' has no more members. Done. (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../systemd-sysv_235-3ubuntu3_ppc64el.deb ... Unpacking systemd-sysv (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libcap-ng0_0.7.7-3.1_ppc64el.deb ... Unpacking libcap-ng0:ppc64el (0.7.7-3.1) over (0.7.7-3build1) ... Setting up libcap-ng0:ppc64el (0.7.7-3.1) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libcomerr2_1.43.8-1ubuntu1_ppc64el.deb ... Unpacking libcomerr2:ppc64el (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libcomerr2:ppc64el (1.43.8-1ubuntu1) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libsemanage-common_2.7-2_all.deb ... Unpacking libsemanage-common (2.7-2) over (2.7-1) ... Setting up libsemanage-common (2.7-2) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libsemanage1_2.7-2_ppc64el.deb ... Unpacking libsemanage1:ppc64el (2.7-2) over (2.7-1) ... Setting up libsemanage1:ppc64el (2.7-2) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libss2_1.43.8-1ubuntu1_ppc64el.deb ... Unpacking libss2:ppc64el (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libss2:ppc64el (1.43.8-1ubuntu1) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libnettle6_3.3-2_ppc64el.deb ... Unpacking libnettle6:ppc64el (3.3-2) over (3.3-1) ... Setting up libnettle6:ppc64el (3.3-2) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libhogweed4_3.3-2_ppc64el.deb ... Unpacking libhogweed4:ppc64el (3.3-2) over (3.3-1) ... Setting up libhogweed4:ppc64el (3.3-2) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libp11-kit0_0.23.9-2_ppc64el.deb ... Unpacking libp11-kit0:ppc64el (0.23.9-2) over (0.23.7-3) ... Setting up libp11-kit0:ppc64el (0.23.9-2) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../libtasn1-6_4.12-3_ppc64el.deb ... Unpacking libtasn1-6:ppc64el (4.12-3) over (4.12-2.1) ... Setting up libtasn1-6:ppc64el (4.12-3) ... (Reading database ... 12541 files and directories currently installed.) Preparing to unpack .../00-libgomp1_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libgomp1:ppc64el (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../01-libitm1_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libitm1:ppc64el (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../02-g++-7_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking g++-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../03-gcc-7_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking gcc-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../04-cpp-7_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking cpp-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../05-libcc1-0_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libcc1-0:ppc64el (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../06-libbinutils_2.29.1-12ubuntu1_ppc64el.deb ... Unpacking libbinutils:ppc64el (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../07-binutils_2.29.1-12ubuntu1_ppc64el.deb ... Unpacking binutils (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../08-binutils-common_2.29.1-12ubuntu1_ppc64el.deb ... Unpacking binutils-common:ppc64el (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../09-binutils-powerpc64le-linux-gnu_2.29.1-12ubuntu1_ppc64el.deb ... Unpacking binutils-powerpc64le-linux-gnu (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../10-libatomic1_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libatomic1:ppc64el (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../11-libasan4_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking libasan4:ppc64el (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Selecting previously unselected package liblsan0:ppc64el. Preparing to unpack .../12-liblsan0_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking liblsan0:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package libtsan0:ppc64el. Preparing to unpack .../13-libtsan0_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libtsan0:ppc64el (8-20180110-1ubuntu1) ... Preparing to unpack .../14-libubsan0_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking libubsan0:ppc64el (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../15-libstdc++-7-dev_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking libstdc++-7-dev:ppc64el (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../16-libgcc-7-dev_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking libgcc-7-dev:ppc64el (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../17-gcc-7-base_7.2.0-18ubuntu2_ppc64el.deb ... Unpacking gcc-7-base:ppc64el (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../18-lsb-base_9.20170808ubuntu1_all.deb ... Unpacking lsb-base (9.20170808ubuntu1) over (9.20160110ubuntu5) ... Preparing to unpack .../19-sensible-utils_0.0.11_all.deb ... Unpacking sensible-utils (0.0.11) over (0.0.10) ... Preparing to unpack .../20-libassuan0_2.5.1-1_ppc64el.deb ... Unpacking libassuan0:ppc64el (2.5.1-1) over (2.4.3-3) ... Preparing to unpack .../21-pinentry-curses_1.0.0-3_ppc64el.deb ... Unpacking pinentry-curses (1.0.0-3) over (1.0.0-2) ... Preparing to unpack .../22-libnpth0_1.5-3_ppc64el.deb ... Unpacking libnpth0:ppc64el (1.5-3) over (1.5-2) ... Preparing to unpack .../23-gnupg_2.1.15-1ubuntu8_ppc64el.deb ... Unpacking gnupg (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../24-gnupg-agent_2.1.15-1ubuntu8_ppc64el.deb ... Unpacking gnupg-agent (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../25-libsqlite3-0_3.21.0-1_ppc64el.deb ... Unpacking libsqlite3-0:ppc64el (3.21.0-1) over (3.19.3-3) ... Preparing to unpack .../26-libroken18-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libroken18-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../27-libasn1-8-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libasn1-8-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../28-libheimbase1-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libheimbase1-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../29-libhcrypto4-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libhcrypto4-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../30-libwind0-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libwind0-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../31-libhx509-5-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libhx509-5-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../32-libkrb5-26-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libkrb5-26-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../33-libheimntlm0-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libheimntlm0-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../34-libgssapi3-heimdal_7.5.0+dfsg-1_ppc64el.deb ... Unpacking libgssapi3-heimdal:ppc64el (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../35-libssl1.0.0_1.0.2g-1ubuntu14_ppc64el.deb ... Unpacking libssl1.0.0:ppc64el (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../36-multiarch-support_2.26-0ubuntu2_ppc64el.deb ... Unpacking multiarch-support (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../37-openssl_1.0.2g-1ubuntu14_ppc64el.deb ... Unpacking openssl (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../38-tzdata_2017c-1_all.deb ... Unpacking tzdata (2017c-1) over (2017b-2) ... Preparing to unpack .../39-libidn2-0_2.0.4-1_ppc64el.deb ... Unpacking libidn2-0:ppc64el (2.0.4-1) over (2.0.2-5) ... Preparing to unpack .../40-libkeyutils1_1.5.9-9.2ubuntu1_ppc64el.deb ... Unpacking libkeyutils1:ppc64el (1.5.9-9.2ubuntu1) over (1.5.9-9ubuntu1) ... Preparing to unpack .../41-libpng16-16_1.6.34-1_ppc64el.deb ... Unpacking libpng16-16:ppc64el (1.6.34-1) over (1.6.32-2) ... Preparing to unpack .../42-apt-transport-https_1.6~alpha5_all.deb ... Unpacking apt-transport-https (1.6~alpha5) over (1.5~rc4) ... Selecting previously unselected package cpp-8. Preparing to unpack .../43-cpp-8_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking cpp-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../44-cpp_4%3a8-20121108-1ubuntu0.2_ppc64el.deb ... Unpacking cpp (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libasan5:ppc64el. Preparing to unpack .../45-libasan5_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libasan5:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package libubsan1:ppc64el. Preparing to unpack .../46-libubsan1_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libubsan1:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package libquadmath0:ppc64el. Preparing to unpack .../47-libquadmath0_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libquadmath0:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package libgcc-8-dev:ppc64el. Preparing to unpack .../48-libgcc-8-dev_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libgcc-8-dev:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package gcc-8. Preparing to unpack .../49-gcc-8_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking gcc-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../50-gcc_4%3a8-20121108-1ubuntu0.2_ppc64el.deb ... Unpacking gcc (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libstdc++-8-dev:ppc64el. Preparing to unpack .../51-libstdc++-8-dev_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking libstdc++-8-dev:ppc64el (8-20180110-1ubuntu1) ... Selecting previously unselected package g++-8. Preparing to unpack .../52-g++-8_8-20180110-1ubuntu1_ppc64el.deb ... Unpacking g++-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../53-g++_4%3a8-20121108-1ubuntu0.2_ppc64el.deb ... Unpacking g++ (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Preparing to unpack .../54-dpkg-dev_1.19.0.4ubuntu1_all.deb ... Unpacking dpkg-dev (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../55-libdpkg-perl_1.19.0.4ubuntu1_all.deb ... Unpacking libdpkg-perl (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../56-build-essential_12.4ubuntu1_ppc64el.deb ... Unpacking build-essential (12.4ubuntu1) over (12.1ubuntu2) ... Selecting previously unselected package libnghttp2-14:ppc64el. Preparing to unpack .../57-libnghttp2-14_1.29.0-1_ppc64el.deb ... Unpacking libnghttp2-14:ppc64el (1.29.0-1) ... Preparing to unpack .../58-libpsl5_0.19.1-4_ppc64el.deb ... Unpacking libpsl5:ppc64el (0.19.1-4) over (0.18.0-2) ... Preparing to unpack .../59-libcurl3-gnutls_7.57.0-1ubuntu1_ppc64el.deb ... Unpacking libcurl3-gnutls:ppc64el (7.57.0-1ubuntu1) over (7.55.1-1ubuntu1) ... Preparing to unpack .../60-liblockfile-bin_1.14-1.1_ppc64el.deb ... Unpacking liblockfile-bin (1.14-1.1) over (1.14-1) ... Preparing to unpack .../61-liblockfile1_1.14-1.1_ppc64el.deb ... Unpacking liblockfile1:ppc64el (1.14-1.1) over (1.14-1) ... Preparing to unpack .../62-optipng_0.7.6-1.1_ppc64el.deb ... Unpacking optipng (0.7.6-1.1) over (0.7.6-1build1) ... Setting up libquadmath0:ppc64el (8-20180110-1ubuntu1) ... Setting up libnpth0:ppc64el (1.5-3) ... Setting up cpp-8 (8-20180110-1ubuntu1) ... Setting up libgomp1:ppc64el (8-20180110-1ubuntu1) ... Setting up libatomic1:ppc64el (8-20180110-1ubuntu1) ... Setting up cpp (4:8-20121108-1ubuntu0.2) ... Setting up liblockfile-bin (1.14-1.1) ... Setting up libcc1-0:ppc64el (8-20180110-1ubuntu1) ... Setting up apt-transport-https (1.6~alpha5) ... Setting up libidn2-0:ppc64el (2.0.4-1) ... Setting up libssl1.0.0:ppc64el (1.0.2g-1ubuntu14) ... Setting up libnghttp2-14:ppc64el (1.29.0-1) ... Setting up libpng16-16:ppc64el (1.6.34-1) ... Setting up libpsl5:ppc64el (0.19.1-4) ... Setting up multiarch-support (2.26-0ubuntu2) ... Setting up tzdata (2017c-1) ... Current default time zone: 'Etc/UTC' Local time is now: Mon Jan 15 11:16:32 UTC 2018. Universal Time is now: Mon Jan 15 11:16:32 UTC 2018. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up systemd-sysv (235-3ubuntu3) ... Setting up libtsan0:ppc64el (8-20180110-1ubuntu1) ... Setting up liblockfile1:ppc64el (1.14-1.1) ... Setting up linux-libc-dev:ppc64el (4.13.0-25.29) ... Setting up libroken18-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up perl-modules-5.26 (5.26.1-3) ... Setting up optipng (0.7.6-1.1) ... Setting up lsb-base (9.20170808ubuntu1) ... Setting up liblsan0:ppc64el (8-20180110-1ubuntu1) ... Setting up gcc-7-base:ppc64el (7.2.0-18ubuntu2) ... Setting up binutils-common:ppc64el (2.29.1-12ubuntu1) ... Setting up sensible-utils (0.0.11) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Setting up libperl5.26:ppc64el (5.26.1-3) ... Setting up libheimbase1-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up openssl (1.0.2g-1ubuntu14) ... Setting up libsqlite3-0:ppc64el (3.21.0-1) ... Setting up libc-dev-bin (2.26-0ubuntu2) ... Setting up libkeyutils1:ppc64el (1.5.9-9.2ubuntu1) ... Setting up libc6-dev:ppc64el (2.26-0ubuntu2) ... Setting up libasan5:ppc64el (8-20180110-1ubuntu1) ... Setting up libassuan0:ppc64el (2.5.1-1) ... Setting up libitm1:ppc64el (8-20180110-1ubuntu1) ... Setting up libubsan1:ppc64el (8-20180110-1ubuntu1) ... Setting up libwind0-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up libasan4:ppc64el (7.2.0-18ubuntu2) ... Setting up libbinutils:ppc64el (2.29.1-12ubuntu1) ... Setting up libcurl3-gnutls:ppc64el (7.57.0-1ubuntu1) ... Setting up init (1.51) ... Setting up libasn1-8-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up libubsan0:ppc64el (7.2.0-18ubuntu2) ... Setting up binutils-powerpc64le-linux-gnu (2.29.1-12ubuntu1) ... Setting up libhcrypto4-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up libhx509-5-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up libgcc-7-dev:ppc64el (7.2.0-18ubuntu2) ... Setting up cpp-7 (7.2.0-18ubuntu2) ... Setting up libstdc++-7-dev:ppc64el (7.2.0-18ubuntu2) ... Setting up perl (5.26.1-3) ... Setting up pinentry-curses (1.0.0-3) ... Setting up libgcc-8-dev:ppc64el (8-20180110-1ubuntu1) ... Setting up binutils (2.29.1-12ubuntu1) ... Setting up libkrb5-26-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up gnupg-agent (2.1.15-1ubuntu8) ... Setting up libheimntlm0-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up libstdc++-8-dev:ppc64el (8-20180110-1ubuntu1) ... Setting up gcc-7 (7.2.0-18ubuntu2) ... Setting up g++-7 (7.2.0-18ubuntu2) ... Setting up gnupg (2.1.15-1ubuntu8) ... Setting up libdpkg-perl (1.19.0.4ubuntu1) ... Setting up gcc-8 (8-20180110-1ubuntu1) ... Setting up g++-8 (8-20180110-1ubuntu1) ... Setting up dpkg-dev (1.19.0.4ubuntu1) ... Setting up libgssapi3-heimdal:ppc64el (7.5.0+dfsg-1) ... Setting up gcc (4:8-20121108-1ubuntu0.2) ... Setting up g++ (4:8-20121108-1ubuntu0.2) ... Setting up build-essential (12.4ubuntu1) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... RUN: /usr/share/launchpad-buildd/slavebin/sbuild-package PACKAGEBUILD-14087662 ppc64el bionic -c chroot:build-PACKAGEBUILD-14087662 --arch=ppc64el --dist=bionic --nolog debconf-kde_1.0.2-1.dsc Initiating build PACKAGEBUILD-14087662 with 4 jobs across 4 processor cores. Kernel reported to sbuild: 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:11 UTC 2017 ppc64le sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on bos01-ppc64el-005.buildd +==============================================================================+ | debconf-kde 1.0.2-1 (ppc64el) 15 Jan 2018 11:16 | +==============================================================================+ Package: debconf-kde Version: 1.0.2-1 Source Version: 1.0.2-1 Distribution: bionic Machine Architecture: ppc64el Host Architecture: ppc64el Build Architecture: ppc64el I: NOTICE: Log filtering will replace 'build/debconf-kde-k9BNDE/debconf-kde-1.0.2' with '<>' I: NOTICE: Log filtering will replace 'build/debconf-kde-k9BNDE' with '<>' I: NOTICE: Log filtering will replace 'home/buildd/build-PACKAGEBUILD-14087662/chroot-autobuild' with '<>' +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Local sources ------------- debconf-kde_1.0.2-1.dsc exists in .; copying to chroot Check architectures ------------------- Check dependencies ------------------ Merged Build-Depends: build-essential, fakeroot Filtered Build-Depends: build-essential, fakeroot dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<>/resolver-9LSAIE/apt_archive/sbuild-build-depends-core-dummy.deb'. Ign:1 copy:/<>/resolver-9LSAIE/apt_archive ./ InRelease Get:2 copy:/<>/resolver-9LSAIE/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-9LSAIE/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-9LSAIE/apt_archive ./ Sources [214 B] Get:5 copy:/<>/resolver-9LSAIE/apt_archive ./ Packages [529 B] Fetched 2862 B in 0s (119 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install core build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-7 libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libidn2-0 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libnghttp2-14 libpsl5 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libstdc++-7-dev libunistring0 libwind0-heimdal Use 'apt autoremove' to remove them. The following NEW packages will be installed: sbuild-build-depends-core-dummy 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 856 B of archives. After this operation, 0 B of additional disk space will be used. Get:1 copy:/<>/resolver-9LSAIE/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [856 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 856 B in 0s (0 B/s) Selecting previously unselected package sbuild-build-depends-core-dummy. (Reading database ... 13530 files and directories currently installed.) Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_ppc64el.deb ... Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ... Setting up sbuild-build-depends-core-dummy (0.invalid.0) ... Merged Build-Depends: cmake (>= 2.8.12), debhelper (>= 9), extra-cmake-modules (>= 1.5.0), libkf5coreaddons-dev (>= 5.0.0), libkf5i18n-dev (>= 5.0.0), libkf5iconthemes-dev (>= 5.0.0), libkf5textwidgets-dev (>= 5.0.0), libkf5widgetsaddons-dev (>= 5.0.0), pkg-kde-tools (>= 0.15.16), qtbase5-dev (>= 5.2.0) Filtered Build-Depends: cmake (>= 2.8.12), debhelper (>= 9), extra-cmake-modules (>= 1.5.0), libkf5coreaddons-dev (>= 5.0.0), libkf5i18n-dev (>= 5.0.0), libkf5iconthemes-dev (>= 5.0.0), libkf5textwidgets-dev (>= 5.0.0), libkf5widgetsaddons-dev (>= 5.0.0), pkg-kde-tools (>= 0.15.16), qtbase5-dev (>= 5.2.0) dpkg-deb: building package 'sbuild-build-depends-debconf-kde-dummy' in '/<>/resolver-JykYDH/apt_archive/sbuild-build-depends-debconf-kde-dummy.deb'. Ign:1 copy:/<>/resolver-JykYDH/apt_archive ./ InRelease Get:2 copy:/<>/resolver-JykYDH/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-JykYDH/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-JykYDH/apt_archive ./ Sources [312 B] Get:5 copy:/<>/resolver-JykYDH/apt_archive ./ Packages [632 B] Fetched 3063 B in 0s (88.9 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install debconf-kde build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-7 libcurl3-gnutls libstdc++-7-dev Use 'apt autoremove' to remove them. The following additional packages will be installed: autoconf automake autopoint autotools-dev bsdmainutils cmake cmake-data dbus debhelper dh-autoreconf dh-python dh-strip-nondeterminism diffstat extra-cmake-modules file fontconfig fontconfig-config fonts-dejavu-core gettext gettext-base groff-base intltool-debian libapt-pkg-perl libarchive-zip-perl libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libboost-filesystem1.65.1 libboost-system1.65.1 libbsd0 libcapnp-0.6.1 libcgi-pm-perl libclass-accessor-perl libclone-perl libcroco3 libcups2 libcurl3 libdbus-1-3 libdigest-hmac-perl libdouble-conversion1 libdrm-amdgpu1 libdrm-common libdrm-dev libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libemail-valid-perl libevdev2 libexpat1 libexporter-tiny-perl libfam0 libfile-basedir-perl libfile-stripnondeterminism-perl libfontconfig1 libfreetype6 libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglu1-mesa libglu1-mesa-dev libgraphite2-3 libgudev-1.0-0 libharfbuzz0b libhtml-parser-perl libhtml-tagset-perl libice6 libicu-le-hb0 libicu60 libinput-bin libinput10 libio-pty-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-string-perl libipc-run-perl libipc-system-simple-perl libjpeg-turbo8 libjpeg8 libjsoncpp1 libkf5archive5 libkf5auth-bin-dev libkf5auth-data libkf5auth-dev libkf5auth5 libkf5codecs-data libkf5codecs-dev libkf5codecs5 libkf5completion-data libkf5completion-dev libkf5completion5 libkf5config-bin libkf5config-bin-dev libkf5config-data libkf5config-dev libkf5configcore5 libkf5configgui5 libkf5configwidgets-data libkf5configwidgets-dev libkf5configwidgets5 libkf5coreaddons-bin-dev libkf5coreaddons-data libkf5coreaddons-dev libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-data libkf5dbusaddons-dev libkf5dbusaddons5 libkf5guiaddons-dev libkf5guiaddons5 libkf5i18n-data libkf5i18n-dev libkf5i18n5 libkf5iconthemes-data libkf5iconthemes-dev libkf5iconthemes5 libkf5itemviews-data libkf5itemviews-dev libkf5itemviews5 libkf5service-bin libkf5service-data libkf5service-dev libkf5service5 libkf5sonnet-dev libkf5sonnet-dev-bin libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5 libkf5textwidgets-data libkf5textwidgets-dev libkf5textwidgets5 libkf5widgetsaddons-data libkf5widgetsaddons-dev libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem-dev libkf5windowsystem5 liblist-moreutils-perl libllvm5.0 liblocale-gettext-perl liblzo2-2 libmagic-mgc libmagic1 libmailtools-perl libmirclient9 libmircommon7 libmircore1 libmirprotobuf3 libmpdec2 libmtdev1 libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libpam-systemd libparse-debianchangelog-perl libpipeline1 libpolkit-agent-1-0 libpolkit-gobject-1-0 libpolkit-qt5-1-1 libprotobuf-lite10 libpthread-stubs0-dev libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5 libqt5script5 libqt5scripttools5 libqt5sql5 libqt5svg5 libqt5test5 libqt5widgets5 libqt5x11extras5 libqt5xml5 librhash0 libsensors4 libsigsegv2 libsm6 libsocket6-perl libsub-name-perl libtext-levenshtein-perl libtimedate-perl libtool liburi-perl libuv1 libwacom-common libwacom2 libwayland-bin libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render-util0 libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-sync-dev libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xkb1 libxcb1 libxcb1-dev libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxi6 libxkbcommon-x11-0 libxkbcommon0 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxshmfence-dev libxshmfence1 libxxf86vm-dev libxxf86vm1 libyaml-libyaml-perl lintian m4 man-db mesa-common-dev mime-support netbase patchutils perl-openssl-defaults pkg-kde-tools po-debconf python python-minimal python2.7 python2.7-minimal python3 python3-distutils python3-minimal python3.6 python3.6-2to3 python3.6-minimal qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser qtscript5-dev shared-mime-info t1utils ucf x11-common x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xkb-data xorg-sgml-doctools xtrans-dev Suggested packages: autoconf-archive gnu-standards autoconf-doc wamerican | wordlist whois vacation ninja-build default-dbus-session-bus | dbus-session-bus dh-make dwz gettext-doc libasprintf-dev libgettextpo-dev groff lrzip cups-common fam libdata-dump-perl libhtml-template-perl libthai0 qt5-image-formats-plugins qtwayland5 lm-sensors libtool-doc gfortran | fortran95-compiler gcj-jdk libwww-perl libxcb-doc libxext-doc binutils-multiarch libtext-template-perl m4-doc less www-browser apparmor cdbs libmail-box-perl python-doc python-tk python2.7-doc binfmt-support python3-doc python3-tk python3-venv python3.6-venv python3.6-doc default-libmysqlclient-dev firebird-dev libpq-dev libsqlite3-dev unixodbc-dev Recommended packages: curl | wget | lynx libcgi-fast-perl libarchive-cpio-perl libtxc-dxtn-s2tc | libtxc-dxtn-s2tc0 | libtxc-dxtn0 libglib2.0-data xdg-user-dirs libhttp-message-perl libkf5dbusaddons-bin libkf5iconthemes-bin sonnet-plugins kwayland-integration qtwayland5 libauthen-sasl-perl qttranslations5-l10n qt5-gtk-platformtheme libqt5sql5-sqlite | libqt5sql5-mysql | libqt5sql5-odbc | libqt5sql5-psql | libqt5sql5-tds | libqt5sql5-ibase libltdl-dev libwacom-bin libx11-doc libxml-sax-expat-perl libperlio-gzip-perl libwww-perl libmail-sendmail-perl libqt5opengl5-dev The following packages will be REMOVED: pkg-create-dbgsym* The following NEW packages will be installed: autoconf automake autopoint autotools-dev bsdmainutils cmake cmake-data dbus debhelper dh-autoreconf dh-python dh-strip-nondeterminism diffstat extra-cmake-modules file fontconfig fontconfig-config fonts-dejavu-core gettext gettext-base groff-base intltool-debian libapt-pkg-perl libarchive-zip-perl libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libboost-filesystem1.65.1 libboost-system1.65.1 libbsd0 libcapnp-0.6.1 libcgi-pm-perl libclass-accessor-perl libclone-perl libcroco3 libcups2 libcurl3 libdbus-1-3 libdigest-hmac-perl libdouble-conversion1 libdrm-amdgpu1 libdrm-common libdrm-dev libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libemail-valid-perl libevdev2 libexpat1 libexporter-tiny-perl libfam0 libfile-basedir-perl libfile-stripnondeterminism-perl libfontconfig1 libfreetype6 libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglu1-mesa libglu1-mesa-dev libgraphite2-3 libgudev-1.0-0 libharfbuzz0b libhtml-parser-perl libhtml-tagset-perl libice6 libicu-le-hb0 libicu60 libinput-bin libinput10 libio-pty-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-string-perl libipc-run-perl libipc-system-simple-perl libjpeg-turbo8 libjpeg8 libjsoncpp1 libkf5archive5 libkf5auth-bin-dev libkf5auth-data libkf5auth-dev libkf5auth5 libkf5codecs-data libkf5codecs-dev libkf5codecs5 libkf5completion-data libkf5completion-dev libkf5completion5 libkf5config-bin libkf5config-bin-dev libkf5config-data libkf5config-dev libkf5configcore5 libkf5configgui5 libkf5configwidgets-data libkf5configwidgets-dev libkf5configwidgets5 libkf5coreaddons-bin-dev libkf5coreaddons-data libkf5coreaddons-dev libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-data libkf5dbusaddons-dev libkf5dbusaddons5 libkf5guiaddons-dev libkf5guiaddons5 libkf5i18n-data libkf5i18n-dev libkf5i18n5 libkf5iconthemes-data libkf5iconthemes-dev libkf5iconthemes5 libkf5itemviews-data libkf5itemviews-dev libkf5itemviews5 libkf5service-bin libkf5service-data libkf5service-dev libkf5service5 libkf5sonnet-dev libkf5sonnet-dev-bin libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5 libkf5textwidgets-data libkf5textwidgets-dev libkf5textwidgets5 libkf5widgetsaddons-data libkf5widgetsaddons-dev libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem-dev libkf5windowsystem5 liblist-moreutils-perl libllvm5.0 liblocale-gettext-perl liblzo2-2 libmagic-mgc libmagic1 libmailtools-perl libmirclient9 libmircommon7 libmircore1 libmirprotobuf3 libmpdec2 libmtdev1 libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libpam-systemd libparse-debianchangelog-perl libpipeline1 libpolkit-agent-1-0 libpolkit-gobject-1-0 libpolkit-qt5-1-1 libprotobuf-lite10 libpthread-stubs0-dev libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5 libqt5script5 libqt5scripttools5 libqt5sql5 libqt5svg5 libqt5test5 libqt5widgets5 libqt5x11extras5 libqt5xml5 librhash0 libsensors4 libsigsegv2 libsm6 libsocket6-perl libsub-name-perl libtext-levenshtein-perl libtimedate-perl libtool liburi-perl libuv1 libwacom-common libwacom2 libwayland-bin libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render-util0 libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-sync-dev libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xkb1 libxcb1 libxcb1-dev libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxi6 libxkbcommon-x11-0 libxkbcommon0 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxshmfence-dev libxshmfence1 libxxf86vm-dev libxxf86vm1 libyaml-libyaml-perl lintian m4 man-db mesa-common-dev mime-support netbase patchutils perl-openssl-defaults pkg-kde-tools po-debconf python python-minimal python2.7 python2.7-minimal python3 python3-distutils python3-minimal python3.6 python3.6-2to3 python3.6-minimal qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser qtscript5-dev sbuild-build-depends-debconf-kde-dummy shared-mime-info t1utils ucf x11-common x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xkb-data xorg-sgml-doctools xtrans-dev 0 upgraded, 311 newly installed, 1 to remove and 0 not upgraded. Need to get 82.1 MB of archives. After this operation, 519 MB of additional disk space will be used. Get:1 copy:/<>/resolver-JykYDH/apt_archive ./ sbuild-build-depends-debconf-kde-dummy 0.invalid.0 [964 B] Get:2 http://ftpmaster.internal/ubuntu bionic/main ppc64el liblocale-gettext-perl ppc64el 1.07-3build2 [16.5 kB] Get:3 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython3.6-minimal ppc64el 3.6.4-2 [532 kB] Get:4 http://ftpmaster.internal/ubuntu bionic/main ppc64el libexpat1 ppc64el 2.2.5-3 [89.5 kB] Get:5 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3.6-minimal ppc64el 3.6.4-2 [1533 kB] Get:6 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3-minimal ppc64el 3.6.3-0ubuntu2 [23.3 kB] Get:7 http://ftpmaster.internal/ubuntu bionic/main ppc64el mime-support all 3.60ubuntu1 [30.1 kB] Get:8 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmpdec2 ppc64el 2.4.2-1 [82.6 kB] Get:9 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython3.6-stdlib ppc64el 3.6.4-2 [1663 kB] Get:10 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3.6-2to3 all 3.6.4-2 [13.9 kB] Get:11 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3-distutils all 3.6.4~rc1-6 [145 kB] Get:12 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3.6 ppc64el 3.6.4-2 [181 kB] Get:13 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython3-stdlib ppc64el 3.6.3-0ubuntu2 [6822 B] Get:14 http://ftpmaster.internal/ubuntu bionic/main ppc64el dh-python all 2.20170125 [83.7 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/main ppc64el python3 ppc64el 3.6.3-0ubuntu2 [8712 B] Get:16 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxau6 ppc64el 1:1.0.8-1 [7460 B] Get:17 http://ftpmaster.internal/ubuntu bionic/main ppc64el libbsd0 ppc64el 0.8.6-3 [50.0 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxdmcp6 ppc64el 1:1.1.2-3 [11.0 kB] Get:19 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb1 ppc64el 1.12-1ubuntu1 [43.9 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main ppc64el libx11-data all 2:1.6.4-3 [114 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main ppc64el libx11-6 ppc64el 2:1.6.4-3 [566 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxext6 ppc64el 2:1.3.3-1 [30.7 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main ppc64el groff-base ppc64el 1.22.3-9 [1361 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main ppc64el bsdmainutils ppc64el 9.0.14ubuntu1 [183 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpipeline1 ppc64el 1.5.0-1 [24.7 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main ppc64el man-db ppc64el 2.7.6.1-4 [913 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main ppc64el cmake-data all 3.9.5-1 [1268 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main ppc64el liblzo2-2 ppc64el 2.08-1.2 [67.2 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main ppc64el libfreetype6 ppc64el 2.8-0.2ubuntu2 [385 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main ppc64el libglib2.0-0 ppc64el 2.54.1-1ubuntu1 [1160 kB] Get:31 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgraphite2-3 ppc64el 1.3.10-8 [67.0 kB] Get:32 http://ftpmaster.internal/ubuntu bionic/main ppc64el libharfbuzz0b ppc64el 1.7.2-1 [237 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main ppc64el libicu-le-hb0 ppc64el 1.0.3+git161113-4 [17.7 kB] Get:34 http://ftpmaster.internal/ubuntu bionic/main ppc64el libicu60 ppc64el 60.2-1ubuntu1 [8363 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml2 ppc64el 2.9.4+dfsg1-5.2ubuntu1 [621 kB] Get:36 http://ftpmaster.internal/ubuntu bionic/main ppc64el libarchive13 ppc64el 3.2.2-3.1 [352 kB] Get:37 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcurl3 ppc64el 7.57.0-1ubuntu1 [214 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main ppc64el libjsoncpp1 ppc64el 1.7.4-3 [79.0 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main ppc64el librhash0 ppc64el 1.3.4-3 [81.1 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main ppc64el libuv1 ppc64el 1.18.0-3 [63.6 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main ppc64el cmake ppc64el 3.9.5-1 [3520 kB] Get:42 http://ftpmaster.internal/ubuntu bionic/main ppc64el ucf all 3.0036 [52.9 kB] Get:43 http://ftpmaster.internal/ubuntu bionic/main ppc64el fonts-dejavu-core all 2.37-1 [1041 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main ppc64el fontconfig-config all 2.12.6-0ubuntu1 [55.5 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main ppc64el libfontconfig1 ppc64el 2.12.6-0ubuntu1 [166 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main ppc64el fontconfig ppc64el 2.12.6-0ubuntu1 [169 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main ppc64el libjpeg-turbo8 ppc64el 1.5.2-0ubuntu5 [146 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmtdev1 ppc64el 1.1.5-1ubuntu2 [15.3 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdouble-conversion1 ppc64el 2.0.1-4ubuntu1 [34.2 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5core5a ppc64el 5.9.3+dfsg-0ubuntu1 [2088 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libqt5script5 ppc64el 5.9.3+dfsg-0ubuntu1 [614 kB] Get:52 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm-common all 2.4.89-1 [4940 B] Get:53 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm2 ppc64el 2.4.89-1 [33.5 kB] Get:54 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-client0 ppc64el 1.14.0-1 [22.6 kB] Get:55 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-server0 ppc64el 1.14.0-1 [28.6 kB] Get:56 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgbm1 ppc64el 17.2.4-0ubuntu2 [28.3 kB] Get:57 http://ftpmaster.internal/ubuntu bionic/main ppc64el libboost-system1.65.1 ppc64el 1.65.1+dfsg-0ubuntu4 [11.1 kB] Get:58 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcapnp-0.6.1 ppc64el 0.6.1-1 [682 kB] Get:59 http://ftpmaster.internal/ubuntu bionic/main ppc64el libboost-filesystem1.65.1 ppc64el 1.65.1+dfsg-0ubuntu4 [42.6 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmircore1 ppc64el 0.29.0-0ubuntu1 [34.5 kB] Get:61 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmircommon7 ppc64el 0.29.0-0ubuntu1 [79.4 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main ppc64el libprotobuf-lite10 ppc64el 3.0.0-9ubuntu5 [106 kB] Get:63 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmirprotobuf3 ppc64el 0.29.0-0ubuntu1 [141 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main ppc64el xkb-data all 2.19-1.1ubuntu1 [312 kB] Get:65 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxkbcommon0 ppc64el 0.8.0-1 [118 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmirclient9 ppc64el 0.29.0-0ubuntu1 [211 kB] Get:67 http://ftpmaster.internal/ubuntu bionic/main ppc64el libx11-xcb1 ppc64el 2:1.6.4-3 [9832 B] Get:68 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-dri2-0 ppc64el 1.12-1ubuntu1 [6600 B] Get:69 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-dri3-0 ppc64el 1.12-1ubuntu1 [5134 B] Get:70 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-present0 ppc64el 1.12-1ubuntu1 [5420 B] Get:71 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-sync1 ppc64el 1.12-1ubuntu1 [8320 B] Get:72 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-xfixes0 ppc64el 1.12-1ubuntu1 [8622 B] Get:73 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxshmfence1 ppc64el 1.2-1 [5170 B] Get:74 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm-amdgpu1 ppc64el 2.4.89-1 [20.4 kB] Get:75 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm-nouveau2 ppc64el 2.4.89-1 [18.2 kB] Get:76 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm-radeon1 ppc64el 2.4.89-1 [26.1 kB] Get:77 http://ftpmaster.internal/ubuntu bionic/main ppc64el libelf1 ppc64el 0.170-0.2 [46.8 kB] Get:78 http://ftpmaster.internal/ubuntu bionic/main ppc64el libglapi-mesa ppc64el 17.2.4-0ubuntu2 [23.5 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main ppc64el libedit2 ppc64el 3.1-20170329-1 [79.6 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main ppc64el libllvm5.0 ppc64el 1:5.0.1-2 [12.8 MB] Get:81 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsensors4 ppc64el 1:3.4.0-4 [28.6 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgl1-mesa-dri ppc64el 17.2.4-0ubuntu2 [5885 kB] Get:83 http://ftpmaster.internal/ubuntu bionic/main ppc64el libegl1-mesa ppc64el 17.2.4-0ubuntu2 [96.1 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-glx0 ppc64el 1.12-1ubuntu1 [19.7 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxdamage1 ppc64el 1:1.1.4-3 [7056 B] Get:86 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxfixes3 ppc64el 1:5.0.3-1 [10.6 kB] Get:87 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxxf86vm1 ppc64el 1:1.1.4-1 [10.7 kB] Get:88 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgl1-mesa-glx ppc64el 17.2.4-0ubuntu2 [139 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11-common all 1:7.7+19ubuntu3 [22.0 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main ppc64el libice6 ppc64el 2:1.0.9-2 [38.0 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main ppc64el libevdev2 ppc64el 1.5.7+dfsg-1 [27.6 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgudev-1.0-0 ppc64el 1:232-1 [11.8 kB] Get:93 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwacom-common all 0.26-1 [34.7 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwacom2 ppc64el 0.26-1 [19.9 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main ppc64el libinput-bin ppc64el 1.9.4-2 [11.2 kB] Get:96 http://ftpmaster.internal/ubuntu bionic/main ppc64el libinput10 ppc64el 1.9.4-2 [90.9 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main ppc64el libjpeg8 ppc64el 8c-2ubuntu8 [2146 B] Get:98 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdbus-1-3 ppc64el 1.12.2-1ubuntu1 [183 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5dbus5 ppc64el 5.9.3+dfsg-0ubuntu1 [181 kB] Get:100 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5network5 ppc64el 5.9.3+dfsg-0ubuntu1 [581 kB] Get:101 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsm6 ppc64el 2:1.2.2-1 [15.1 kB] Get:102 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-icccm4 ppc64el 0.4.1-1ubuntu1 [10.0 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-shm0 ppc64el 1.12-1ubuntu1 [5494 B] Get:104 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-util1 ppc64el 0.4.0-0ubuntu3 [11.0 kB] Get:105 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-image0 ppc64el 0.4.0-1build1 [12.4 kB] Get:106 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-keysyms1 ppc64el 0.4.0-1 [8308 B] Get:107 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-randr0 ppc64el 1.12-1ubuntu1 [14.5 kB] Get:108 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-render0 ppc64el 1.12-1ubuntu1 [13.4 kB] Get:109 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-render-util0 ppc64el 0.3.9-1 [9720 B] Get:110 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-shape0 ppc64el 1.12-1ubuntu1 [5756 B] Get:111 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-xinerama0 ppc64el 1.12-1ubuntu1 [5218 B] Get:112 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-xkb1 ppc64el 1.12-1ubuntu1 [27.7 kB] Get:113 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxi6 ppc64el 2:1.7.9-1 [29.0 kB] Get:114 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxkbcommon-x11-0 ppc64el 0.8.0-1 [13.9 kB] Get:115 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5gui5 ppc64el 5.9.3+dfsg-0ubuntu1 [2383 kB] Get:116 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5widgets5 ppc64el 5.9.3+dfsg-0ubuntu1 [2072 kB] Get:117 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libqt5scripttools5 ppc64el 5.9.3+dfsg-0ubuntu1 [230 kB] Get:118 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5svg5 ppc64el 5.9.3-0ubuntu1 [124 kB] Get:119 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython2.7-minimal ppc64el 2.7.14-4 [338 kB] Get:120 http://ftpmaster.internal/ubuntu bionic/main ppc64el python2.7-minimal ppc64el 2.7.14-4 [1443 kB] Get:121 http://ftpmaster.internal/ubuntu bionic/main ppc64el python-minimal ppc64el 2.7.14-2ubuntu1 [28.1 kB] Get:122 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython2.7-stdlib ppc64el 2.7.14-4 [2008 kB] Get:123 http://ftpmaster.internal/ubuntu bionic/main ppc64el python2.7 ppc64el 2.7.14-4 [233 kB] Get:124 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpython-stdlib ppc64el 2.7.14-2ubuntu1 [7576 B] Get:125 http://ftpmaster.internal/ubuntu bionic/main ppc64el python ppc64el 2.7.14-2ubuntu1 [140 kB] Get:126 http://ftpmaster.internal/ubuntu bionic/main ppc64el xorg-sgml-doctools all 1:1.11-1 [12.9 kB] Get:127 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-core-dev all 7.0.31-1 [700 kB] Get:128 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxau-dev ppc64el 1:1.0.8-1 [9358 B] Get:129 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxdmcp-dev ppc64el 1:1.1.2-3 [26.1 kB] Get:130 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-input-dev all 2.3.2-1 [118 kB] Get:131 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-kb-dev all 1.0.7-1 [226 kB] Get:132 http://ftpmaster.internal/ubuntu bionic/main ppc64el xtrans-dev all 1.3.5-1 [70.5 kB] Get:133 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpthread-stubs0-dev ppc64el 0.3-4 [3894 B] Get:134 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb1-dev ppc64el 1.12-1ubuntu1 [83.4 kB] Get:135 http://ftpmaster.internal/ubuntu bionic/main ppc64el libx11-dev ppc64el 2:1.6.4-3 [651 kB] Get:136 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdrm-dev ppc64el 2.4.89-1 [190 kB] Get:137 http://ftpmaster.internal/ubuntu bionic/main ppc64el mesa-common-dev ppc64el 17.2.4-0ubuntu2 [513 kB] Get:138 http://ftpmaster.internal/ubuntu bionic/main ppc64el libx11-xcb-dev ppc64el 2:1.6.4-3 [9598 B] Get:139 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-dri3-dev ppc64el 1.12-1ubuntu1 [5688 B] Get:140 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-render0-dev ppc64el 1.12-1ubuntu1 [18.4 kB] Get:141 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-randr0-dev ppc64el 1.12-1ubuntu1 [19.0 kB] Get:142 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-shape0-dev ppc64el 1.12-1ubuntu1 [6986 B] Get:143 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-xfixes0-dev ppc64el 1.12-1ubuntu1 [11.3 kB] Get:144 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-sync-dev ppc64el 1.12-1ubuntu1 [10.8 kB] Get:145 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-present-dev ppc64el 1.12-1ubuntu1 [6784 B] Get:146 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxshmfence-dev ppc64el 1.2-1 [3706 B] Get:147 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-dri2-0-dev ppc64el 1.12-1ubuntu1 [8280 B] Get:148 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxcb-glx0-dev ppc64el 1.12-1ubuntu1 [26.7 kB] Get:149 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-xext-dev all 7.3.0-1 [212 kB] Get:150 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-fixes-dev all 1:5.0-2ubuntu2 [14.2 kB] Get:151 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxfixes-dev ppc64el 1:5.0.3-1 [11.1 kB] Get:152 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-damage-dev all 1:1.2.1-2 [8286 B] Get:153 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxdamage-dev ppc64el 1:1.1.4-3 [5984 B] Get:154 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxext-dev ppc64el 2:1.3.3-1 [86.5 kB] Get:155 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-xf86vidmode-dev all 2.3.1-2 [6116 B] Get:156 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxxf86vm-dev ppc64el 1:1.1.4-1 [14.0 kB] Get:157 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-dri2-dev all 2.8-2 [12.6 kB] Get:158 http://ftpmaster.internal/ubuntu bionic/main ppc64el x11proto-gl-dev all 1.4.17-1 [17.9 kB] Get:159 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgl1-mesa-dev ppc64el 17.2.4-0ubuntu2 [4512 B] Get:160 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgles2-mesa ppc64el 17.2.4-0ubuntu2 [13.8 kB] Get:161 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-egl1-mesa ppc64el 17.2.4-0ubuntu2 [6064 B] Get:162 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-cursor0 ppc64el 1.14.0-1 [11.2 kB] Get:163 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-bin ppc64el 1.14.0-1 [23.7 kB] Get:164 http://ftpmaster.internal/ubuntu bionic/main ppc64el libwayland-dev ppc64el 1.14.0-1 [103 kB] Get:165 http://ftpmaster.internal/ubuntu bionic/main ppc64el libegl1-mesa-dev ppc64el 17.2.4-0ubuntu2 [19.9 kB] Get:166 http://ftpmaster.internal/ubuntu bionic/main ppc64el libgles2-mesa-dev ppc64el 17.2.4-0ubuntu2 [40.4 kB] Get:167 http://ftpmaster.internal/ubuntu bionic/main ppc64el libglu1-mesa ppc64el 9.0.0-2.1build1 [225 kB] Get:168 http://ftpmaster.internal/ubuntu bionic/main ppc64el libglu1-mesa-dev ppc64el 9.0.0-2.1build1 [270 kB] Get:169 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5concurrent5 ppc64el 5.9.3+dfsg-0ubuntu1 [30.6 kB] Get:170 http://ftpmaster.internal/ubuntu bionic/main ppc64el libavahi-common-data ppc64el 0.7-3ubuntu1 [22.7 kB] Get:171 http://ftpmaster.internal/ubuntu bionic/main ppc64el libavahi-common3 ppc64el 0.7-3ubuntu1 [20.6 kB] Get:172 http://ftpmaster.internal/ubuntu bionic/main ppc64el libavahi-client3 ppc64el 0.7-3ubuntu1 [25.5 kB] Get:173 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcups2 ppc64el 2.2.6-4 [241 kB] Get:174 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5printsupport5 ppc64el 5.9.3+dfsg-0ubuntu1 [169 kB] Get:175 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5sql5 ppc64el 5.9.3+dfsg-0ubuntu1 [107 kB] Get:176 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5test5 ppc64el 5.9.3+dfsg-0ubuntu1 [105 kB] Get:177 http://ftpmaster.internal/ubuntu bionic/main ppc64el libqt5xml5 ppc64el 5.9.3+dfsg-0ubuntu1 [93.4 kB] Get:178 http://ftpmaster.internal/ubuntu bionic/main ppc64el qt5-qmake-bin ppc64el 5.9.3+dfsg-0ubuntu1 [931 kB] Get:179 http://ftpmaster.internal/ubuntu bionic/main ppc64el qtchooser ppc64el 64-ga1b6736-5 [29.0 kB] Get:180 http://ftpmaster.internal/ubuntu bionic/main ppc64el qt5-qmake ppc64el 5.9.3+dfsg-0ubuntu1 [179 kB] Get:181 http://ftpmaster.internal/ubuntu bionic/main ppc64el qtbase5-dev-tools ppc64el 5.9.3+dfsg-0ubuntu1 [718 kB] Get:182 http://ftpmaster.internal/ubuntu bionic/main ppc64el qtbase5-dev ppc64el 5.9.3+dfsg-0ubuntu1 [939 kB] Get:183 http://ftpmaster.internal/ubuntu bionic/universe ppc64el qtscript5-dev ppc64el 5.9.3+dfsg-0ubuntu1 [18.5 kB] Get:184 http://ftpmaster.internal/ubuntu bionic/main ppc64el dbus ppc64el 1.12.2-1ubuntu1 [158 kB] Get:185 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmagic-mgc ppc64el 1:5.32-1 [184 kB] Get:186 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmagic1 ppc64el 1:5.32-1 [76.6 kB] Get:187 http://ftpmaster.internal/ubuntu bionic/main ppc64el file ppc64el 1:5.32-1 [22.7 kB] Get:188 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpam-systemd ppc64el 235-3ubuntu3 [110 kB] Get:189 http://ftpmaster.internal/ubuntu bionic/main ppc64el netbase all 5.4 [12.7 kB] Get:190 http://ftpmaster.internal/ubuntu bionic/main ppc64el shared-mime-info ppc64el 1.9-2 [431 kB] Get:191 http://ftpmaster.internal/ubuntu bionic/main ppc64el gettext-base ppc64el 0.19.8.1-4ubuntu2 [49.7 kB] Get:192 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpolkit-gobject-1-0 ppc64el 0.105-18 [32.6 kB] Get:193 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsigsegv2 ppc64el 2.11-1 [13.3 kB] Get:194 http://ftpmaster.internal/ubuntu bionic/main ppc64el m4 ppc64el 1.4.18-1 [202 kB] Get:195 http://ftpmaster.internal/ubuntu bionic/main ppc64el autoconf all 2.69-11 [322 kB] Get:196 http://ftpmaster.internal/ubuntu bionic/main ppc64el autotools-dev all 20171216.1 [39.7 kB] Get:197 http://ftpmaster.internal/ubuntu bionic/main ppc64el automake all 1:1.15.1-3ubuntu1 [509 kB] Get:198 http://ftpmaster.internal/ubuntu bionic/main ppc64el autopoint all 0.19.8.1-4ubuntu2 [412 kB] Get:199 http://ftpmaster.internal/ubuntu bionic/main ppc64el libtool all 2.4.6-2 [194 kB] Get:200 http://ftpmaster.internal/ubuntu bionic/main ppc64el dh-autoreconf all 15 [15.8 kB] Get:201 http://ftpmaster.internal/ubuntu bionic/main ppc64el libarchive-zip-perl all 1.60-1 [83.9 kB] Get:202 http://ftpmaster.internal/ubuntu bionic/main ppc64el libfile-stripnondeterminism-perl all 0.040-1 [13.9 kB] Get:203 http://ftpmaster.internal/ubuntu bionic/main ppc64el libtimedate-perl all 2.3000-2 [37.5 kB] Get:204 http://ftpmaster.internal/ubuntu bionic/main ppc64el dh-strip-nondeterminism all 0.040-1 [5196 B] Get:205 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcroco3 ppc64el 0.6.12-2 [82.5 kB] Get:206 http://ftpmaster.internal/ubuntu bionic/main ppc64el gettext ppc64el 0.19.8.1-4ubuntu2 [1147 kB] Get:207 http://ftpmaster.internal/ubuntu bionic/main ppc64el intltool-debian all 0.35.0+20060710.4 [24.9 kB] Get:208 http://ftpmaster.internal/ubuntu bionic/main ppc64el po-debconf all 1.0.20 [232 kB] Get:209 http://ftpmaster.internal/ubuntu bionic/main ppc64el debhelper all 11ubuntu1 [887 kB] Get:210 http://ftpmaster.internal/ubuntu bionic/main ppc64el diffstat ppc64el 1.61-1build1 [25.0 kB] Get:211 http://ftpmaster.internal/ubuntu bionic/universe ppc64el extra-cmake-modules ppc64el 5.41.0-0ubuntu1 [283 kB] Get:212 http://ftpmaster.internal/ubuntu bionic/main ppc64el libapt-pkg-perl ppc64el 0.1.33build1 [71.6 kB] Get:213 http://ftpmaster.internal/ubuntu bionic/main ppc64el libhtml-tagset-perl all 3.20-3 [12.1 kB] Get:214 http://ftpmaster.internal/ubuntu bionic/main ppc64el liburi-perl all 1.72-2 [76.6 kB] Get:215 http://ftpmaster.internal/ubuntu bionic/main ppc64el libhtml-parser-perl ppc64el 3.72-3build1 [90.9 kB] Get:216 http://ftpmaster.internal/ubuntu bionic/main ppc64el libcgi-pm-perl all 4.38-1 [185 kB] Get:217 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsub-name-perl ppc64el 0.21-1build1 [11.7 kB] Get:218 http://ftpmaster.internal/ubuntu bionic/main ppc64el libclass-accessor-perl all 0.51-1 [21.2 kB] Get:219 http://ftpmaster.internal/ubuntu bionic/main ppc64el libclone-perl ppc64el 0.39-1 [10.5 kB] Get:220 http://ftpmaster.internal/ubuntu bionic/main ppc64el libdigest-hmac-perl all 1.03+dfsg-1 [12.1 kB] Get:221 http://ftpmaster.internal/ubuntu bionic/main ppc64el perl-openssl-defaults ppc64el 3 [6816 B] Get:222 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnet-ssleay-perl ppc64el 1.82-1 [263 kB] Get:223 http://ftpmaster.internal/ubuntu bionic/main ppc64el libio-socket-ssl-perl all 2.052-1 [168 kB] Get:224 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnet-smtp-ssl-perl all 1.04-1 [5948 B] Get:225 http://ftpmaster.internal/ubuntu bionic/main ppc64el libmailtools-perl all 2.18-1 [74.0 kB] Get:226 http://ftpmaster.internal/ubuntu bionic/main ppc64el libsocket6-perl ppc64el 0.27-1build2 [22.5 kB] Get:227 http://ftpmaster.internal/ubuntu bionic/main ppc64el libio-socket-inet6-perl all 2.72-2 [13.8 kB] Get:228 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnet-ip-perl all 1.26-1 [31.5 kB] Get:229 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnet-dns-perl all 1.10-2 [335 kB] Get:230 http://ftpmaster.internal/ubuntu bionic/main ppc64el libnet-domain-tld-perl all 1.75-1 [29.1 kB] Get:231 http://ftpmaster.internal/ubuntu bionic/main ppc64el libemail-valid-perl all 1.202-1 [16.3 kB] Get:232 http://ftpmaster.internal/ubuntu bionic/main ppc64el libexporter-tiny-perl all 1.000000-2 [34.6 kB] Get:233 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libfam0 ppc64el 2.7.0-17.2 [18.2 kB] Get:234 http://ftpmaster.internal/ubuntu bionic/main ppc64el libipc-system-simple-perl all 1.25-3 [22.8 kB] Get:235 http://ftpmaster.internal/ubuntu bionic/main ppc64el libfile-basedir-perl all 0.07-1 [16.9 kB] Get:236 http://ftpmaster.internal/ubuntu bionic/main ppc64el libio-pty-perl ppc64el 1:1.08-1.1build4 [29.7 kB] Get:237 http://ftpmaster.internal/ubuntu bionic/main ppc64el libio-string-perl all 1.08-3 [11.1 kB] Get:238 http://ftpmaster.internal/ubuntu bionic/main ppc64el libipc-run-perl all 0.96-1 [89.9 kB] Get:239 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5archive5 ppc64el 5.41.0-0ubuntu1 [82.8 kB] Get:240 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5auth-bin-dev ppc64el 5.41.0-0ubuntu1 [24.0 kB] Get:241 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5auth-data all 5.41.0-0ubuntu1 [19.5 kB] Get:242 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5coreaddons-data all 5.41.0-0ubuntu1 [78.9 kB] Get:243 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5coreaddons5 ppc64el 5.41.0-0ubuntu1 [218 kB] Get:244 http://ftpmaster.internal/ubuntu bionic/main ppc64el libpolkit-agent-1-0 ppc64el 0.105-18 [14.1 kB] Get:245 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libpolkit-qt5-1-1 ppc64el 0.112.0-5 [55.0 kB] Get:246 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5auth5 ppc64el 5.41.0-0ubuntu1 [51.0 kB] Get:247 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5coreaddons-bin-dev ppc64el 5.41.0-0ubuntu1 [39.7 kB] Get:248 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5coreaddons-dev ppc64el 5.41.0-0ubuntu1 [63.0 kB] Get:249 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5auth-dev ppc64el 5.41.0-0ubuntu1 [21.0 kB] Get:250 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5codecs-data all 5.41.0-0ubuntu1 [40.1 kB] Get:251 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5codecs5 ppc64el 5.41.0-0ubuntu1 [94.7 kB] Get:252 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5codecs-dev ppc64el 5.41.0-0ubuntu1 [18.2 kB] Get:253 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5completion-data all 5.41.0-0ubuntu1 [13.2 kB] Get:254 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5config-data all 5.41.0-0ubuntu1 [66.0 kB] Get:255 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5configcore5 ppc64el 5.41.0-0ubuntu1 [114 kB] Get:256 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5configgui5 ppc64el 5.41.0-0ubuntu1 [41.5 kB] Get:257 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5widgetsaddons-data all 5.41.0-0ubuntu1 [1006 kB] Get:258 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5widgetsaddons5 ppc64el 5.41.0-0ubuntu1 [369 kB] Get:259 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5completion5 ppc64el 5.41.0-0ubuntu1 [76.9 kB] Get:260 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5config-bin ppc64el 5.41.0-0ubuntu1 [31.6 kB] Get:261 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5config-bin-dev ppc64el 5.41.0-0ubuntu1 [47.6 kB] Get:262 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5config-dev ppc64el 5.41.0-0ubuntu1 [35.2 kB] Get:263 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5widgetsaddons-dev ppc64el 5.41.0-0ubuntu1 [76.7 kB] Get:264 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5completion-dev ppc64el 5.41.0-0ubuntu1 [26.8 kB] Get:265 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5configwidgets-data all 5.41.0-0ubuntu1 [201 kB] Get:266 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libqt5x11extras5 ppc64el 5.9.3-0ubuntu1 [8676 B] Get:267 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5guiaddons5 ppc64el 5.41.0-0ubuntu1 [39.7 kB] Get:268 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5i18n-data all 5.41.0-0ubuntu1 [1038 kB] Get:269 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5i18n5 ppc64el 5.41.0-0ubuntu1 [107 kB] Get:270 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5configwidgets5 ppc64el 5.41.0-0ubuntu1 [120 kB] Get:271 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5guiaddons-dev ppc64el 5.41.0-0ubuntu1 [16.3 kB] Get:272 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5i18n-dev ppc64el 5.41.0-0ubuntu1 [22.8 kB] Get:273 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5configwidgets-dev ppc64el 5.41.0-0ubuntu1 [34.4 kB] Get:274 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5windowsystem-data all 5.41.0-0ubuntu1 [8396 B] Get:275 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5windowsystem5 ppc64el 5.41.0-0ubuntu1 [134 kB] Get:276 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5crash5 ppc64el 5.41.0-0ubuntu1 [14.3 kB] Get:277 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5dbusaddons-data all 5.41.0-0ubuntu1 [13.8 kB] Get:278 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5dbusaddons5 ppc64el 5.41.0-0ubuntu1 [26.5 kB] Get:279 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5dbusaddons-dev ppc64el 5.41.0-0ubuntu1 [11.1 kB] Get:280 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5iconthemes-data all 5.41.0-0ubuntu1 [28.2 kB] Get:281 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5itemviews-data all 5.41.0-0ubuntu1 [9804 B] Get:282 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5itemviews5 ppc64el 5.41.0-0ubuntu1 [77.8 kB] Get:283 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5iconthemes5 ppc64el 5.41.0-0ubuntu1 [85.7 kB] Get:284 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5itemviews-dev ppc64el 5.41.0-0ubuntu1 [17.4 kB] Get:285 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5iconthemes-dev ppc64el 5.41.0-0ubuntu1 [16.8 kB] Get:286 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5service-data all 5.41.0-0ubuntu2 [61.2 kB] Get:287 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5service5 ppc64el 5.41.0-0ubuntu2 [210 kB] Get:288 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5service-bin ppc64el 5.41.0-0ubuntu2 [27.4 kB] Get:289 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5service-dev ppc64el 5.41.0-0ubuntu2 [31.6 kB] Get:290 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5sonnet-dev-bin ppc64el 5.41.0-0ubuntu1 [16.8 kB] Get:291 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5sonnet5-data all 5.41.0-0ubuntu1 [77.9 kB] Get:292 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5sonnetcore5 ppc64el 5.41.0-0ubuntu1 [58.0 kB] Get:293 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5sonnetui5 ppc64el 5.41.0-0ubuntu1 [45.2 kB] Get:294 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5sonnet-dev ppc64el 5.41.0-0ubuntu1 [14.7 kB] Get:295 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5textwidgets-data all 5.41.0-0ubuntu1 [173 kB] Get:296 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5textwidgets5 ppc64el 5.41.0-0ubuntu1 [78.5 kB] Get:297 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5windowsystem-dev ppc64el 5.41.0-0ubuntu1 [41.1 kB] Get:298 http://ftpmaster.internal/ubuntu bionic/universe ppc64el libkf5textwidgets-dev ppc64el 5.41.0-0ubuntu1 [21.8 kB] Get:299 http://ftpmaster.internal/ubuntu bionic/main ppc64el liblist-moreutils-perl ppc64el 0.416-1build3 [53.8 kB] Get:300 http://ftpmaster.internal/ubuntu bionic/main ppc64el libparse-debianchangelog-perl all 1.2.0-12 [49.5 kB] Get:301 http://ftpmaster.internal/ubuntu bionic/main ppc64el libtext-levenshtein-perl all 0.13-1 [9612 B] Get:302 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml-namespacesupport-perl all 1.12-1 [13.2 kB] Get:303 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml-sax-base-perl all 1.09-1 [18.8 kB] Get:304 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml-sax-perl all 0.99+dfsg-2ubuntu1 [64.6 kB] Get:305 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml-libxml-perl ppc64el 2.0128+dfsg-5 [305 kB] Get:306 http://ftpmaster.internal/ubuntu bionic/main ppc64el libxml-simple-perl all 2.24-1 [63.6 kB] Get:307 http://ftpmaster.internal/ubuntu bionic/main ppc64el libyaml-libyaml-perl ppc64el 0.63-2build1 [62.4 kB] Get:308 http://ftpmaster.internal/ubuntu bionic/main ppc64el patchutils ppc64el 0.3.4-2 [71.1 kB] Get:309 http://ftpmaster.internal/ubuntu bionic/main ppc64el t1utils ppc64el 1.41-2 [61.8 kB] Get:310 http://ftpmaster.internal/ubuntu bionic/main ppc64el lintian all 2.5.62 [824 kB] Get:311 http://ftpmaster.internal/ubuntu bionic/universe ppc64el pkg-kde-tools all 0.15.28ubuntu1 [95.6 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 82.1 MB in 2s (31.0 MB/s) (Reading database ... 13530 files and directories currently installed.) Removing pkg-create-dbgsym (0.73) ... Selecting previously unselected package liblocale-gettext-perl. (Reading database ... 13521 files and directories currently installed.) Preparing to unpack .../00-liblocale-gettext-perl_1.07-3build2_ppc64el.deb ... Unpacking liblocale-gettext-perl (1.07-3build2) ... Selecting previously unselected package libpython3.6-minimal:ppc64el. Preparing to unpack .../01-libpython3.6-minimal_3.6.4-2_ppc64el.deb ... Unpacking libpython3.6-minimal:ppc64el (3.6.4-2) ... Selecting previously unselected package libexpat1:ppc64el. Preparing to unpack .../02-libexpat1_2.2.5-3_ppc64el.deb ... Unpacking libexpat1:ppc64el (2.2.5-3) ... Selecting previously unselected package python3.6-minimal. Preparing to unpack .../03-python3.6-minimal_3.6.4-2_ppc64el.deb ... Unpacking python3.6-minimal (3.6.4-2) ... Selecting previously unselected package python3-minimal. Preparing to unpack .../04-python3-minimal_3.6.3-0ubuntu2_ppc64el.deb ... Unpacking python3-minimal (3.6.3-0ubuntu2) ... Selecting previously unselected package mime-support. Preparing to unpack .../05-mime-support_3.60ubuntu1_all.deb ... Unpacking mime-support (3.60ubuntu1) ... Selecting previously unselected package libmpdec2:ppc64el. Preparing to unpack .../06-libmpdec2_2.4.2-1_ppc64el.deb ... Unpacking libmpdec2:ppc64el (2.4.2-1) ... Selecting previously unselected package libpython3.6-stdlib:ppc64el. Preparing to unpack .../07-libpython3.6-stdlib_3.6.4-2_ppc64el.deb ... Unpacking libpython3.6-stdlib:ppc64el (3.6.4-2) ... Selecting previously unselected package python3.6-2to3. Preparing to unpack .../08-python3.6-2to3_3.6.4-2_all.deb ... Unpacking python3.6-2to3 (3.6.4-2) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../09-python3-distutils_3.6.4~rc1-6_all.deb ... Unpacking python3-distutils (3.6.4~rc1-6) ... Selecting previously unselected package python3.6. Preparing to unpack .../10-python3.6_3.6.4-2_ppc64el.deb ... Unpacking python3.6 (3.6.4-2) ... Selecting previously unselected package libpython3-stdlib:ppc64el. Preparing to unpack .../11-libpython3-stdlib_3.6.3-0ubuntu2_ppc64el.deb ... Unpacking libpython3-stdlib:ppc64el (3.6.3-0ubuntu2) ... Selecting previously unselected package dh-python. Preparing to unpack .../12-dh-python_2.20170125_all.deb ... Unpacking dh-python (2.20170125) ... Setting up libpython3.6-minimal:ppc64el (3.6.4-2) ... Setting up libexpat1:ppc64el (2.2.5-3) ... Setting up python3.6-minimal (3.6.4-2) ... Setting up python3-minimal (3.6.3-0ubuntu2) ... Selecting previously unselected package python3. (Reading database ... 14378 files and directories currently installed.) Preparing to unpack .../000-python3_3.6.3-0ubuntu2_ppc64el.deb ... Unpacking python3 (3.6.3-0ubuntu2) ... Selecting previously unselected package libxau6:ppc64el. Preparing to unpack .../001-libxau6_1%3a1.0.8-1_ppc64el.deb ... Unpacking libxau6:ppc64el (1:1.0.8-1) ... Selecting previously unselected package libbsd0:ppc64el. Preparing to unpack .../002-libbsd0_0.8.6-3_ppc64el.deb ... Unpacking libbsd0:ppc64el (0.8.6-3) ... Selecting previously unselected package libxdmcp6:ppc64el. Preparing to unpack .../003-libxdmcp6_1%3a1.1.2-3_ppc64el.deb ... Unpacking libxdmcp6:ppc64el (1:1.1.2-3) ... Selecting previously unselected package libxcb1:ppc64el. Preparing to unpack .../004-libxcb1_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb1:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../005-libx11-data_2%3a1.6.4-3_all.deb ... Unpacking libx11-data (2:1.6.4-3) ... Selecting previously unselected package libx11-6:ppc64el. Preparing to unpack .../006-libx11-6_2%3a1.6.4-3_ppc64el.deb ... Unpacking libx11-6:ppc64el (2:1.6.4-3) ... Selecting previously unselected package libxext6:ppc64el. Preparing to unpack .../007-libxext6_2%3a1.3.3-1_ppc64el.deb ... Unpacking libxext6:ppc64el (2:1.3.3-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../008-groff-base_1.22.3-9_ppc64el.deb ... Unpacking groff-base (1.22.3-9) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../009-bsdmainutils_9.0.14ubuntu1_ppc64el.deb ... Unpacking bsdmainutils (9.0.14ubuntu1) ... Selecting previously unselected package libpipeline1:ppc64el. Preparing to unpack .../010-libpipeline1_1.5.0-1_ppc64el.deb ... Unpacking libpipeline1:ppc64el (1.5.0-1) ... Selecting previously unselected package man-db. Preparing to unpack .../011-man-db_2.7.6.1-4_ppc64el.deb ... Unpacking man-db (2.7.6.1-4) ... Selecting previously unselected package cmake-data. Preparing to unpack .../012-cmake-data_3.9.5-1_all.deb ... Unpacking cmake-data (3.9.5-1) ... Selecting previously unselected package liblzo2-2:ppc64el. Preparing to unpack .../013-liblzo2-2_2.08-1.2_ppc64el.deb ... Unpacking liblzo2-2:ppc64el (2.08-1.2) ... Selecting previously unselected package libfreetype6:ppc64el. Preparing to unpack .../014-libfreetype6_2.8-0.2ubuntu2_ppc64el.deb ... Unpacking libfreetype6:ppc64el (2.8-0.2ubuntu2) ... Selecting previously unselected package libglib2.0-0:ppc64el. Preparing to unpack .../015-libglib2.0-0_2.54.1-1ubuntu1_ppc64el.deb ... Unpacking libglib2.0-0:ppc64el (2.54.1-1ubuntu1) ... Selecting previously unselected package libgraphite2-3:ppc64el. Preparing to unpack .../016-libgraphite2-3_1.3.10-8_ppc64el.deb ... Unpacking libgraphite2-3:ppc64el (1.3.10-8) ... Selecting previously unselected package libharfbuzz0b:ppc64el. Preparing to unpack .../017-libharfbuzz0b_1.7.2-1_ppc64el.deb ... Unpacking libharfbuzz0b:ppc64el (1.7.2-1) ... Selecting previously unselected package libicu-le-hb0:ppc64el. Preparing to unpack .../018-libicu-le-hb0_1.0.3+git161113-4_ppc64el.deb ... Unpacking libicu-le-hb0:ppc64el (1.0.3+git161113-4) ... Selecting previously unselected package libicu60:ppc64el. Preparing to unpack .../019-libicu60_60.2-1ubuntu1_ppc64el.deb ... Unpacking libicu60:ppc64el (60.2-1ubuntu1) ... Selecting previously unselected package libxml2:ppc64el. Preparing to unpack .../020-libxml2_2.9.4+dfsg1-5.2ubuntu1_ppc64el.deb ... Unpacking libxml2:ppc64el (2.9.4+dfsg1-5.2ubuntu1) ... Selecting previously unselected package libarchive13:ppc64el. Preparing to unpack .../021-libarchive13_3.2.2-3.1_ppc64el.deb ... Unpacking libarchive13:ppc64el (3.2.2-3.1) ... Selecting previously unselected package libcurl3:ppc64el. Preparing to unpack .../022-libcurl3_7.57.0-1ubuntu1_ppc64el.deb ... Unpacking libcurl3:ppc64el (7.57.0-1ubuntu1) ... Selecting previously unselected package libjsoncpp1:ppc64el. Preparing to unpack .../023-libjsoncpp1_1.7.4-3_ppc64el.deb ... Unpacking libjsoncpp1:ppc64el (1.7.4-3) ... Selecting previously unselected package librhash0. Preparing to unpack .../024-librhash0_1.3.4-3_ppc64el.deb ... Unpacking librhash0 (1.3.4-3) ... Selecting previously unselected package libuv1:ppc64el. Preparing to unpack .../025-libuv1_1.18.0-3_ppc64el.deb ... Unpacking libuv1:ppc64el (1.18.0-3) ... Selecting previously unselected package cmake. Preparing to unpack .../026-cmake_3.9.5-1_ppc64el.deb ... Unpacking cmake (3.9.5-1) ... Selecting previously unselected package ucf. Preparing to unpack .../027-ucf_3.0036_all.deb ... Moving old data out of the way Unpacking ucf (3.0036) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../028-fonts-dejavu-core_2.37-1_all.deb ... Unpacking fonts-dejavu-core (2.37-1) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../029-fontconfig-config_2.12.6-0ubuntu1_all.deb ... Unpacking fontconfig-config (2.12.6-0ubuntu1) ... Selecting previously unselected package libfontconfig1:ppc64el. Preparing to unpack .../030-libfontconfig1_2.12.6-0ubuntu1_ppc64el.deb ... Unpacking libfontconfig1:ppc64el (2.12.6-0ubuntu1) ... Selecting previously unselected package fontconfig. Preparing to unpack .../031-fontconfig_2.12.6-0ubuntu1_ppc64el.deb ... Unpacking fontconfig (2.12.6-0ubuntu1) ... Selecting previously unselected package libjpeg-turbo8:ppc64el. Preparing to unpack .../032-libjpeg-turbo8_1.5.2-0ubuntu5_ppc64el.deb ... Unpacking libjpeg-turbo8:ppc64el (1.5.2-0ubuntu5) ... Selecting previously unselected package libmtdev1:ppc64el. Preparing to unpack .../033-libmtdev1_1.1.5-1ubuntu2_ppc64el.deb ... Unpacking libmtdev1:ppc64el (1.1.5-1ubuntu2) ... Selecting previously unselected package libdouble-conversion1:ppc64el. Preparing to unpack .../034-libdouble-conversion1_2.0.1-4ubuntu1_ppc64el.deb ... Unpacking libdouble-conversion1:ppc64el (2.0.1-4ubuntu1) ... Selecting previously unselected package libqt5core5a:ppc64el. Preparing to unpack .../035-libqt5core5a_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5core5a:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5script5:ppc64el. Preparing to unpack .../036-libqt5script5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5script5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libdrm-common. Preparing to unpack .../037-libdrm-common_2.4.89-1_all.deb ... Unpacking libdrm-common (2.4.89-1) ... Selecting previously unselected package libdrm2:ppc64el. Preparing to unpack .../038-libdrm2_2.4.89-1_ppc64el.deb ... Unpacking libdrm2:ppc64el (2.4.89-1) ... Selecting previously unselected package libwayland-client0:ppc64el. Preparing to unpack .../039-libwayland-client0_1.14.0-1_ppc64el.deb ... Unpacking libwayland-client0:ppc64el (1.14.0-1) ... Selecting previously unselected package libwayland-server0:ppc64el. Preparing to unpack .../040-libwayland-server0_1.14.0-1_ppc64el.deb ... Unpacking libwayland-server0:ppc64el (1.14.0-1) ... Selecting previously unselected package libgbm1:ppc64el. Preparing to unpack .../041-libgbm1_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgbm1:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libboost-system1.65.1:ppc64el. Preparing to unpack .../042-libboost-system1.65.1_1.65.1+dfsg-0ubuntu4_ppc64el.deb ... Unpacking libboost-system1.65.1:ppc64el (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libcapnp-0.6.1. Preparing to unpack .../043-libcapnp-0.6.1_0.6.1-1_ppc64el.deb ... Unpacking libcapnp-0.6.1 (0.6.1-1) ... Selecting previously unselected package libboost-filesystem1.65.1:ppc64el. Preparing to unpack .../044-libboost-filesystem1.65.1_1.65.1+dfsg-0ubuntu4_ppc64el.deb ... Unpacking libboost-filesystem1.65.1:ppc64el (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libmircore1:ppc64el. Preparing to unpack .../045-libmircore1_0.29.0-0ubuntu1_ppc64el.deb ... Unpacking libmircore1:ppc64el (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircommon7:ppc64el. Preparing to unpack .../046-libmircommon7_0.29.0-0ubuntu1_ppc64el.deb ... Unpacking libmircommon7:ppc64el (0.29.0-0ubuntu1) ... Selecting previously unselected package libprotobuf-lite10:ppc64el. Preparing to unpack .../047-libprotobuf-lite10_3.0.0-9ubuntu5_ppc64el.deb ... Unpacking libprotobuf-lite10:ppc64el (3.0.0-9ubuntu5) ... Selecting previously unselected package libmirprotobuf3:ppc64el. Preparing to unpack .../048-libmirprotobuf3_0.29.0-0ubuntu1_ppc64el.deb ... Unpacking libmirprotobuf3:ppc64el (0.29.0-0ubuntu1) ... Selecting previously unselected package xkb-data. Preparing to unpack .../049-xkb-data_2.19-1.1ubuntu1_all.deb ... Unpacking xkb-data (2.19-1.1ubuntu1) ... Selecting previously unselected package libxkbcommon0:ppc64el. Preparing to unpack .../050-libxkbcommon0_0.8.0-1_ppc64el.deb ... Unpacking libxkbcommon0:ppc64el (0.8.0-1) ... Selecting previously unselected package libmirclient9:ppc64el. Preparing to unpack .../051-libmirclient9_0.29.0-0ubuntu1_ppc64el.deb ... Unpacking libmirclient9:ppc64el (0.29.0-0ubuntu1) ... Selecting previously unselected package libx11-xcb1:ppc64el. Preparing to unpack .../052-libx11-xcb1_2%3a1.6.4-3_ppc64el.deb ... Unpacking libx11-xcb1:ppc64el (2:1.6.4-3) ... Selecting previously unselected package libxcb-dri2-0:ppc64el. Preparing to unpack .../053-libxcb-dri2-0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-dri2-0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-0:ppc64el. Preparing to unpack .../054-libxcb-dri3-0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-dri3-0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present0:ppc64el. Preparing to unpack .../055-libxcb-present0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-present0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync1:ppc64el. Preparing to unpack .../056-libxcb-sync1_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-sync1:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0:ppc64el. Preparing to unpack .../057-libxcb-xfixes0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-xfixes0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence1:ppc64el. Preparing to unpack .../058-libxshmfence1_1.2-1_ppc64el.deb ... Unpacking libxshmfence1:ppc64el (1.2-1) ... Selecting previously unselected package libdrm-amdgpu1:ppc64el. Preparing to unpack .../059-libdrm-amdgpu1_2.4.89-1_ppc64el.deb ... Unpacking libdrm-amdgpu1:ppc64el (2.4.89-1) ... Selecting previously unselected package libdrm-nouveau2:ppc64el. Preparing to unpack .../060-libdrm-nouveau2_2.4.89-1_ppc64el.deb ... Unpacking libdrm-nouveau2:ppc64el (2.4.89-1) ... Selecting previously unselected package libdrm-radeon1:ppc64el. Preparing to unpack .../061-libdrm-radeon1_2.4.89-1_ppc64el.deb ... Unpacking libdrm-radeon1:ppc64el (2.4.89-1) ... Selecting previously unselected package libelf1:ppc64el. Preparing to unpack .../062-libelf1_0.170-0.2_ppc64el.deb ... Unpacking libelf1:ppc64el (0.170-0.2) ... Selecting previously unselected package libglapi-mesa:ppc64el. Preparing to unpack .../063-libglapi-mesa_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libglapi-mesa:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libedit2:ppc64el. Preparing to unpack .../064-libedit2_3.1-20170329-1_ppc64el.deb ... Unpacking libedit2:ppc64el (3.1-20170329-1) ... Selecting previously unselected package libllvm5.0:ppc64el. Preparing to unpack .../065-libllvm5.0_1%3a5.0.1-2_ppc64el.deb ... Unpacking libllvm5.0:ppc64el (1:5.0.1-2) ... Selecting previously unselected package libsensors4:ppc64el. Preparing to unpack .../066-libsensors4_1%3a3.4.0-4_ppc64el.deb ... Unpacking libsensors4:ppc64el (1:3.4.0-4) ... Selecting previously unselected package libgl1-mesa-dri:ppc64el. Preparing to unpack .../067-libgl1-mesa-dri_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgl1-mesa-dri:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libegl1-mesa:ppc64el. Preparing to unpack .../068-libegl1-mesa_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libegl1-mesa:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libxcb-glx0:ppc64el. Preparing to unpack .../069-libxcb-glx0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-glx0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxdamage1:ppc64el. Preparing to unpack .../070-libxdamage1_1%3a1.1.4-3_ppc64el.deb ... Unpacking libxdamage1:ppc64el (1:1.1.4-3) ... Selecting previously unselected package libxfixes3:ppc64el. Preparing to unpack .../071-libxfixes3_1%3a5.0.3-1_ppc64el.deb ... Unpacking libxfixes3:ppc64el (1:5.0.3-1) ... Selecting previously unselected package libxxf86vm1:ppc64el. Preparing to unpack .../072-libxxf86vm1_1%3a1.1.4-1_ppc64el.deb ... Unpacking libxxf86vm1:ppc64el (1:1.1.4-1) ... Selecting previously unselected package libgl1-mesa-glx:ppc64el. Preparing to unpack .../073-libgl1-mesa-glx_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgl1-mesa-glx:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package x11-common. Preparing to unpack .../074-x11-common_1%3a7.7+19ubuntu3_all.deb ... Unpacking x11-common (1:7.7+19ubuntu3) ... Selecting previously unselected package libice6:ppc64el. Preparing to unpack .../075-libice6_2%3a1.0.9-2_ppc64el.deb ... Unpacking libice6:ppc64el (2:1.0.9-2) ... Selecting previously unselected package libevdev2:ppc64el. Preparing to unpack .../076-libevdev2_1.5.7+dfsg-1_ppc64el.deb ... Unpacking libevdev2:ppc64el (1.5.7+dfsg-1) ... Selecting previously unselected package libgudev-1.0-0:ppc64el. Preparing to unpack .../077-libgudev-1.0-0_1%3a232-1_ppc64el.deb ... Unpacking libgudev-1.0-0:ppc64el (1:232-1) ... Selecting previously unselected package libwacom-common. Preparing to unpack .../078-libwacom-common_0.26-1_all.deb ... Unpacking libwacom-common (0.26-1) ... Selecting previously unselected package libwacom2:ppc64el. Preparing to unpack .../079-libwacom2_0.26-1_ppc64el.deb ... Unpacking libwacom2:ppc64el (0.26-1) ... Selecting previously unselected package libinput-bin. Preparing to unpack .../080-libinput-bin_1.9.4-2_ppc64el.deb ... Unpacking libinput-bin (1.9.4-2) ... Selecting previously unselected package libinput10:ppc64el. Preparing to unpack .../081-libinput10_1.9.4-2_ppc64el.deb ... Unpacking libinput10:ppc64el (1.9.4-2) ... Selecting previously unselected package libjpeg8:ppc64el. Preparing to unpack .../082-libjpeg8_8c-2ubuntu8_ppc64el.deb ... Unpacking libjpeg8:ppc64el (8c-2ubuntu8) ... Selecting previously unselected package libdbus-1-3:ppc64el. Preparing to unpack .../083-libdbus-1-3_1.12.2-1ubuntu1_ppc64el.deb ... Unpacking libdbus-1-3:ppc64el (1.12.2-1ubuntu1) ... Selecting previously unselected package libqt5dbus5:ppc64el. Preparing to unpack .../084-libqt5dbus5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5dbus5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5network5:ppc64el. Preparing to unpack .../085-libqt5network5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5network5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libsm6:ppc64el. Preparing to unpack .../086-libsm6_2%3a1.2.2-1_ppc64el.deb ... Unpacking libsm6:ppc64el (2:1.2.2-1) ... Selecting previously unselected package libxcb-icccm4:ppc64el. Preparing to unpack .../087-libxcb-icccm4_0.4.1-1ubuntu1_ppc64el.deb ... Unpacking libxcb-icccm4:ppc64el (0.4.1-1ubuntu1) ... Selecting previously unselected package libxcb-shm0:ppc64el. Preparing to unpack .../088-libxcb-shm0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-shm0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-util1:ppc64el. Preparing to unpack .../089-libxcb-util1_0.4.0-0ubuntu3_ppc64el.deb ... Unpacking libxcb-util1:ppc64el (0.4.0-0ubuntu3) ... Selecting previously unselected package libxcb-image0:ppc64el. Preparing to unpack .../090-libxcb-image0_0.4.0-1build1_ppc64el.deb ... Unpacking libxcb-image0:ppc64el (0.4.0-1build1) ... Selecting previously unselected package libxcb-keysyms1:ppc64el. Preparing to unpack .../091-libxcb-keysyms1_0.4.0-1_ppc64el.deb ... Unpacking libxcb-keysyms1:ppc64el (0.4.0-1) ... Selecting previously unselected package libxcb-randr0:ppc64el. Preparing to unpack .../092-libxcb-randr0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-randr0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0:ppc64el. Preparing to unpack .../093-libxcb-render0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-render0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render-util0:ppc64el. Preparing to unpack .../094-libxcb-render-util0_0.3.9-1_ppc64el.deb ... Unpacking libxcb-render-util0:ppc64el (0.3.9-1) ... Selecting previously unselected package libxcb-shape0:ppc64el. Preparing to unpack .../095-libxcb-shape0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-shape0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xinerama0:ppc64el. Preparing to unpack .../096-libxcb-xinerama0_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-xinerama0:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xkb1:ppc64el. Preparing to unpack .../097-libxcb-xkb1_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-xkb1:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxi6:ppc64el. Preparing to unpack .../098-libxi6_2%3a1.7.9-1_ppc64el.deb ... Unpacking libxi6:ppc64el (2:1.7.9-1) ... Selecting previously unselected package libxkbcommon-x11-0:ppc64el. Preparing to unpack .../099-libxkbcommon-x11-0_0.8.0-1_ppc64el.deb ... Unpacking libxkbcommon-x11-0:ppc64el (0.8.0-1) ... Selecting previously unselected package libqt5gui5:ppc64el. Preparing to unpack .../100-libqt5gui5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5gui5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5widgets5:ppc64el. Preparing to unpack .../101-libqt5widgets5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5widgets5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5scripttools5:ppc64el. Preparing to unpack .../102-libqt5scripttools5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5scripttools5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5svg5:ppc64el. Preparing to unpack .../103-libqt5svg5_5.9.3-0ubuntu1_ppc64el.deb ... Unpacking libqt5svg5:ppc64el (5.9.3-0ubuntu1) ... Selecting previously unselected package libpython2.7-minimal:ppc64el. Preparing to unpack .../104-libpython2.7-minimal_2.7.14-4_ppc64el.deb ... Unpacking libpython2.7-minimal:ppc64el (2.7.14-4) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../105-python2.7-minimal_2.7.14-4_ppc64el.deb ... Unpacking python2.7-minimal (2.7.14-4) ... Selecting previously unselected package python-minimal. Preparing to unpack .../106-python-minimal_2.7.14-2ubuntu1_ppc64el.deb ... Unpacking python-minimal (2.7.14-2ubuntu1) ... Selecting previously unselected package libpython2.7-stdlib:ppc64el. Preparing to unpack .../107-libpython2.7-stdlib_2.7.14-4_ppc64el.deb ... Unpacking libpython2.7-stdlib:ppc64el (2.7.14-4) ... Selecting previously unselected package python2.7. Preparing to unpack .../108-python2.7_2.7.14-4_ppc64el.deb ... Unpacking python2.7 (2.7.14-4) ... Selecting previously unselected package libpython-stdlib:ppc64el. Preparing to unpack .../109-libpython-stdlib_2.7.14-2ubuntu1_ppc64el.deb ... Unpacking libpython-stdlib:ppc64el (2.7.14-2ubuntu1) ... Setting up libpython2.7-minimal:ppc64el (2.7.14-4) ... Setting up python2.7-minimal (2.7.14-4) ... Setting up python-minimal (2.7.14-2ubuntu1) ... Selecting previously unselected package python. (Reading database ... 19585 files and directories currently installed.) Preparing to unpack .../000-python_2.7.14-2ubuntu1_ppc64el.deb ... Unpacking python (2.7.14-2ubuntu1) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../001-xorg-sgml-doctools_1%3a1.11-1_all.deb ... Unpacking xorg-sgml-doctools (1:1.11-1) ... Selecting previously unselected package x11proto-core-dev. Preparing to unpack .../002-x11proto-core-dev_7.0.31-1_all.deb ... Unpacking x11proto-core-dev (7.0.31-1) ... Selecting previously unselected package libxau-dev:ppc64el. Preparing to unpack .../003-libxau-dev_1%3a1.0.8-1_ppc64el.deb ... Unpacking libxau-dev:ppc64el (1:1.0.8-1) ... Selecting previously unselected package libxdmcp-dev:ppc64el. Preparing to unpack .../004-libxdmcp-dev_1%3a1.1.2-3_ppc64el.deb ... Unpacking libxdmcp-dev:ppc64el (1:1.1.2-3) ... Selecting previously unselected package x11proto-input-dev. Preparing to unpack .../005-x11proto-input-dev_2.3.2-1_all.deb ... Unpacking x11proto-input-dev (2.3.2-1) ... Selecting previously unselected package x11proto-kb-dev. Preparing to unpack .../006-x11proto-kb-dev_1.0.7-1_all.deb ... Unpacking x11proto-kb-dev (1.0.7-1) ... Selecting previously unselected package xtrans-dev. Preparing to unpack .../007-xtrans-dev_1.3.5-1_all.deb ... Unpacking xtrans-dev (1.3.5-1) ... Selecting previously unselected package libpthread-stubs0-dev:ppc64el. Preparing to unpack .../008-libpthread-stubs0-dev_0.3-4_ppc64el.deb ... Unpacking libpthread-stubs0-dev:ppc64el (0.3-4) ... Selecting previously unselected package libxcb1-dev:ppc64el. Preparing to unpack .../009-libxcb1-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb1-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libx11-dev:ppc64el. Preparing to unpack .../010-libx11-dev_2%3a1.6.4-3_ppc64el.deb ... Unpacking libx11-dev:ppc64el (2:1.6.4-3) ... Selecting previously unselected package libdrm-dev:ppc64el. Preparing to unpack .../011-libdrm-dev_2.4.89-1_ppc64el.deb ... Unpacking libdrm-dev:ppc64el (2.4.89-1) ... Selecting previously unselected package mesa-common-dev:ppc64el. Preparing to unpack .../012-mesa-common-dev_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking mesa-common-dev:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libx11-xcb-dev:ppc64el. Preparing to unpack .../013-libx11-xcb-dev_2%3a1.6.4-3_ppc64el.deb ... Unpacking libx11-xcb-dev:ppc64el (2:1.6.4-3) ... Selecting previously unselected package libxcb-dri3-dev:ppc64el. Preparing to unpack .../014-libxcb-dri3-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-dri3-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0-dev:ppc64el. Preparing to unpack .../015-libxcb-render0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-render0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-randr0-dev:ppc64el. Preparing to unpack .../016-libxcb-randr0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-randr0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-shape0-dev:ppc64el. Preparing to unpack .../017-libxcb-shape0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-shape0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0-dev:ppc64el. Preparing to unpack .../018-libxcb-xfixes0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-xfixes0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync-dev:ppc64el. Preparing to unpack .../019-libxcb-sync-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-sync-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present-dev:ppc64el. Preparing to unpack .../020-libxcb-present-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-present-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence-dev:ppc64el. Preparing to unpack .../021-libxshmfence-dev_1.2-1_ppc64el.deb ... Unpacking libxshmfence-dev:ppc64el (1.2-1) ... Selecting previously unselected package libxcb-dri2-0-dev:ppc64el. Preparing to unpack .../022-libxcb-dri2-0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-dri2-0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-glx0-dev:ppc64el. Preparing to unpack .../023-libxcb-glx0-dev_1.12-1ubuntu1_ppc64el.deb ... Unpacking libxcb-glx0-dev:ppc64el (1.12-1ubuntu1) ... Selecting previously unselected package x11proto-xext-dev. Preparing to unpack .../024-x11proto-xext-dev_7.3.0-1_all.deb ... Unpacking x11proto-xext-dev (7.3.0-1) ... Selecting previously unselected package x11proto-fixes-dev. Preparing to unpack .../025-x11proto-fixes-dev_1%3a5.0-2ubuntu2_all.deb ... Unpacking x11proto-fixes-dev (1:5.0-2ubuntu2) ... Selecting previously unselected package libxfixes-dev:ppc64el. Preparing to unpack .../026-libxfixes-dev_1%3a5.0.3-1_ppc64el.deb ... Unpacking libxfixes-dev:ppc64el (1:5.0.3-1) ... Selecting previously unselected package x11proto-damage-dev. Preparing to unpack .../027-x11proto-damage-dev_1%3a1.2.1-2_all.deb ... Unpacking x11proto-damage-dev (1:1.2.1-2) ... Selecting previously unselected package libxdamage-dev:ppc64el. Preparing to unpack .../028-libxdamage-dev_1%3a1.1.4-3_ppc64el.deb ... Unpacking libxdamage-dev:ppc64el (1:1.1.4-3) ... Selecting previously unselected package libxext-dev:ppc64el. Preparing to unpack .../029-libxext-dev_2%3a1.3.3-1_ppc64el.deb ... Unpacking libxext-dev:ppc64el (2:1.3.3-1) ... Selecting previously unselected package x11proto-xf86vidmode-dev. Preparing to unpack .../030-x11proto-xf86vidmode-dev_2.3.1-2_all.deb ... Unpacking x11proto-xf86vidmode-dev (2.3.1-2) ... Selecting previously unselected package libxxf86vm-dev:ppc64el. Preparing to unpack .../031-libxxf86vm-dev_1%3a1.1.4-1_ppc64el.deb ... Unpacking libxxf86vm-dev:ppc64el (1:1.1.4-1) ... Selecting previously unselected package x11proto-dri2-dev. Preparing to unpack .../032-x11proto-dri2-dev_2.8-2_all.deb ... Unpacking x11proto-dri2-dev (2.8-2) ... Selecting previously unselected package x11proto-gl-dev. Preparing to unpack .../033-x11proto-gl-dev_1.4.17-1_all.deb ... Unpacking x11proto-gl-dev (1.4.17-1) ... Selecting previously unselected package libgl1-mesa-dev:ppc64el. Preparing to unpack .../034-libgl1-mesa-dev_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgl1-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa:ppc64el. Preparing to unpack .../035-libgles2-mesa_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgles2-mesa:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libwayland-egl1-mesa:ppc64el. Preparing to unpack .../036-libwayland-egl1-mesa_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libwayland-egl1-mesa:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libwayland-cursor0:ppc64el. Preparing to unpack .../037-libwayland-cursor0_1.14.0-1_ppc64el.deb ... Unpacking libwayland-cursor0:ppc64el (1.14.0-1) ... Selecting previously unselected package libwayland-bin. Preparing to unpack .../038-libwayland-bin_1.14.0-1_ppc64el.deb ... Unpacking libwayland-bin (1.14.0-1) ... Selecting previously unselected package libwayland-dev:ppc64el. Preparing to unpack .../039-libwayland-dev_1.14.0-1_ppc64el.deb ... Unpacking libwayland-dev:ppc64el (1.14.0-1) ... Selecting previously unselected package libegl1-mesa-dev:ppc64el. Preparing to unpack .../040-libegl1-mesa-dev_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libegl1-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa-dev:ppc64el. Preparing to unpack .../041-libgles2-mesa-dev_17.2.4-0ubuntu2_ppc64el.deb ... Unpacking libgles2-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Selecting previously unselected package libglu1-mesa:ppc64el. Preparing to unpack .../042-libglu1-mesa_9.0.0-2.1build1_ppc64el.deb ... Unpacking libglu1-mesa:ppc64el (9.0.0-2.1build1) ... Selecting previously unselected package libglu1-mesa-dev:ppc64el. Preparing to unpack .../043-libglu1-mesa-dev_9.0.0-2.1build1_ppc64el.deb ... Unpacking libglu1-mesa-dev:ppc64el (9.0.0-2.1build1) ... Selecting previously unselected package libqt5concurrent5:ppc64el. Preparing to unpack .../044-libqt5concurrent5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5concurrent5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libavahi-common-data:ppc64el. Preparing to unpack .../045-libavahi-common-data_0.7-3ubuntu1_ppc64el.deb ... Unpacking libavahi-common-data:ppc64el (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-common3:ppc64el. Preparing to unpack .../046-libavahi-common3_0.7-3ubuntu1_ppc64el.deb ... Unpacking libavahi-common3:ppc64el (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-client3:ppc64el. Preparing to unpack .../047-libavahi-client3_0.7-3ubuntu1_ppc64el.deb ... Unpacking libavahi-client3:ppc64el (0.7-3ubuntu1) ... Selecting previously unselected package libcups2:ppc64el. Preparing to unpack .../048-libcups2_2.2.6-4_ppc64el.deb ... Unpacking libcups2:ppc64el (2.2.6-4) ... Selecting previously unselected package libqt5printsupport5:ppc64el. Preparing to unpack .../049-libqt5printsupport5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5printsupport5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5sql5:ppc64el. Preparing to unpack .../050-libqt5sql5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5sql5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5test5:ppc64el. Preparing to unpack .../051-libqt5test5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5test5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5xml5:ppc64el. Preparing to unpack .../052-libqt5xml5_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking libqt5xml5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qt5-qmake-bin. Preparing to unpack .../053-qt5-qmake-bin_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking qt5-qmake-bin (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtchooser. Preparing to unpack .../054-qtchooser_64-ga1b6736-5_ppc64el.deb ... Unpacking qtchooser (64-ga1b6736-5) ... Selecting previously unselected package qt5-qmake:ppc64el. Preparing to unpack .../055-qt5-qmake_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking qt5-qmake:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev-tools. Preparing to unpack .../056-qtbase5-dev-tools_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev:ppc64el. Preparing to unpack .../057-qtbase5-dev_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking qtbase5-dev:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtscript5-dev:ppc64el. Preparing to unpack .../058-qtscript5-dev_5.9.3+dfsg-0ubuntu1_ppc64el.deb ... Unpacking qtscript5-dev:ppc64el (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package dbus. Preparing to unpack .../059-dbus_1.12.2-1ubuntu1_ppc64el.deb ... Unpacking dbus (1.12.2-1ubuntu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../060-libmagic-mgc_1%3a5.32-1_ppc64el.deb ... Unpacking libmagic-mgc (1:5.32-1) ... Selecting previously unselected package libmagic1:ppc64el. Preparing to unpack .../061-libmagic1_1%3a5.32-1_ppc64el.deb ... Unpacking libmagic1:ppc64el (1:5.32-1) ... Selecting previously unselected package file. Preparing to unpack .../062-file_1%3a5.32-1_ppc64el.deb ... Unpacking file (1:5.32-1) ... Selecting previously unselected package libpam-systemd:ppc64el. Preparing to unpack .../063-libpam-systemd_235-3ubuntu3_ppc64el.deb ... Unpacking libpam-systemd:ppc64el (235-3ubuntu3) ... Selecting previously unselected package netbase. Preparing to unpack .../064-netbase_5.4_all.deb ... Unpacking netbase (5.4) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../065-shared-mime-info_1.9-2_ppc64el.deb ... Unpacking shared-mime-info (1.9-2) ... Selecting previously unselected package gettext-base. Preparing to unpack .../066-gettext-base_0.19.8.1-4ubuntu2_ppc64el.deb ... Unpacking gettext-base (0.19.8.1-4ubuntu2) ... Selecting previously unselected package libpolkit-gobject-1-0:ppc64el. Preparing to unpack .../067-libpolkit-gobject-1-0_0.105-18_ppc64el.deb ... Unpacking libpolkit-gobject-1-0:ppc64el (0.105-18) ... Selecting previously unselected package libsigsegv2:ppc64el. Preparing to unpack .../068-libsigsegv2_2.11-1_ppc64el.deb ... Unpacking libsigsegv2:ppc64el (2.11-1) ... Selecting previously unselected package m4. Preparing to unpack .../069-m4_1.4.18-1_ppc64el.deb ... Unpacking m4 (1.4.18-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../070-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../071-autotools-dev_20171216.1_all.deb ... Unpacking autotools-dev (20171216.1) ... Selecting previously unselected package automake. Preparing to unpack .../072-automake_1%3a1.15.1-3ubuntu1_all.deb ... Unpacking automake (1:1.15.1-3ubuntu1) ... Selecting previously unselected package autopoint. Preparing to unpack .../073-autopoint_0.19.8.1-4ubuntu2_all.deb ... Unpacking autopoint (0.19.8.1-4ubuntu2) ... Selecting previously unselected package libtool. Preparing to unpack .../074-libtool_2.4.6-2_all.deb ... Unpacking libtool (2.4.6-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../075-dh-autoreconf_15_all.deb ... Unpacking dh-autoreconf (15) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../076-libarchive-zip-perl_1.60-1_all.deb ... Unpacking libarchive-zip-perl (1.60-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../077-libfile-stripnondeterminism-perl_0.040-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.040-1) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../078-libtimedate-perl_2.3000-2_all.deb ... Unpacking libtimedate-perl (2.3000-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../079-dh-strip-nondeterminism_0.040-1_all.deb ... Unpacking dh-strip-nondeterminism (0.040-1) ... Selecting previously unselected package libcroco3:ppc64el. Preparing to unpack .../080-libcroco3_0.6.12-2_ppc64el.deb ... Unpacking libcroco3:ppc64el (0.6.12-2) ... Selecting previously unselected package gettext. Preparing to unpack .../081-gettext_0.19.8.1-4ubuntu2_ppc64el.deb ... Unpacking gettext (0.19.8.1-4ubuntu2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../082-intltool-debian_0.35.0+20060710.4_all.deb ... Unpacking intltool-debian (0.35.0+20060710.4) ... Selecting previously unselected package po-debconf. Preparing to unpack .../083-po-debconf_1.0.20_all.deb ... Unpacking po-debconf (1.0.20) ... Selecting previously unselected package debhelper. Preparing to unpack .../084-debhelper_11ubuntu1_all.deb ... Unpacking debhelper (11ubuntu1) ... Selecting previously unselected package diffstat. Preparing to unpack .../085-diffstat_1.61-1build1_ppc64el.deb ... Unpacking diffstat (1.61-1build1) ... Selecting previously unselected package extra-cmake-modules. Preparing to unpack .../086-extra-cmake-modules_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking extra-cmake-modules (5.41.0-0ubuntu1) ... Selecting previously unselected package libapt-pkg-perl. Preparing to unpack .../087-libapt-pkg-perl_0.1.33build1_ppc64el.deb ... Unpacking libapt-pkg-perl (0.1.33build1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../088-libhtml-tagset-perl_3.20-3_all.deb ... Unpacking libhtml-tagset-perl (3.20-3) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../089-liburi-perl_1.72-2_all.deb ... Unpacking liburi-perl (1.72-2) ... Selecting previously unselected package libhtml-parser-perl. Preparing to unpack .../090-libhtml-parser-perl_3.72-3build1_ppc64el.deb ... Unpacking libhtml-parser-perl (3.72-3build1) ... Selecting previously unselected package libcgi-pm-perl. Preparing to unpack .../091-libcgi-pm-perl_4.38-1_all.deb ... Unpacking libcgi-pm-perl (4.38-1) ... Selecting previously unselected package libsub-name-perl. Preparing to unpack .../092-libsub-name-perl_0.21-1build1_ppc64el.deb ... Unpacking libsub-name-perl (0.21-1build1) ... Selecting previously unselected package libclass-accessor-perl. Preparing to unpack .../093-libclass-accessor-perl_0.51-1_all.deb ... Unpacking libclass-accessor-perl (0.51-1) ... Selecting previously unselected package libclone-perl. Preparing to unpack .../094-libclone-perl_0.39-1_ppc64el.deb ... Unpacking libclone-perl (0.39-1) ... Selecting previously unselected package libdigest-hmac-perl. Preparing to unpack .../095-libdigest-hmac-perl_1.03+dfsg-1_all.deb ... Unpacking libdigest-hmac-perl (1.03+dfsg-1) ... Selecting previously unselected package perl-openssl-defaults:ppc64el. Preparing to unpack .../096-perl-openssl-defaults_3_ppc64el.deb ... Unpacking perl-openssl-defaults:ppc64el (3) ... Selecting previously unselected package libnet-ssleay-perl. Preparing to unpack .../097-libnet-ssleay-perl_1.82-1_ppc64el.deb ... Unpacking libnet-ssleay-perl (1.82-1) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../098-libio-socket-ssl-perl_2.052-1_all.deb ... Unpacking libio-socket-ssl-perl (2.052-1) ... Selecting previously unselected package libnet-smtp-ssl-perl. Preparing to unpack .../099-libnet-smtp-ssl-perl_1.04-1_all.deb ... Unpacking libnet-smtp-ssl-perl (1.04-1) ... Selecting previously unselected package libmailtools-perl. Preparing to unpack .../100-libmailtools-perl_2.18-1_all.deb ... Unpacking libmailtools-perl (2.18-1) ... Selecting previously unselected package libsocket6-perl. Preparing to unpack .../101-libsocket6-perl_0.27-1build2_ppc64el.deb ... Unpacking libsocket6-perl (0.27-1build2) ... Selecting previously unselected package libio-socket-inet6-perl. Preparing to unpack .../102-libio-socket-inet6-perl_2.72-2_all.deb ... Unpacking libio-socket-inet6-perl (2.72-2) ... Selecting previously unselected package libnet-ip-perl. Preparing to unpack .../103-libnet-ip-perl_1.26-1_all.deb ... Unpacking libnet-ip-perl (1.26-1) ... Selecting previously unselected package libnet-dns-perl. Preparing to unpack .../104-libnet-dns-perl_1.10-2_all.deb ... Unpacking libnet-dns-perl (1.10-2) ... Selecting previously unselected package libnet-domain-tld-perl. Preparing to unpack .../105-libnet-domain-tld-perl_1.75-1_all.deb ... Unpacking libnet-domain-tld-perl (1.75-1) ... Selecting previously unselected package libemail-valid-perl. Preparing to unpack .../106-libemail-valid-perl_1.202-1_all.deb ... Unpacking libemail-valid-perl (1.202-1) ... Selecting previously unselected package libexporter-tiny-perl. Preparing to unpack .../107-libexporter-tiny-perl_1.000000-2_all.deb ... Unpacking libexporter-tiny-perl (1.000000-2) ... Selecting previously unselected package libfam0:ppc64el. Preparing to unpack .../108-libfam0_2.7.0-17.2_ppc64el.deb ... Unpacking libfam0:ppc64el (2.7.0-17.2) ... Selecting previously unselected package libipc-system-simple-perl. Preparing to unpack .../109-libipc-system-simple-perl_1.25-3_all.deb ... Unpacking libipc-system-simple-perl (1.25-3) ... Selecting previously unselected package libfile-basedir-perl. Preparing to unpack .../110-libfile-basedir-perl_0.07-1_all.deb ... Unpacking libfile-basedir-perl (0.07-1) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../111-libio-pty-perl_1%3a1.08-1.1build4_ppc64el.deb ... Unpacking libio-pty-perl (1:1.08-1.1build4) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../112-libio-string-perl_1.08-3_all.deb ... Unpacking libio-string-perl (1.08-3) ... Selecting previously unselected package libipc-run-perl. Preparing to unpack .../113-libipc-run-perl_0.96-1_all.deb ... Unpacking libipc-run-perl (0.96-1) ... Selecting previously unselected package libkf5archive5:ppc64el. Preparing to unpack .../114-libkf5archive5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5archive5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5auth-bin-dev:ppc64el. Preparing to unpack .../115-libkf5auth-bin-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5auth-bin-dev:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5auth-data. Preparing to unpack .../116-libkf5auth-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5auth-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5coreaddons-data. Preparing to unpack .../117-libkf5coreaddons-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5coreaddons-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5coreaddons5:ppc64el. Preparing to unpack .../118-libkf5coreaddons5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5coreaddons5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libpolkit-agent-1-0:ppc64el. Preparing to unpack .../119-libpolkit-agent-1-0_0.105-18_ppc64el.deb ... Unpacking libpolkit-agent-1-0:ppc64el (0.105-18) ... Selecting previously unselected package libpolkit-qt5-1-1:ppc64el. Preparing to unpack .../120-libpolkit-qt5-1-1_0.112.0-5_ppc64el.deb ... Unpacking libpolkit-qt5-1-1:ppc64el (0.112.0-5) ... Selecting previously unselected package libkf5auth5:ppc64el. Preparing to unpack .../121-libkf5auth5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5auth5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5coreaddons-bin-dev. Preparing to unpack .../122-libkf5coreaddons-bin-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5coreaddons-bin-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5coreaddons-dev:ppc64el. Preparing to unpack .../123-libkf5coreaddons-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5coreaddons-dev:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5auth-dev:ppc64el. Preparing to unpack .../124-libkf5auth-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5auth-dev:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5codecs-data. Preparing to unpack .../125-libkf5codecs-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5codecs-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5codecs5:ppc64el. Preparing to unpack .../126-libkf5codecs5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5codecs5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5codecs-dev. Preparing to unpack .../127-libkf5codecs-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5codecs-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5completion-data. Preparing to unpack .../128-libkf5completion-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5completion-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5config-data. Preparing to unpack .../129-libkf5config-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5config-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5configcore5:ppc64el. Preparing to unpack .../130-libkf5configcore5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5configcore5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5configgui5:ppc64el. Preparing to unpack .../131-libkf5configgui5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5configgui5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5widgetsaddons-data. Preparing to unpack .../132-libkf5widgetsaddons-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5widgetsaddons-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5widgetsaddons5:ppc64el. Preparing to unpack .../133-libkf5widgetsaddons5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5widgetsaddons5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5completion5:ppc64el. Preparing to unpack .../134-libkf5completion5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5completion5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5config-bin. Preparing to unpack .../135-libkf5config-bin_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5config-bin (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5config-bin-dev:ppc64el. Preparing to unpack .../136-libkf5config-bin-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5config-bin-dev:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5config-dev:ppc64el. Preparing to unpack .../137-libkf5config-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5config-dev:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5widgetsaddons-dev. Preparing to unpack .../138-libkf5widgetsaddons-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5widgetsaddons-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5completion-dev. Preparing to unpack .../139-libkf5completion-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5completion-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5configwidgets-data. Preparing to unpack .../140-libkf5configwidgets-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5configwidgets-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libqt5x11extras5:ppc64el. Preparing to unpack .../141-libqt5x11extras5_5.9.3-0ubuntu1_ppc64el.deb ... Unpacking libqt5x11extras5:ppc64el (5.9.3-0ubuntu1) ... Selecting previously unselected package libkf5guiaddons5:ppc64el. Preparing to unpack .../142-libkf5guiaddons5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5guiaddons5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5i18n-data. Preparing to unpack .../143-libkf5i18n-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5i18n-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5i18n5:ppc64el. Preparing to unpack .../144-libkf5i18n5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5i18n5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5configwidgets5:ppc64el. Preparing to unpack .../145-libkf5configwidgets5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5configwidgets5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5guiaddons-dev. Preparing to unpack .../146-libkf5guiaddons-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5guiaddons-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5i18n-dev. Preparing to unpack .../147-libkf5i18n-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5i18n-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5configwidgets-dev. Preparing to unpack .../148-libkf5configwidgets-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5configwidgets-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5windowsystem-data. Preparing to unpack .../149-libkf5windowsystem-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5windowsystem-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5windowsystem5:ppc64el. Preparing to unpack .../150-libkf5windowsystem5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5windowsystem5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5crash5:ppc64el. Preparing to unpack .../151-libkf5crash5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5crash5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5dbusaddons-data. Preparing to unpack .../152-libkf5dbusaddons-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5dbusaddons-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5dbusaddons5:ppc64el. Preparing to unpack .../153-libkf5dbusaddons5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5dbusaddons5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5dbusaddons-dev. Preparing to unpack .../154-libkf5dbusaddons-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5dbusaddons-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5iconthemes-data. Preparing to unpack .../155-libkf5iconthemes-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5iconthemes-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5itemviews-data. Preparing to unpack .../156-libkf5itemviews-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5itemviews-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5itemviews5:ppc64el. Preparing to unpack .../157-libkf5itemviews5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5itemviews5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5iconthemes5:ppc64el. Preparing to unpack .../158-libkf5iconthemes5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5iconthemes5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5itemviews-dev. Preparing to unpack .../159-libkf5itemviews-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5itemviews-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5iconthemes-dev. Preparing to unpack .../160-libkf5iconthemes-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5iconthemes-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5service-data. Preparing to unpack .../161-libkf5service-data_5.41.0-0ubuntu2_all.deb ... Unpacking libkf5service-data (5.41.0-0ubuntu2) ... Selecting previously unselected package libkf5service5:ppc64el. Preparing to unpack .../162-libkf5service5_5.41.0-0ubuntu2_ppc64el.deb ... Unpacking libkf5service5:ppc64el (5.41.0-0ubuntu2) ... Selecting previously unselected package libkf5service-bin. Preparing to unpack .../163-libkf5service-bin_5.41.0-0ubuntu2_ppc64el.deb ... Unpacking libkf5service-bin (5.41.0-0ubuntu2) ... Selecting previously unselected package libkf5service-dev. Preparing to unpack .../164-libkf5service-dev_5.41.0-0ubuntu2_ppc64el.deb ... Unpacking libkf5service-dev (5.41.0-0ubuntu2) ... Selecting previously unselected package libkf5sonnet-dev-bin. Preparing to unpack .../165-libkf5sonnet-dev-bin_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5sonnet-dev-bin (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5sonnet5-data. Preparing to unpack .../166-libkf5sonnet5-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5sonnet5-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5sonnetcore5:ppc64el. Preparing to unpack .../167-libkf5sonnetcore5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5sonnetcore5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5sonnetui5:ppc64el. Preparing to unpack .../168-libkf5sonnetui5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5sonnetui5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5sonnet-dev. Preparing to unpack .../169-libkf5sonnet-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5sonnet-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5textwidgets-data. Preparing to unpack .../170-libkf5textwidgets-data_5.41.0-0ubuntu1_all.deb ... Unpacking libkf5textwidgets-data (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5textwidgets5:ppc64el. Preparing to unpack .../171-libkf5textwidgets5_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5textwidgets5:ppc64el (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5windowsystem-dev. Preparing to unpack .../172-libkf5windowsystem-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5windowsystem-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package libkf5textwidgets-dev. Preparing to unpack .../173-libkf5textwidgets-dev_5.41.0-0ubuntu1_ppc64el.deb ... Unpacking libkf5textwidgets-dev (5.41.0-0ubuntu1) ... Selecting previously unselected package liblist-moreutils-perl. Preparing to unpack .../174-liblist-moreutils-perl_0.416-1build3_ppc64el.deb ... Unpacking liblist-moreutils-perl (0.416-1build3) ... Selecting previously unselected package libparse-debianchangelog-perl. Preparing to unpack .../175-libparse-debianchangelog-perl_1.2.0-12_all.deb ... Unpacking libparse-debianchangelog-perl (1.2.0-12) ... Selecting previously unselected package libtext-levenshtein-perl. Preparing to unpack .../176-libtext-levenshtein-perl_0.13-1_all.deb ... Unpacking libtext-levenshtein-perl (0.13-1) ... Selecting previously unselected package libxml-namespacesupport-perl. Preparing to unpack .../177-libxml-namespacesupport-perl_1.12-1_all.deb ... Unpacking libxml-namespacesupport-perl (1.12-1) ... Selecting previously unselected package libxml-sax-base-perl. Preparing to unpack .../178-libxml-sax-base-perl_1.09-1_all.deb ... Unpacking libxml-sax-base-perl (1.09-1) ... Selecting previously unselected package libxml-sax-perl. Preparing to unpack .../179-libxml-sax-perl_0.99+dfsg-2ubuntu1_all.deb ... Unpacking libxml-sax-perl (0.99+dfsg-2ubuntu1) ... Selecting previously unselected package libxml-libxml-perl. Preparing to unpack .../180-libxml-libxml-perl_2.0128+dfsg-5_ppc64el.deb ... Unpacking libxml-libxml-perl (2.0128+dfsg-5) ... Selecting previously unselected package libxml-simple-perl. Preparing to unpack .../181-libxml-simple-perl_2.24-1_all.deb ... Unpacking libxml-simple-perl (2.24-1) ... Selecting previously unselected package libyaml-libyaml-perl. Preparing to unpack .../182-libyaml-libyaml-perl_0.63-2build1_ppc64el.deb ... Unpacking libyaml-libyaml-perl (0.63-2build1) ... Selecting previously unselected package patchutils. Preparing to unpack .../183-patchutils_0.3.4-2_ppc64el.deb ... Unpacking patchutils (0.3.4-2) ... Selecting previously unselected package t1utils. Preparing to unpack .../184-t1utils_1.41-2_ppc64el.deb ... Unpacking t1utils (1.41-2) ... Selecting previously unselected package lintian. Preparing to unpack .../185-lintian_2.5.62_all.deb ... Unpacking lintian (2.5.62) ... Selecting previously unselected package pkg-kde-tools. Preparing to unpack .../186-pkg-kde-tools_0.15.28ubuntu1_all.deb ... Unpacking pkg-kde-tools (0.15.28ubuntu1) ... Selecting previously unselected package sbuild-build-depends-debconf-kde-dummy. Preparing to unpack .../187-sbuild-build-depends-debconf-kde-dummy_0.invalid.0_ppc64el.deb ... Unpacking sbuild-build-depends-debconf-kde-dummy (0.invalid.0) ... Setting up libhtml-tagset-perl (3.20-3) ... Setting up libedit2:ppc64el (3.1-20170329-1) ... Setting up libnet-domain-tld-perl (1.75-1) ... Setting up libkf5config-data (5.41.0-0ubuntu1) ... Setting up x11proto-dri2-dev (2.8-2) ... Setting up libkf5i18n-data (5.41.0-0ubuntu1) ... Setting up libfam0:ppc64el (2.7.0-17.2) ... Setting up libkf5textwidgets-data (5.41.0-0ubuntu1) ... Setting up extra-cmake-modules (5.41.0-0ubuntu1) ... Setting up libapt-pkg-perl (0.1.33build1) ... Setting up libarchive-zip-perl (1.60-1) ... Setting up libwacom-common (0.26-1) ... Setting up libdouble-conversion1:ppc64el (2.0.1-4ubuntu1) ... Setting up mime-support (3.60ubuntu1) ... Setting up libxml-namespacesupport-perl (1.12-1) ... Setting up libio-pty-perl (1:1.08-1.1build4) ... Setting up qt5-qmake-bin (5.9.3+dfsg-0ubuntu1) ... Setting up libevdev2:ppc64el (1.5.7+dfsg-1) ... Setting up libtext-levenshtein-perl (0.13-1) ... Setting up libtimedate-perl (2.3000-2) ... Setting up libnet-ip-perl (1.26-1) ... Setting up libsigsegv2:ppc64el (2.11-1) ... Setting up libpthread-stubs0-dev:ppc64el (0.3-4) ... Setting up libcurl3:ppc64el (7.57.0-1ubuntu1) ... Setting up fonts-dejavu-core (2.37-1) ... Setting up libuv1:ppc64el (1.18.0-3) ... Setting up perl-openssl-defaults:ppc64el (3) ... Setting up libipc-system-simple-perl (1.25-3) ... Setting up libfile-basedir-perl (0.07-1) ... Setting up libelf1:ppc64el (0.170-0.2) ... Setting up groff-base (1.22.3-9) ... Setting up libglib2.0-0:ppc64el (2.54.1-1ubuntu1) ... No schema files found: doing nothing. Setting up libxshmfence1:ppc64el (1.2-1) ... Setting up xorg-sgml-doctools (1:1.11-1) ... Setting up libexporter-tiny-perl (1.000000-2) ... Setting up libwayland-client0:ppc64el (1.14.0-1) ... Setting up xkb-data (2.19-1.1ubuntu1) ... Setting up qtchooser (64-ga1b6736-5) ... Setting up libkf5configwidgets-data (5.41.0-0ubuntu1) ... Setting up libllvm5.0:ppc64el (1:5.0.1-2) ... Setting up libkf5completion-data (5.41.0-0ubuntu1) ... Setting up x11proto-xf86vidmode-dev (2.3.1-2) ... Setting up gettext-base (0.19.8.1-4ubuntu2) ... Setting up cmake-data (3.9.5-1) ... Setting up libkf5auth-data (5.41.0-0ubuntu1) ... Setting up libjpeg-turbo8:ppc64el (1.5.2-0ubuntu5) ... Setting up libpipeline1:ppc64el (1.5.0-1) ... Setting up x11proto-kb-dev (1.0.7-1) ... Setting up libglapi-mesa:ppc64el (17.2.4-0ubuntu2) ... Setting up m4 (1.4.18-1) ... Setting up libbsd0:ppc64el (0.8.6-3) ... Setting up ucf (3.0036) ... Setting up libfreetype6:ppc64el (2.8-0.2ubuntu2) ... Setting up libmagic-mgc (1:5.32-1) ... Setting up libkf5codecs-data (5.41.0-0ubuntu1) ... Setting up libmagic1:ppc64el (1:5.32-1) ... Setting up libdrm-common (2.4.89-1) ... Setting up libgraphite2-3:ppc64el (1.3.10-8) ... Setting up librhash0 (1.3.4-3) ... Setting up libkf5widgetsaddons-data (5.41.0-0ubuntu1) ... Setting up libboost-system1.65.1:ppc64el (1.65.1+dfsg-0ubuntu4) ... Setting up libxml-sax-base-perl (1.09-1) ... Setting up libx11-xcb1:ppc64el (2:1.6.4-3) ... Setting up xtrans-dev (1.3.5-1) ... Setting up qt5-qmake:ppc64el (5.9.3+dfsg-0ubuntu1) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Setting up libsocket6-perl (0.27-1build2) ... Setting up patchutils (0.3.4-2) ... Setting up autotools-dev (20171216.1) ... Setting up libkf5service-data (5.41.0-0ubuntu2) ... Setting up liburi-perl (1.72-2) ... Setting up t1utils (1.41-2) ... Setting up x11proto-gl-dev (1.4.17-1) ... Processing triggers for systemd (235-3ubuntu3) ... Setting up libhtml-parser-perl (3.72-3build1) ... Setting up libmtdev1:ppc64el (1.1.5-1ubuntu2) ... Setting up libipc-run-perl (0.96-1) ... Setting up libcapnp-0.6.1 (0.6.1-1) ... Setting up libkf5dbusaddons-data (5.41.0-0ubuntu1) ... Setting up libcgi-pm-perl (4.38-1) ... Setting up libdigest-hmac-perl (1.03+dfsg-1) ... Setting up libio-string-perl (1.08-3) ... Setting up liblocale-gettext-perl (1.07-3build2) ... Setting up libclone-perl (0.39-1) ... Setting up libsensors4:ppc64el (1:3.4.0-4) ... Setting up libxkbcommon0:ppc64el (0.8.0-1) ... Setting up libgudev-1.0-0:ppc64el (1:232-1) ... Setting up libkf5windowsystem-data (5.41.0-0ubuntu1) ... Setting up libxdmcp6:ppc64el (1:1.1.2-3) ... Setting up bsdmainutils (9.0.14ubuntu1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up libmircore1:ppc64el (0.29.0-0ubuntu1) ... Setting up x11-common (1:7.7+19ubuntu3) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up libsub-name-perl (0.21-1build1) ... Setting up libkf5sonnet5-data (5.41.0-0ubuntu1) ... Setting up libprotobuf-lite10:ppc64el (3.0.0-9ubuntu5) ... Setting up libyaml-libyaml-perl (0.63-2build1) ... Setting up libkf5itemviews-data (5.41.0-0ubuntu1) ... Setting up libgles2-mesa:ppc64el (17.2.4-0ubuntu2) ... Setting up libwayland-cursor0:ppc64el (1.14.0-1) ... Setting up libkf5iconthemes-data (5.41.0-0ubuntu1) ... Setting up libx11-data (2:1.6.4-3) ... Setting up libpython2.7-stdlib:ppc64el (2.7.14-4) ... Setting up diffstat (1.61-1build1) ... Setting up libxau6:ppc64el (1:1.0.8-1) ... Setting up autopoint (0.19.8.1-4ubuntu2) ... Setting up libmpdec2:ppc64el (2.4.2-1) ... Setting up libclass-accessor-perl (0.51-1) ... Setting up libpolkit-gobject-1-0:ppc64el (0.105-18) ... Setting up libdbus-1-3:ppc64el (1.12.2-1ubuntu1) ... Setting up liblzo2-2:ppc64el (2.08-1.2) ... Setting up libavahi-common-data:ppc64el (0.7-3ubuntu1) ... Setting up libkf5coreaddons-data (5.41.0-0ubuntu1) ... Setting up libwayland-server0:ppc64el (1.14.0-1) ... Setting up netbase (5.4) ... Setting up libfile-stripnondeterminism-perl (0.040-1) ... Setting up libxml-sax-perl (0.99+dfsg-2ubuntu1) ... update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::PurePerl with priority 10... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Creating config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up libjpeg8:ppc64el (8c-2ubuntu8) ... Setting up libjsoncpp1:ppc64el (1.7.4-3) ... Setting up liblist-moreutils-perl (0.416-1build3) ... Setting up libpython3.6-stdlib:ppc64el (3.6.4-2) ... Setting up fontconfig-config (2.12.6-0ubuntu1) ... Setting up x11proto-core-dev (7.0.31-1) ... Setting up libwacom2:ppc64el (0.26-1) ... Setting up libio-socket-inet6-perl (2.72-2) ... Setting up libxshmfence-dev:ppc64el (1.2-1) ... Setting up libnet-ssleay-perl (1.82-1) ... Setting up libpolkit-agent-1-0:ppc64el (0.105-18) ... Setting up libmirprotobuf3:ppc64el (0.29.0-0ubuntu1) ... Setting up libboost-filesystem1.65.1:ppc64el (1.65.1+dfsg-0ubuntu4) ... Setting up python2.7 (2.7.14-4) ... Setting up libharfbuzz0b:ppc64el (1.7.2-1) ... Setting up libxau-dev:ppc64el (1:1.0.8-1) ... Setting up autoconf (2.69-11) ... Setting up libnet-dns-perl (1.10-2) ... Setting up file (1:5.32-1) ... Setting up libinput-bin (1.9.4-2) ... Setting up libio-socket-ssl-perl (2.052-1) ... Setting up libdrm2:ppc64el (2.4.89-1) ... Setting up libpython-stdlib:ppc64el (2.7.14-2ubuntu1) ... Setting up libxdmcp-dev:ppc64el (1:1.1.2-3) ... Setting up automake (1:1.15.1-3ubuntu1) ... update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode Setting up libice6:ppc64el (2:1.0.9-2) ... Setting up libparse-debianchangelog-perl (1.2.0-12) ... Setting up man-db (2.7.6.1-4) ... Not building database; man-db/auto-update is not 'true'. Setting up libmircommon7:ppc64el (0.29.0-0ubuntu1) ... Setting up libavahi-common3:ppc64el (0.7-3ubuntu1) ... Setting up libdrm-radeon1:ppc64el (2.4.89-1) ... Setting up dbus (1.12.2-1ubuntu1) ... Setting up libdrm-nouveau2:ppc64el (2.4.89-1) ... Setting up libxcb1:ppc64el (1.12-1ubuntu1) ... Setting up x11proto-input-dev (2.3.2-1) ... Setting up python (2.7.14-2ubuntu1) ... Setting up libxcb-xkb1:ppc64el (1.12-1ubuntu1) ... Setting up libtool (2.4.6-2) ... Setting up libxcb-xinerama0:ppc64el (1.12-1ubuntu1) ... Setting up libpython3-stdlib:ppc64el (3.6.3-0ubuntu2) ... Setting up libxcb-present0:ppc64el (1.12-1ubuntu1) ... Setting up libfontconfig1:ppc64el (2.12.6-0ubuntu1) ... Setting up libxcb-dri2-0:ppc64el (1.12-1ubuntu1) ... Setting up libsm6:ppc64el (2:1.2.2-1) ... Setting up libxcb-dri3-0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-glx0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-randr0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-xfixes0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-icccm4:ppc64el (0.4.1-1ubuntu1) ... Setting up libxcb-render0:ppc64el (1.12-1ubuntu1) ... Setting up libnet-smtp-ssl-perl (1.04-1) ... Setting up libpam-systemd:ppc64el (235-3ubuntu3) ... Setting up libdrm-amdgpu1:ppc64el (2.4.89-1) ... Setting up libdrm-dev:ppc64el (2.4.89-1) ... Setting up libgbm1:ppc64el (17.2.4-0ubuntu2) ... Setting up libx11-6:ppc64el (2:1.6.4-3) ... Setting up libinput10:ppc64el (1.9.4-2) ... Setting up libgl1-mesa-dri:ppc64el (17.2.4-0ubuntu2) ... Setting up libmirclient9:ppc64el (0.29.0-0ubuntu1) ... Setting up libxcb-util1:ppc64el (0.4.0-0ubuntu3) ... Setting up libxkbcommon-x11-0:ppc64el (0.8.0-1) ... Setting up libxcb-sync1:ppc64el (1.12-1ubuntu1) ... Setting up x11proto-xext-dev (7.3.0-1) ... Setting up libxcb-shm0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-shape0:ppc64el (1.12-1ubuntu1) ... Setting up libxcb1-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-glx0-dev:ppc64el (1.12-1ubuntu1) ... Setting up libavahi-client3:ppc64el (0.7-3ubuntu1) ... Setting up libxcb-keysyms1:ppc64el (0.4.0-1) ... Setting up libx11-dev:ppc64el (2:1.6.4-3) ... Setting up libxcb-sync-dev:ppc64el (1.12-1ubuntu1) ... Setting up fontconfig (2.12.6-0ubuntu1) ... Regenerating fonts cache... done. Setting up libcups2:ppc64el (2.2.6-4) ... Setting up libegl1-mesa:ppc64el (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/powerpc64le-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/powerpc64le-linux-gnu_EGL.conf (powerpc64le-linux-gnu_egl_conf) in auto mode Setting up libx11-xcb-dev:ppc64el (2:1.6.4-3) ... Setting up libxcb-render-util0:ppc64el (0.3.9-1) ... Setting up libmailtools-perl (2.18-1) ... Setting up libemail-valid-perl (1.202-1) ... Setting up libxdamage1:ppc64el (1:1.1.4-3) ... Setting up libxcb-image0:ppc64el (0.4.0-1build1) ... Setting up mesa-common-dev:ppc64el (17.2.4-0ubuntu2) ... Setting up libxext6:ppc64el (2:1.3.3-1) ... Setting up libxfixes3:ppc64el (1:5.0.3-1) ... Setting up x11proto-fixes-dev (1:5.0-2ubuntu2) ... Setting up libxcb-dri2-0-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-render0-dev:ppc64el (1.12-1ubuntu1) ... Setting up x11proto-damage-dev (1:1.2.1-2) ... Setting up libxcb-dri3-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxext-dev:ppc64el (2:1.3.3-1) ... Setting up libwayland-egl1-mesa:ppc64el (17.2.4-0ubuntu2) ... Setting up libxcb-shape0-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxxf86vm1:ppc64el (1:1.1.4-1) ... Setting up libxxf86vm-dev:ppc64el (1:1.1.4-1) ... Setting up libxfixes-dev:ppc64el (1:5.0.3-1) ... Setting up libxi6:ppc64el (2:1.7.9-1) ... Setting up libxcb-randr0-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxcb-xfixes0-dev:ppc64el (1.12-1ubuntu1) ... Setting up libxdamage-dev:ppc64el (1:1.1.4-3) ... Setting up libgl1-mesa-glx:ppc64el (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/powerpc64le-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/powerpc64le-linux-gnu_GL.conf (powerpc64le-linux-gnu_gl_conf) in auto mode Setting up libglu1-mesa:ppc64el (9.0.0-2.1build1) ... Setting up libxcb-present-dev:ppc64el (1.12-1ubuntu1) ... Setting up libgl1-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Setting up libglu1-mesa-dev:ppc64el (9.0.0-2.1build1) ... Setting up python3.6 (3.6.4-2) ... Setting up python3 (3.6.3-0ubuntu2) ... Setting up libicu-le-hb0:ppc64el (1.0.3+git161113-4) ... Setting up python3.6-2to3 (3.6.4-2) ... python3.6: can't get files for byte-compilation Setting up dh-strip-nondeterminism (0.040-1) ... Setting up dh-python (2.20170125) ... Setting up python3-distutils (3.6.4~rc1-6) ... Setting up libicu60:ppc64el (60.2-1ubuntu1) ... Setting up libxml2:ppc64el (2.9.4+dfsg1-5.2ubuntu1) ... Setting up libcroco3:ppc64el (0.6.12-2) ... Setting up shared-mime-info (1.9-2) ... Setting up libxml-libxml-perl (2.0128+dfsg-5) ... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX::Parser with priority 50... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX with priority 50... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up libqt5core5a:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libwayland-bin (1.14.0-1) ... Setting up libqt5script5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5archive5:ppc64el (5.41.0-0ubuntu1) ... Setting up libqt5dbus5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5network5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up gettext (0.19.8.1-4ubuntu2) ... Setting up libarchive13:ppc64el (3.2.2-3.1) ... Setting up libkf5i18n5:ppc64el (5.41.0-0ubuntu1) ... Setting up libqt5test5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5configcore5:ppc64el (5.41.0-0ubuntu1) ... Setting up intltool-debian (0.35.0+20060710.4) ... Setting up libxml-simple-perl (2.24-1) ... Setting up libkf5sonnetcore5:ppc64el (5.41.0-0ubuntu1) ... Setting up libqt5xml5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5gui5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5sonnet-dev-bin (5.41.0-0ubuntu1) ... Setting up libqt5sql5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up lintian (2.5.62) ... Setting up libkf5config-bin-dev:ppc64el (5.41.0-0ubuntu1) ... Setting up libwayland-dev:ppc64el (1.14.0-1) ... Setting up cmake (3.9.5-1) ... Setting up libqt5concurrent5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5codecs5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5coreaddons5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5auth-bin-dev:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5coreaddons-bin-dev (5.41.0-0ubuntu1) ... Setting up pkg-kde-tools (0.15.28ubuntu1) ... Setting up qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5x11extras5:ppc64el (5.9.3-0ubuntu1) ... Setting up libqt5widgets5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up po-debconf (1.0.20) ... Setting up libkf5config-bin (5.41.0-0ubuntu1) ... Setting up libkf5configgui5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5windowsystem5:ppc64el (5.41.0-0ubuntu1) ... Setting up libpolkit-qt5-1-1:ppc64el (0.112.0-5) ... Setting up libkf5auth5:ppc64el (5.41.0-0ubuntu1) ... Setting up libqt5printsupport5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5scripttools5:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5itemviews5:ppc64el (5.41.0-0ubuntu1) ... Setting up libqt5svg5:ppc64el (5.9.3-0ubuntu1) ... Setting up libegl1-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Setting up libkf5sonnetui5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5widgetsaddons5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5guiaddons5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5dbusaddons5:ppc64el (5.41.0-0ubuntu1) ... Setting up debhelper (11ubuntu1) ... Setting up libkf5configwidgets5:ppc64el (5.41.0-0ubuntu1) ... Setting up dh-autoreconf (15) ... Setting up libkf5crash5:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5completion5:ppc64el (5.41.0-0ubuntu1) ... Setting up libgles2-mesa-dev:ppc64el (17.2.4-0ubuntu2) ... Setting up libkf5service5:ppc64el (5.41.0-0ubuntu2) ... Setting up libkf5iconthemes5:ppc64el (5.41.0-0ubuntu1) ... Setting up qtbase5-dev:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5dbusaddons-dev (5.41.0-0ubuntu1) ... Setting up libkf5coreaddons-dev:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5windowsystem-dev (5.41.0-0ubuntu1) ... Setting up libkf5service-bin (5.41.0-0ubuntu2) ... Setting up libkf5guiaddons-dev (5.41.0-0ubuntu1) ... Setting up libkf5textwidgets5:ppc64el (5.41.0-0ubuntu1) ... Setting up qtscript5-dev:ppc64el (5.9.3+dfsg-0ubuntu1) ... Setting up libkf5widgetsaddons-dev (5.41.0-0ubuntu1) ... Setting up libkf5sonnet-dev (5.41.0-0ubuntu1) ... Setting up libkf5itemviews-dev (5.41.0-0ubuntu1) ... Setting up libkf5auth-dev:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5config-dev:ppc64el (5.41.0-0ubuntu1) ... Setting up libkf5completion-dev (5.41.0-0ubuntu1) ... Setting up libkf5codecs-dev (5.41.0-0ubuntu1) ... Setting up libkf5i18n-dev (5.41.0-0ubuntu1) ... Setting up libkf5service-dev (5.41.0-0ubuntu2) ... Setting up libkf5configwidgets-dev (5.41.0-0ubuntu1) ... Setting up libkf5iconthemes-dev (5.41.0-0ubuntu1) ... Setting up libkf5textwidgets-dev (5.41.0-0ubuntu1) ... Setting up sbuild-build-depends-debconf-kde-dummy (0.invalid.0) ... (Reading database ... 29078 files and directories currently installed.) Purging configuration files for pkg-create-dbgsym (0.73) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Processing triggers for systemd (235-3ubuntu3) ... +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 4.4.0-101-generic ppc64el (ppc64le) Toolchain package versions: binutils_2.29.1-12ubuntu1 dpkg-dev_1.19.0.4ubuntu1 g++-7_7.2.0-18ubuntu2 g++-8_8-20180110-1ubuntu1 gcc-7_7.2.0-18ubuntu2 gcc-8_8-20180110-1ubuntu1 libc6-dev_2.26-0ubuntu2 libstdc++-7-dev_7.2.0-18ubuntu2 libstdc++-8-dev_8-20180110-1ubuntu1 libstdc++6_8-20180110-1ubuntu1 linux-libc-dev_4.13.0-25.29 Package versions: adduser_3.116ubuntu1 advancecomp_2.0-1 apt_1.6~alpha5 apt-transport-https_1.6~alpha5 autoconf_2.69-11 automake_1:1.15.1-3ubuntu1 autopoint_0.19.8.1-4ubuntu2 autotools-dev_20171216.1 base-files_10ubuntu1 base-passwd_3.5.44 bash_4.4-5ubuntu1 binutils_2.29.1-12ubuntu1 binutils-common_2.29.1-12ubuntu1 binutils-powerpc64le-linux-gnu_2.29.1-12ubuntu1 bsdmainutils_9.0.14ubuntu1 bsdutils_1:2.30.2-0.1ubuntu1 build-essential_12.4ubuntu1 bzip2_1.0.6-8.1 ca-certificates_20170717 cmake_3.9.5-1 cmake-data_3.9.5-1 coreutils_8.26-3ubuntu4 cpp_4:8-20121108-1ubuntu0.2 cpp-7_7.2.0-18ubuntu2 cpp-8_8-20180110-1ubuntu1 dash_0.5.8-2.3ubuntu1 dbus_1.12.2-1ubuntu1 debconf_1.5.65 debhelper_11ubuntu1 debianutils_4.8.4 dh-autoreconf_15 dh-python_2.20170125 dh-strip-nondeterminism_0.040-1 diffstat_1.61-1build1 diffutils_1:3.6-1 dmsetup_2:1.02.137-2ubuntu3 dpkg_1.19.0.4ubuntu1 dpkg-dev_1.19.0.4ubuntu1 e2fslibs_1.43.8-1ubuntu1 e2fsprogs_1.43.8-1ubuntu1 extra-cmake-modules_5.41.0-0ubuntu1 fakeroot_1.21-1ubuntu2 fdisk_2.30.2-0.1ubuntu1 file_1:5.32-1 findutils_4.6.0+git+20170828-2 fontconfig_2.12.6-0ubuntu1 fontconfig-config_2.12.6-0ubuntu1 fonts-dejavu-core_2.37-1 g++_4:8-20121108-1ubuntu0.2 g++-7_7.2.0-18ubuntu2 g++-8_8-20180110-1ubuntu1 gcc_4:8-20121108-1ubuntu0.2 gcc-7_7.2.0-18ubuntu2 gcc-7-base_7.2.0-18ubuntu2 gcc-8_8-20180110-1ubuntu1 gcc-8-base_8-20180110-1ubuntu1 gettext_0.19.8.1-4ubuntu2 gettext-base_0.19.8.1-4ubuntu2 gnupg_2.1.15-1ubuntu8 gnupg-agent_2.1.15-1ubuntu8 gpgv_2.1.15-1ubuntu8 grep_3.1-2 groff-base_1.22.3-9 gzip_1.6-5ubuntu1 hostname_3.18 init_1.51 init-system-helpers_1.51 initscripts_2.88dsf-59.3ubuntu2 insserv_1.14.0-5ubuntu3 intltool-debian_0.35.0+20060710.4 libacl1_2.2.52-3build1 libapparmor1_2.11.0-2ubuntu18 libapt-pkg-perl_0.1.33build1 libapt-pkg5.0_1.6~alpha5 libarchive-zip-perl_1.60-1 libarchive13_3.2.2-3.1 libasan4_7.2.0-18ubuntu2 libasan5_8-20180110-1ubuntu1 libasn1-8-heimdal_7.5.0+dfsg-1 libassuan0_2.5.1-1 libatomic1_8-20180110-1ubuntu1 libattr1_1:2.4.47-2build1 libaudit-common_1:2.7.7-1ubuntu2 libaudit1_1:2.7.7-1ubuntu2 libavahi-client3_0.7-3ubuntu1 libavahi-common-data_0.7-3ubuntu1 libavahi-common3_0.7-3ubuntu1 libbinutils_2.29.1-12ubuntu1 libblkid1_2.30.2-0.1ubuntu1 libboost-filesystem1.65.1_1.65.1+dfsg-0ubuntu4 libboost-system1.65.1_1.65.1+dfsg-0ubuntu4 libbsd0_0.8.6-3 libbz2-1.0_1.0.6-8.1 libc-bin_2.26-0ubuntu2 libc-dev-bin_2.26-0ubuntu2 libc6_2.26-0ubuntu2 libc6-dev_2.26-0ubuntu2 libcap-ng0_0.7.7-3.1 libcap2_1:2.25-1.2 libcapnp-0.6.1_0.6.1-1 libcc1-0_8-20180110-1ubuntu1 libcgi-pm-perl_4.38-1 libclass-accessor-perl_0.51-1 libclone-perl_0.39-1 libcomerr2_1.43.8-1ubuntu1 libcroco3_0.6.12-2 libcryptsetup4_2:1.7.3-4ubuntu1 libcups2_2.2.6-4 libcurl3_7.57.0-1ubuntu1 libcurl3-gnutls_7.57.0-1ubuntu1 libdb5.3_5.3.28-13.1 libdbus-1-3_1.12.2-1ubuntu1 libdebconfclient0_0.213ubuntu1 libdevmapper1.02.1_2:1.02.137-2ubuntu3 libdigest-hmac-perl_1.03+dfsg-1 libdouble-conversion1_2.0.1-4ubuntu1 libdpkg-perl_1.19.0.4ubuntu1 libdrm-amdgpu1_2.4.89-1 libdrm-common_2.4.89-1 libdrm-dev_2.4.89-1 libdrm-nouveau2_2.4.89-1 libdrm-radeon1_2.4.89-1 libdrm2_2.4.89-1 libedit2_3.1-20170329-1 libegl1-mesa_17.2.4-0ubuntu2 libegl1-mesa-dev_17.2.4-0ubuntu2 libelf1_0.170-0.2 libemail-valid-perl_1.202-1 libevdev2_1.5.7+dfsg-1 libexpat1_2.2.5-3 libexporter-tiny-perl_1.000000-2 libfakeroot_1.21-1ubuntu2 libfam0_2.7.0-17.2 libfdisk1_2.30.2-0.1ubuntu1 libffi6_3.2.1-6 libfile-basedir-perl_0.07-1 libfile-stripnondeterminism-perl_0.040-1 libfontconfig1_2.12.6-0ubuntu1 libfreetype6_2.8-0.2ubuntu2 libgbm1_17.2.4-0ubuntu2 libgcc-7-dev_7.2.0-18ubuntu2 libgcc-8-dev_8-20180110-1ubuntu1 libgcc1_1:8-20180110-1ubuntu1 libgcrypt20_1.8.1-4 libgdbm3_1.8.3-14 libgl1-mesa-dev_17.2.4-0ubuntu2 libgl1-mesa-dri_17.2.4-0ubuntu2 libgl1-mesa-glx_17.2.4-0ubuntu2 libglapi-mesa_17.2.4-0ubuntu2 libgles2-mesa_17.2.4-0ubuntu2 libgles2-mesa-dev_17.2.4-0ubuntu2 libglib2.0-0_2.54.1-1ubuntu1 libglu1-mesa_9.0.0-2.1build1 libglu1-mesa-dev_9.0.0-2.1build1 libgmp10_2:6.1.2+dfsg-1 libgnutls30_3.5.8-6ubuntu3 libgomp1_8-20180110-1ubuntu1 libgpg-error0_1.27-5 libgraphite2-3_1.3.10-8 libgssapi-krb5-2_1.15.1-2 libgssapi3-heimdal_7.5.0+dfsg-1 libgudev-1.0-0_1:232-1 libharfbuzz0b_1.7.2-1 libhcrypto4-heimdal_7.5.0+dfsg-1 libheimbase1-heimdal_7.5.0+dfsg-1 libheimntlm0-heimdal_7.5.0+dfsg-1 libhogweed4_3.3-2 libhtml-parser-perl_3.72-3build1 libhtml-tagset-perl_3.20-3 libhx509-5-heimdal_7.5.0+dfsg-1 libice6_2:1.0.9-2 libicu-le-hb0_1.0.3+git161113-4 libicu60_60.2-1ubuntu1 libidn11_1.33-2.1 libidn2-0_2.0.4-1 libinput-bin_1.9.4-2 libinput10_1.9.4-2 libio-pty-perl_1:1.08-1.1build4 libio-socket-inet6-perl_2.72-2 libio-socket-ssl-perl_2.052-1 libio-string-perl_1.08-3 libip4tc0_1.6.1-2ubuntu2 libipc-run-perl_0.96-1 libipc-system-simple-perl_1.25-3 libisl15_0.18-1 libitm1_8-20180110-1ubuntu1 libjpeg-turbo8_1.5.2-0ubuntu5 libjpeg8_8c-2ubuntu8 libjsoncpp1_1.7.4-3 libk5crypto3_1.15.1-2 libkeyutils1_1.5.9-9.2ubuntu1 libkf5archive5_5.41.0-0ubuntu1 libkf5auth-bin-dev_5.41.0-0ubuntu1 libkf5auth-data_5.41.0-0ubuntu1 libkf5auth-dev_5.41.0-0ubuntu1 libkf5auth5_5.41.0-0ubuntu1 libkf5codecs-data_5.41.0-0ubuntu1 libkf5codecs-dev_5.41.0-0ubuntu1 libkf5codecs5_5.41.0-0ubuntu1 libkf5completion-data_5.41.0-0ubuntu1 libkf5completion-dev_5.41.0-0ubuntu1 libkf5completion5_5.41.0-0ubuntu1 libkf5config-bin_5.41.0-0ubuntu1 libkf5config-bin-dev_5.41.0-0ubuntu1 libkf5config-data_5.41.0-0ubuntu1 libkf5config-dev_5.41.0-0ubuntu1 libkf5configcore5_5.41.0-0ubuntu1 libkf5configgui5_5.41.0-0ubuntu1 libkf5configwidgets-data_5.41.0-0ubuntu1 libkf5configwidgets-dev_5.41.0-0ubuntu1 libkf5configwidgets5_5.41.0-0ubuntu1 libkf5coreaddons-bin-dev_5.41.0-0ubuntu1 libkf5coreaddons-data_5.41.0-0ubuntu1 libkf5coreaddons-dev_5.41.0-0ubuntu1 libkf5coreaddons5_5.41.0-0ubuntu1 libkf5crash5_5.41.0-0ubuntu1 libkf5dbusaddons-data_5.41.0-0ubuntu1 libkf5dbusaddons-dev_5.41.0-0ubuntu1 libkf5dbusaddons5_5.41.0-0ubuntu1 libkf5guiaddons-dev_5.41.0-0ubuntu1 libkf5guiaddons5_5.41.0-0ubuntu1 libkf5i18n-data_5.41.0-0ubuntu1 libkf5i18n-dev_5.41.0-0ubuntu1 libkf5i18n5_5.41.0-0ubuntu1 libkf5iconthemes-data_5.41.0-0ubuntu1 libkf5iconthemes-dev_5.41.0-0ubuntu1 libkf5iconthemes5_5.41.0-0ubuntu1 libkf5itemviews-data_5.41.0-0ubuntu1 libkf5itemviews-dev_5.41.0-0ubuntu1 libkf5itemviews5_5.41.0-0ubuntu1 libkf5service-bin_5.41.0-0ubuntu2 libkf5service-data_5.41.0-0ubuntu2 libkf5service-dev_5.41.0-0ubuntu2 libkf5service5_5.41.0-0ubuntu2 libkf5sonnet-dev_5.41.0-0ubuntu1 libkf5sonnet-dev-bin_5.41.0-0ubuntu1 libkf5sonnet5-data_5.41.0-0ubuntu1 libkf5sonnetcore5_5.41.0-0ubuntu1 libkf5sonnetui5_5.41.0-0ubuntu1 libkf5textwidgets-data_5.41.0-0ubuntu1 libkf5textwidgets-dev_5.41.0-0ubuntu1 libkf5textwidgets5_5.41.0-0ubuntu1 libkf5widgetsaddons-data_5.41.0-0ubuntu1 libkf5widgetsaddons-dev_5.41.0-0ubuntu1 libkf5widgetsaddons5_5.41.0-0ubuntu1 libkf5windowsystem-data_5.41.0-0ubuntu1 libkf5windowsystem-dev_5.41.0-0ubuntu1 libkf5windowsystem5_5.41.0-0ubuntu1 libkmod2_24-1ubuntu2 libkrb5-26-heimdal_7.5.0+dfsg-1 libkrb5-3_1.15.1-2 libkrb5support0_1.15.1-2 libksba8_1.3.5-2 libldap-2.4-2_2.4.45+dfsg-1ubuntu1 libldap-common_2.4.45+dfsg-1ubuntu1 liblist-moreutils-perl_0.416-1build3 libllvm5.0_1:5.0.1-2 liblocale-gettext-perl_1.07-3build2 liblockfile-bin_1.14-1.1 liblockfile1_1.14-1.1 liblsan0_8-20180110-1ubuntu1 liblz4-1_0.0~r131-2ubuntu2 liblzma5_5.2.2-1.3 liblzo2-2_2.08-1.2 libmagic-mgc_1:5.32-1 libmagic1_1:5.32-1 libmailtools-perl_2.18-1 libmirclient9_0.29.0-0ubuntu1 libmircommon7_0.29.0-0ubuntu1 libmircore1_0.29.0-0ubuntu1 libmirprotobuf3_0.29.0-0ubuntu1 libmount1_2.30.2-0.1ubuntu1 libmpc3_1.0.3-2 libmpdec2_2.4.2-1 libmpfr4_3.1.6-1 libmtdev1_1.1.5-1ubuntu2 libncurses5_6.0+20160625-1ubuntu1 libncursesw5_6.0+20160625-1ubuntu1 libnet-dns-perl_1.10-2 libnet-domain-tld-perl_1.75-1 libnet-ip-perl_1.26-1 libnet-smtp-ssl-perl_1.04-1 libnet-ssleay-perl_1.82-1 libnettle6_3.3-2 libnghttp2-14_1.29.0-1 libnpth0_1.5-3 libp11-kit0_0.23.9-2 libpam-modules_1.1.8-3.2ubuntu3 libpam-modules-bin_1.1.8-3.2ubuntu3 libpam-runtime_1.1.8-3.2ubuntu3 libpam-systemd_235-3ubuntu3 libpam0g_1.1.8-3.2ubuntu3 libparse-debianchangelog-perl_1.2.0-12 libpcre3_2:8.39-8 libperl5.26_5.26.1-3 libpipeline1_1.5.0-1 libpng16-16_1.6.34-1 libpolkit-agent-1-0_0.105-18 libpolkit-gobject-1-0_0.105-18 libpolkit-qt5-1-1_0.112.0-5 libprocps6_2:3.3.12-1ubuntu2 libprotobuf-lite10_3.0.0-9ubuntu5 libpsl5_0.19.1-4 libpthread-stubs0-dev_0.3-4 libpython-stdlib_2.7.14-2ubuntu1 libpython2.7-minimal_2.7.14-4 libpython2.7-stdlib_2.7.14-4 libpython3-stdlib_3.6.3-0ubuntu2 libpython3.6-minimal_3.6.4-2 libpython3.6-stdlib_3.6.4-2 libqt5concurrent5_5.9.3+dfsg-0ubuntu1 libqt5core5a_5.9.3+dfsg-0ubuntu1 libqt5dbus5_5.9.3+dfsg-0ubuntu1 libqt5gui5_5.9.3+dfsg-0ubuntu1 libqt5network5_5.9.3+dfsg-0ubuntu1 libqt5printsupport5_5.9.3+dfsg-0ubuntu1 libqt5script5_5.9.3+dfsg-0ubuntu1 libqt5scripttools5_5.9.3+dfsg-0ubuntu1 libqt5sql5_5.9.3+dfsg-0ubuntu1 libqt5svg5_5.9.3-0ubuntu1 libqt5test5_5.9.3+dfsg-0ubuntu1 libqt5widgets5_5.9.3+dfsg-0ubuntu1 libqt5x11extras5_5.9.3-0ubuntu1 libqt5xml5_5.9.3+dfsg-0ubuntu1 libquadmath0_8-20180110-1ubuntu1 libreadline7_7.0-0ubuntu2 librhash0_1.3.4-3 libroken18-heimdal_7.5.0+dfsg-1 librtmp1_2.4+20151223.gitfa8646d.1-1 libsasl2-2_2.1.27~101-g0780600+dfsg-3ubuntu1 libsasl2-modules-db_2.1.27~101-g0780600+dfsg-3ubuntu1 libseccomp2_2.3.1-2.1ubuntu3 libselinux1_2.7-2 libsemanage-common_2.7-2 libsemanage1_2.7-2 libsensors4_1:3.4.0-4 libsepol1_2.7-1 libsigsegv2_2.11-1 libslang2_2.3.1-5ubuntu1 libsm6_2:1.2.2-1 libsmartcols1_2.30.2-0.1ubuntu1 libsocket6-perl_0.27-1build2 libsqlite3-0_3.21.0-1 libss2_1.43.8-1ubuntu1 libssl1.0.0_1.0.2g-1ubuntu14 libstdc++-7-dev_7.2.0-18ubuntu2 libstdc++-8-dev_8-20180110-1ubuntu1 libstdc++6_8-20180110-1ubuntu1 libsub-name-perl_0.21-1build1 libsystemd0_235-3ubuntu3 libtasn1-6_4.12-3 libtext-levenshtein-perl_0.13-1 libtimedate-perl_2.3000-2 libtinfo5_6.0+20160625-1ubuntu1 libtool_2.4.6-2 libtsan0_8-20180110-1ubuntu1 libubsan0_7.2.0-18ubuntu2 libubsan1_8-20180110-1ubuntu1 libudev1_235-3ubuntu3 libunistring0_0.9.3-5.2ubuntu1 liburi-perl_1.72-2 libusb-0.1-4_2:0.1.12-31 libustr-1.0-1_1.0.4-6 libuuid1_2.30.2-0.1ubuntu1 libuv1_1.18.0-3 libwacom-common_0.26-1 libwacom2_0.26-1 libwayland-bin_1.14.0-1 libwayland-client0_1.14.0-1 libwayland-cursor0_1.14.0-1 libwayland-dev_1.14.0-1 libwayland-egl1-mesa_17.2.4-0ubuntu2 libwayland-server0_1.14.0-1 libwind0-heimdal_7.5.0+dfsg-1 libx11-6_2:1.6.4-3 libx11-data_2:1.6.4-3 libx11-dev_2:1.6.4-3 libx11-xcb-dev_2:1.6.4-3 libx11-xcb1_2:1.6.4-3 libxau-dev_1:1.0.8-1 libxau6_1:1.0.8-1 libxcb-dri2-0_1.12-1ubuntu1 libxcb-dri2-0-dev_1.12-1ubuntu1 libxcb-dri3-0_1.12-1ubuntu1 libxcb-dri3-dev_1.12-1ubuntu1 libxcb-glx0_1.12-1ubuntu1 libxcb-glx0-dev_1.12-1ubuntu1 libxcb-icccm4_0.4.1-1ubuntu1 libxcb-image0_0.4.0-1build1 libxcb-keysyms1_0.4.0-1 libxcb-present-dev_1.12-1ubuntu1 libxcb-present0_1.12-1ubuntu1 libxcb-randr0_1.12-1ubuntu1 libxcb-randr0-dev_1.12-1ubuntu1 libxcb-render-util0_0.3.9-1 libxcb-render0_1.12-1ubuntu1 libxcb-render0-dev_1.12-1ubuntu1 libxcb-shape0_1.12-1ubuntu1 libxcb-shape0-dev_1.12-1ubuntu1 libxcb-shm0_1.12-1ubuntu1 libxcb-sync-dev_1.12-1ubuntu1 libxcb-sync1_1.12-1ubuntu1 libxcb-util1_0.4.0-0ubuntu3 libxcb-xfixes0_1.12-1ubuntu1 libxcb-xfixes0-dev_1.12-1ubuntu1 libxcb-xinerama0_1.12-1ubuntu1 libxcb-xkb1_1.12-1ubuntu1 libxcb1_1.12-1ubuntu1 libxcb1-dev_1.12-1ubuntu1 libxdamage-dev_1:1.1.4-3 libxdamage1_1:1.1.4-3 libxdmcp-dev_1:1.1.2-3 libxdmcp6_1:1.1.2-3 libxext-dev_2:1.3.3-1 libxext6_2:1.3.3-1 libxfixes-dev_1:5.0.3-1 libxfixes3_1:5.0.3-1 libxi6_2:1.7.9-1 libxkbcommon-x11-0_0.8.0-1 libxkbcommon0_0.8.0-1 libxml-libxml-perl_2.0128+dfsg-5 libxml-namespacesupport-perl_1.12-1 libxml-sax-base-perl_1.09-1 libxml-sax-perl_0.99+dfsg-2ubuntu1 libxml-simple-perl_2.24-1 libxml2_2.9.4+dfsg1-5.2ubuntu1 libxshmfence-dev_1.2-1 libxshmfence1_1.2-1 libxxf86vm-dev_1:1.1.4-1 libxxf86vm1_1:1.1.4-1 libyaml-libyaml-perl_0.63-2build1 lintian_2.5.62 linux-libc-dev_4.13.0-25.29 lockfile-progs_0.1.17build1 login_1:4.2-3.2ubuntu4 lsb-base_9.20170808ubuntu1 m4_1.4.18-1 make_4.1-9.1 man-db_2.7.6.1-4 mawk_1.3.3-17ubuntu2 mesa-common-dev_17.2.4-0ubuntu2 mime-support_3.60ubuntu1 mount_2.30.2-0.1ubuntu1 multiarch-support_2.26-0ubuntu2 ncurses-base_6.0+20160625-1ubuntu1 ncurses-bin_6.0+20160625-1ubuntu1 netbase_5.4 openssl_1.0.2g-1ubuntu14 optipng_0.7.6-1.1 passwd_1:4.2-3.2ubuntu4 patch_2.7.5-1build1 patchutils_0.3.4-2 perl_5.26.1-3 perl-base_5.26.1-3 perl-modules-5.26_5.26.1-3 perl-openssl-defaults_3 pinentry-curses_1.0.0-3 pkg-kde-tools_0.15.28ubuntu1 pkgbinarymangler_131 po-debconf_1.0.20 policyrcd-script-zg2_0.1-3 procps_2:3.3.12-1ubuntu2 python_2.7.14-2ubuntu1 python-minimal_2.7.14-2ubuntu1 python2.7_2.7.14-4 python2.7-minimal_2.7.14-4 python3_3.6.3-0ubuntu2 python3-distutils_3.6.4~rc1-6 python3-minimal_3.6.3-0ubuntu2 python3.6_3.6.4-2 python3.6-2to3_3.6.4-2 python3.6-minimal_3.6.4-2 qt5-qmake_5.9.3+dfsg-0ubuntu1 qt5-qmake-bin_5.9.3+dfsg-0ubuntu1 qtbase5-dev_5.9.3+dfsg-0ubuntu1 qtbase5-dev-tools_5.9.3+dfsg-0ubuntu1 qtchooser_64-ga1b6736-5 qtscript5-dev_5.9.3+dfsg-0ubuntu1 readline-common_7.0-0ubuntu2 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-debconf-kde-dummy_0.invalid.0 sed_4.4-1 sensible-utils_0.0.11 shared-mime-info_1.9-2 systemd_235-3ubuntu3 systemd-sysv_235-3ubuntu3 sysv-rc_2.88dsf-59.3ubuntu2 sysvinit-utils_2.88dsf-59.10ubuntu1 t1utils_1.41-2 tar_1.29b-2 tzdata_2017c-1 ubuntu-keyring_2016.10.27 ucf_3.0036 util-linux_2.30.2-0.1ubuntu1 x11-common_1:7.7+19ubuntu3 x11proto-core-dev_7.0.31-1 x11proto-damage-dev_1:1.2.1-2 x11proto-dri2-dev_2.8-2 x11proto-fixes-dev_1:5.0-2ubuntu2 x11proto-gl-dev_1.4.17-1 x11proto-input-dev_2.3.2-1 x11proto-kb-dev_1.0.7-1 x11proto-xext-dev_7.3.0-1 x11proto-xf86vidmode-dev_2.3.1-2 xkb-data_2.19-1.1ubuntu1 xorg-sgml-doctools_1:1.11-1 xtrans-dev_1.3.5-1 xz-utils_5.2.2-1.3 zlib1g_1:1.2.11.dfsg-0ubuntu2 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- gpgv: Signature made Sat Sep 26 06:21:16 2015 UTC gpgv: using RSA key gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./debconf-kde_1.0.2-1.dsc dpkg-source: info: extracting debconf-kde in debconf-kde-1.0.2 dpkg-source: info: unpacking debconf-kde_1.0.2.orig.tar.xz dpkg-source: info: unpacking debconf-kde_1.0.2-1.debian.tar.xz Check disc space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf DEB_BUILD_OPTIONS=noautodbgsym parallel=4 HOME=/sbuild-nonexistent LANG=C.UTF-8 LC_ALL=C.UTF-8 LOGNAME=buildd PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=build-PACKAGEBUILD-14087662 SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-14087662 SCHROOT_COMMAND=env SCHROOT_GID=2501 SCHROOT_GROUP=buildd SCHROOT_SESSION_ID=build-PACKAGEBUILD-14087662 SCHROOT_UID=2001 SCHROOT_USER=buildd SHELL=/bin/sh TERM=unknown USER=buildd V=1 dpkg-buildpackage ----------------- dpkg-buildpackage: info: source package debconf-kde dpkg-buildpackage: info: source version 1.0.2-1 dpkg-buildpackage: info: source distribution unstable dpkg-source --before-build debconf-kde-1.0.2 dpkg-buildpackage: info: host architecture ppc64el fakeroot debian/rules clean dh clean --parallel --with kf5 --with pkgkde_symbolshelper --dbg-package=debconf-kde-dbg dh_auto_clean --buildsystem=kf5 -O--parallel -O--dbg-package=debconf-kde-dbg dh_clean -O--parallel -O--dbg-package=debconf-kde-dbg debian/rules build-arch dh build-arch --parallel --with kf5 --with pkgkde_symbolshelper --dbg-package=debconf-kde-dbg dh_update_autotools_config -a -O--parallel -O--dbg-package=debconf-kde-dbg dh_auto_configure --buildsystem=kf5 -a -O--parallel -O--dbg-package=debconf-kde-dbg cd obj-powerpc64le-linux-gnu && cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Debian -DCMAKE_INSTALL_SYSCONFDIR=/etc -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -- The C compiler identification is GNU 8.0.0 -- The CXX compiler identification is GNU 8.0.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Could not set up the appstream test. appstreamcli is missing. -- Looking for __GLIBC__ -- Looking for __GLIBC__ - found -- Performing Test _OFFT_IS_64BIT -- Performing Test _OFFT_IS_64BIT - Success -- Performing Test HAVE_DATE_TIME -- Performing Test HAVE_DATE_TIME - Success -- Found KF5CoreAddons: /usr/lib/powerpc64le-linux-gnu/cmake/KF5CoreAddons/KF5CoreAddonsConfig.cmake (found version "5.41.0") -- Found Gettext: /usr/bin/msgmerge (found version "0.19.8.1") -- Found PythonInterp: /usr/bin/python (found version "2.7.14") -- Found KF5I18n: /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/KF5I18nConfig.cmake (found version "5.41.0") -- Found KF5IconThemes: /usr/lib/powerpc64le-linux-gnu/cmake/KF5IconThemes/KF5IconThemesConfig.cmake (found version "5.41.0") -- Found KF5TextWidgets: /usr/lib/powerpc64le-linux-gnu/cmake/KF5TextWidgets/KF5TextWidgetsConfig.cmake (found version "5.41.0") -- Found KF5WidgetsAddons: /usr/lib/powerpc64le-linux-gnu/cmake/KF5WidgetsAddons/KF5WidgetsAddonsConfig.cmake (found version "5.41.0") -- Found KF5: success (found suitable version "5.41.0", minimum required is "5.0.0") found components: CoreAddons I18n IconThemes TextWidgets WidgetsAddons -- The following REQUIRED packages have been found: * ECM (required version >= 0.0.14) * Qt5Gui (required version >= 5.9.3) * Qt5Widgets * Qt5Network * Qt5 (required version >= 5.2.0) * KF5CoreAddons (required version >= 5.0.0) * Gettext * PythonInterp * KF5I18n (required version >= 5.0.0) * KF5IconThemes (required version >= 5.0.0) * KF5TextWidgets (required version >= 5.0.0) * KF5WidgetsAddons (required version >= 5.0.0) * KF5 (required version >= 5.0.0) -- Configuring done CMake Warning (dev) at tools/CMakeLists.txt:1 (add_executable): Policy CMP0063 is not set: Honor visibility properties for all target types. Run "cmake --help-policy CMP0063" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Target "debconf-kde-helper" of type "EXECUTABLE" has the following visibility properties set for CXX: CXX_VISIBILITY_PRESET VISIBILITY_INLINES_HIDDEN For compatibility CMake is not honoring them for this target. This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_EXPORT_NO_PACKAGE_REGISTRY -- Build files have been written to: /<>/obj-powerpc64le-linux-gnu dh_auto_build --buildsystem=kf5 -a -O--parallel -O--dbg-package=debconf-kde-dbg cd obj-powerpc64le-linux-gnu && make -j4 make[1]: Entering directory '/<>/obj-powerpc64le-linux-gnu' /usr/bin/cmake -H/<> -B/<>/obj-powerpc64le-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /<>/obj-powerpc64le-linux-gnu/CMakeFiles /<>/obj-powerpc64le-linux-gnu/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/<>/obj-powerpc64le-linux-gnu' make -f CMakeFiles/pofiles-cfa9664f2064850b6abbf3e6075feea0.dir/build.make CMakeFiles/pofiles-cfa9664f2064850b6abbf3e6075feea0.dir/depend make -f CMakeFiles/tsfiles-cfa9664f2064850b6abbf3e6075feea0.dir/build.make CMakeFiles/tsfiles-cfa9664f2064850b6abbf3e6075feea0.dir/depend make -f src/CMakeFiles/debconf-kde_autogen.dir/build.make src/CMakeFiles/debconf-kde_autogen.dir/depend make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' cd /<>/obj-powerpc64le-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/src /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu/src /<>/obj-powerpc64le-linux-gnu/src/CMakeFiles/debconf-kde_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' cd /<>/obj-powerpc64le-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu/CMakeFiles/pofiles-cfa9664f2064850b6abbf3e6075feea0.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' cd /<>/obj-powerpc64le-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu/CMakeFiles/tsfiles-cfa9664f2064850b6abbf3e6075feea0.dir/DependInfo.cmake --color= Scanning dependencies of target debconf-kde_autogen Scanning dependencies of target tsfiles-cfa9664f2064850b6abbf3e6075feea0 make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' make -f src/CMakeFiles/debconf-kde_autogen.dir/build.make src/CMakeFiles/debconf-kde_autogen.dir/build make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' make -f CMakeFiles/tsfiles-cfa9664f2064850b6abbf3e6075feea0.dir/build.make CMakeFiles/tsfiles-cfa9664f2064850b6abbf3e6075feea0.dir/build make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' Scanning dependencies of target pofiles-cfa9664f2064850b6abbf3e6075feea0 make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' make -f CMakeFiles/pofiles-cfa9664f2064850b6abbf3e6075feea0.dir/build.make CMakeFiles/pofiles-cfa9664f2064850b6abbf3e6075feea0.dir/build [ 2%] Generating ui_DebconfBoolean.h make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfBoolean.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfBoolean.h -DKDE_UIC_BASENAME:STRING=DebconfBoolean -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake [ 4%] Generating ui_DebconfGui.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfGui.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfGui.h -DKDE_UIC_BASENAME:STRING=DebconfGui -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake [ 7%] Generating ts... /usr/bin/cmake -DPYTHON_EXECUTABLE=/usr/bin/python -D_ki18n_pmap_compile_script=/usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/ts-pmap-compile.py -DCOPY_TO=/<>/obj-powerpc64le-linux-gnu/locale -DPO_DIR=/<>/po -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/build-tsfiles.cmake [ 9%] Generating mo... make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' /usr/bin/cmake -DGETTEXT_MSGFMT_EXECUTABLE=/usr/bin/msgfmt -DCOPY_TO=/<>/obj-powerpc64le-linux-gnu/locale -DPO_DIR=/<>/po -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/build-pofiles.cmake [ 11%] Generating ui_DebconfError.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfError.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfError.h -DKDE_UIC_BASENAME:STRING=DebconfError -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake [ 11%] Built target tsfiles-cfa9664f2064850b6abbf3e6075feea0 -- building... ar/libdebconf-kde.po to libdebconf-kde.mo [ 14%] Generating ui_DebconfMultiselect.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfMultiselect.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfMultiselect.h -DKDE_UIC_BASENAME:STRING=DebconfMultiselect -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... ast/libdebconf-kde.po to libdebconf-kde.mo -- building... bs/libdebconf-kde.po to libdebconf-kde.mo [ 16%] Generating ui_DebconfNote.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfNote.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfNote.h -DKDE_UIC_BASENAME:STRING=DebconfNote -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... ca/libdebconf-kde.po to libdebconf-kde.mo [ 19%] Generating ui_DebconfPassword.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfPassword.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfPassword.h -DKDE_UIC_BASENAME:STRING=DebconfPassword -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... ca@valencia/libdebconf-kde.po to libdebconf-kde.mo -- building... cs/libdebconf-kde.po to libdebconf-kde.mo -- building... da/libdebconf-kde.po to libdebconf-kde.mo [ 21%] Generating ui_DebconfProgress.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfProgress.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfProgress.h -DKDE_UIC_BASENAME:STRING=DebconfProgress -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... de/libdebconf-kde.po to libdebconf-kde.mo -- building... el/libdebconf-kde.po to libdebconf-kde.mo [ 23%] Generating ui_DebconfSelect.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfSelect.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfSelect.h -DKDE_UIC_BASENAME:STRING=DebconfSelect -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... en_GB/libdebconf-kde.po to libdebconf-kde.mo -- building... es/libdebconf-kde.po to libdebconf-kde.mo -- building... et/libdebconf-kde.po to libdebconf-kde.mo [ 26%] Generating ui_DebconfString.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfString.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfString.h -DKDE_UIC_BASENAME:STRING=DebconfString -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... eu/libdebconf-kde.po to libdebconf-kde.mo -- building... fi/libdebconf-kde.po to libdebconf-kde.mo -- building... fr/libdebconf-kde.po to libdebconf-kde.mo -- building... ga/libdebconf-kde.po to libdebconf-kde.mo [ 28%] Generating ui_DebconfText.h cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -DKDE_UIC_EXECUTABLE:FILEPATH=/usr/lib/qt5/bin/uic -DKDE_UIC_FILE:FILEPATH=/<>/src/DebconfText.ui -DKDE_UIC_H_FILE:FILEPATH=/<>/obj-powerpc64le-linux-gnu/src/ui_DebconfText.h -DKDE_UIC_BASENAME:STRING=DebconfText -P /usr/lib/powerpc64le-linux-gnu/cmake/KF5I18n/kf5i18nuic.cmake -- building... gl/libdebconf-kde.po to libdebconf-kde.mo -- building... hu/libdebconf-kde.po to libdebconf-kde.mo -- building... id/libdebconf-kde.po to libdebconf-kde.mo -- building... ja/libdebconf-kde.po to libdebconf-kde.mo -- building... ko/libdebconf-kde.po to libdebconf-kde.mo -- building... lt/libdebconf-kde.po to libdebconf-kde.mo -- building... mr/libdebconf-kde.po to libdebconf-kde.mo -- building... nb/libdebconf-kde.po to libdebconf-kde.mo [ 30%] Automatic MOC for target debconf-kde cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/cmake -E cmake_autogen /<>/obj-powerpc64le-linux-gnu/src/CMakeFiles/debconf-kde_autogen.dir Debian -- building... nds/libdebconf-kde.po to libdebconf-kde.mo -- building... nl/libdebconf-kde.po to libdebconf-kde.mo -- building... pl/libdebconf-kde.po to libdebconf-kde.mo -- building... pt/libdebconf-kde.po to libdebconf-kde.mo -- building... pt_BR/libdebconf-kde.po to libdebconf-kde.mo -- building... ro/libdebconf-kde.po to libdebconf-kde.mo -- building... ru/libdebconf-kde.po to libdebconf-kde.mo -- building... sk/libdebconf-kde.po to libdebconf-kde.mo -- building... sl/libdebconf-kde.po to libdebconf-kde.mo -- building... sv/libdebconf-kde.po to libdebconf-kde.mo -- building... th/libdebconf-kde.po to libdebconf-kde.mo -- building... tr/libdebconf-kde.po to libdebconf-kde.mo -- building... ug/libdebconf-kde.po to libdebconf-kde.mo -- building... uk/libdebconf-kde.po to libdebconf-kde.mo -- building... zh_CN/libdebconf-kde.po to libdebconf-kde.mo -- building... zh_TW/libdebconf-kde.po to libdebconf-kde.mo make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' [ 30%] Built target pofiles-cfa9664f2064850b6abbf3e6075feea0 Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_DebconfBoolean.cpp Generating MOC source EWIEGA46WW/moc_DebconfElement.cpp Generating MOC source EWIEGA46WW/moc_DebconfError.cpp Generating MOC source EWIEGA46WW/moc_DebconfGui.cpp Generating MOC source EWIEGA46WW/moc_DebconfMultiselect.cpp Generating MOC source EWIEGA46WW/moc_DebconfNote.cpp Generating MOC source EWIEGA46WW/moc_DebconfPassword.cpp Generating MOC source EWIEGA46WW/moc_DebconfProgress.cpp Generating MOC source EWIEGA46WW/moc_DebconfSelect.cpp Generating MOC source EWIEGA46WW/moc_DebconfString.cpp Generating MOC source EWIEGA46WW/moc_DebconfText.cpp Generating MOC source EWIEGA46WW/moc_debconf.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' [ 30%] Built target debconf-kde_autogen make -f src/CMakeFiles/debconf-kde.dir/build.make src/CMakeFiles/debconf-kde.dir/depend make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' cd /<>/obj-powerpc64le-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/src /<>/obj-powerpc64le-linux-gnu /<>/obj-powerpc64le-linux-gnu/src /<>/obj-powerpc64le-linux-gnu/src/CMakeFiles/debconf-kde.dir/DependInfo.cmake --color= Scanning dependencies of target debconf-kde make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' make -f src/CMakeFiles/debconf-kde.dir/build.make src/CMakeFiles/debconf-kde.dir/build make[3]: Entering directory '/<>/obj-powerpc64le-linux-gnu' [ 33%] Building CXX object src/CMakeFiles/debconf-kde.dir/debconf.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/debconf.cpp.o -c /<>/src/debconf.cpp [ 35%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfElement.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfElement.cpp.o -c /<>/src/DebconfElement.cpp [ 38%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfBoolean.cpp.o [ 40%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfError.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfBoolean.cpp.o -c /<>/src/DebconfBoolean.cpp cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfError.cpp.o -c /<>/src/DebconfError.cpp In file included from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h:47, from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h:47, from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h:1094, from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h:46, from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/QHash:1, from /<>/src/debconf.h:55, from /<>/src/debconf.cpp:52: /<>/src/debconf.cpp: In instantiation of ‘static int DebconfKde::DebconfFrontend::enumFromString(const QString&, const char*) [with T = DebconfKde::DebconfFrontend]’: /<>/src/debconf.cpp:138:91: required from here /<>/src/debconf.cpp:130:42: internal compiler error: Segmentation fault enumValue = e.keyToValue(QString(QStringLiteral( "Unknown" )).append(QLatin1String( enumName )).toLatin1().data()); ^~~~~~~~~~~~~~ [ 42%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfMultiselect.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfMultiselect.cpp.o -c /<>/src/DebconfMultiselect.cpp 0x108d33e3 crash_signal ../../src/gcc/toplev.c:325 0x101e5a08 determine_visibility(tree_node*) ../../src/gcc/cp/decl2.c:2472 0x102bf8fb lookup_template_class_1 ../../src/gcc/cp/pt.c:9145 0x102bf8fb lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../src/gcc/cp/pt.c:9161 0x102c0787 tsubst_aggr_type ../../src/gcc/cp/pt.c:12008 0x102b4d57 tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13643 0x102c949f tsubst_decl ../../src/gcc/cp/pt.c:12940 0x102b4f2b tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13561 0x102ad2df tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16046 0x102ac247 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 0x102ab47f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x102ab47f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x102af2e7 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15958 0x102af2e7 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:16970 0x102b1143 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:18260 0x102b226b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 0x102b251f tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17937 0x102b1b3b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17188 0x102b12b3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17955 0x102b226b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. [ 45%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfNote.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfNote.cpp.o -c /<>/src/DebconfNote.cpp [ 47%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfPassword.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfPassword.cpp.o -c /<>/src/DebconfPassword.cpp [ 50%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfProgress.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfProgress.cpp.o -c /<>/src/DebconfProgress.cpp [ 52%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfSelect.cpp.o [ 54%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfString.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfSelect.cpp.o -c /<>/src/DebconfSelect.cpp cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfString.cpp.o -c /<>/src/DebconfString.cpp [ 57%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfText.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfText.cpp.o -c /<>/src/DebconfText.cpp [ 59%] Building CXX object src/CMakeFiles/debconf-kde.dir/DebconfGui.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/DebconfGui.cpp.o -c /<>/src/DebconfGui.cpp [ 61%] Building CXX object src/CMakeFiles/debconf-kde.dir/Debug.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/Debug.cpp.o -c /<>/src/Debug.cpp Preprocessed source stored into /tmp/ccLeEZL4.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 8036: // Target: powerpc64le-linux-gnu 8036: // Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8-20180110-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=powerpc64le-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --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-gnu-unique-object --enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos --enable-objc-gc=auto --enable-secureplt --with-cpu=power8 --enable-targets=powerpcle-linux --disable-multilib --enable-multiarch --disable-werror --with-long-double-128 --enable-checking=release --build=powerpc64le-linux-gnu --host=powerpc64le-linux-gnu --target=powerpc64le-linux-gnu 8036: // Thread model: posix 8036: // gcc version 8.0.0 20180110 (experimental) [trunk revision 256425] (Ubuntu 8-20180110-1ubuntu1) 8036: // 8036: // In file included from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h:47, 8036: // from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h:47, 8036: // from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h:1094, 8036: // from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h:46, 8036: // from /usr/include/powerpc64le-linux-gnu/qt5/QtCore/QHash:1, 8036: // from /<>/src/debconf.h:55, 8036: // from /<>/src/debconf.cpp:52: 8036: // /<>/src/debconf.cpp: In instantiation of ‘static int DebconfKde::DebconfFrontend::enumFromString(const QString&, const char*) [with T = DebconfKde::DebconfFrontend]’: 8036: // /<>/src/debconf.cpp:138:91: required from here 8036: // /<>/src/debconf.cpp:130:42: internal compiler error: Segmentation fault 8036: // enumValue = e.keyToValue(QString(QStringLiteral( "Unknown" )).append(QLatin1String( enumName )).toLatin1().data()); 8036: // ^~~~~~~~~~~~~~ 8036: // 0x108d33e3 crash_signal 8036: // ../../src/gcc/toplev.c:325 8036: // 0x101e5a08 determine_visibility(tree_node*) 8036: // ../../src/gcc/cp/decl2.c:2472 8036: // 0x102bf8fb lookup_template_class_1 8036: // ../../src/gcc/cp/pt.c:9145 8036: // 0x102bf8fb lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) 8036: // ../../src/gcc/cp/pt.c:9161 8036: // 0x102c0787 tsubst_aggr_type 8036: // ../../src/gcc/cp/pt.c:12008 8036: // 0x102b4d57 tsubst(tree_node*, tree_node*, int, tree_node*) 8036: // ../../src/gcc/cp/pt.c:13643 8036: // 0x102c949f tsubst_decl 8036: // ../../src/gcc/cp/pt.c:12940 8036: // 0x102b4f2b tsubst(tree_node*, tree_node*, int, tree_node*) 8036: // ../../src/gcc/cp/pt.c:13561 8036: // 0x102ad2df tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8036: // ../../src/gcc/cp/pt.c:16046 8036: // 0x102ac247 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8036: // ../../src/gcc/cp/pt.c:15973 8036: // 0x102ab47f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8036: // ../../src/gcc/cp/pt.c:16236 8036: // 0x102ab47f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8036: // ../../src/gcc/cp/pt.c:16236 8036: // 0x102af2e7 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8036: // ../../src/gcc/cp/pt.c:15958 8036: // 0x102af2e7 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) 8036: // ../../src/gcc/cp/pt.c:16970 8036: // 0x102b1143 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:18260 8036: // 0x102b226b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:17577 8036: // 0x102b251f tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:17937 8036: // 0x102b1b3b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:17188 8036: // 0x102b12b3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:17955 8036: // 0x102b226b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8036: // ../../src/gcc/cp/pt.c:17577 8036: // Please submit a full bug report, 8036: // with preprocessed source if appropriate. 8036: // Please include the complete backtrace with any bug report. 8036: // See for instructions. 8036: 8036: // /usr/lib/gcc/powerpc64le-linux-gnu/8/cc1plus -quiet -I /<>/obj-powerpc64le-linux-gnu/src -I /<>/src -I /<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I /<> -I /<>/obj-powerpc64le-linux-gnu -imultiarch powerpc64le-linux-gnu -D_GNU_SOURCE -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix -D PROJECT_VERSION="1.0.2" -D QT_CORE_LIB -D QT_GUI_LIB -D QT_NETWORK_LIB -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII -D QT_NO_DEBUG -D QT_WIDGETS_LIB -D TRANSLATION_DOMAIN="libdebconf-kde" -D _GNU_SOURCE -D _LARGEFILE64_SOURCE -D debconf_kde_EXPORTS -D _FORTIFY_SOURCE=2 -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons /<>/src/debconf.cpp -msecure-plt -quiet -dumpbase debconf.cpp -mcpu=power8 -auxbase-strip CMakeFiles/debconf-kde.dir/debconf.cpp.o -g -O3 -Wformat=1 -Werror=format-security -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -std=c++11 -std=gnu++11 -fdebug-prefix-map=/<>=. -fstack-protector-strong -fno-operator-names -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -fstack-protector-strong -Wformat-security -o - -frandom-seed=0 -fdump-noaddr 8036: 8036: # 1 "/<>/src/debconf.cpp" 8036: # 1 "/<>/obj-powerpc64le-linux-gnu/src//" 8036: # 1 "" 8036: # 1 "" 8036: # 1 "/usr/include/stdc-predef.h" 1 3 4 8036: # 1 "" 2 8036: # 1 "/<>/src/debconf.cpp" 8036: # 52 "/<>/src/debconf.cpp" 8036: # 1 "/<>/src/debconf.h" 1 8036: # 55 "/<>/src/debconf.h" 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QHash" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qchar.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qchar.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: # 1 "/usr/include/c++/8/type_traits" 1 3 4 8036: # 32 "/usr/include/c++/8/type_traits" 3 4 8036: 8036: # 33 "/usr/include/c++/8/type_traits" 3 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 1 3 8036: # 236 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 3 8036: 8036: # 236 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 3 8036: namespace std 8036: { 8036: typedef long unsigned int size_t; 8036: typedef long int ptrdiff_t; 8036: 8036: 8036: typedef decltype(nullptr) nullptr_t; 8036: 8036: } 8036: # 258 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 3 8036: namespace std 8036: { 8036: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8036: } 8036: namespace __gnu_cxx 8036: { 8036: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8036: } 8036: # 401 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 3 8036: namespace std 8036: { 8036: inline namespace __gnu_cxx_ldbl128 { } 8036: } 8036: # 508 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 3 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/os_defines.h" 1 3 8036: # 39 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/os_defines.h" 3 8036: # 1 "/usr/include/features.h" 1 3 4 8036: # 419 "/usr/include/features.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/sys/cdefs.h" 1 3 4 8036: # 419 "/usr/include/powerpc64le-linux-gnu/sys/cdefs.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 420 "/usr/include/powerpc64le-linux-gnu/sys/cdefs.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/long-double.h" 1 3 4 8036: # 421 "/usr/include/powerpc64le-linux-gnu/sys/cdefs.h" 2 3 4 8036: # 420 "/usr/include/features.h" 2 3 4 8036: # 443 "/usr/include/features.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/gnu/stubs.h" 1 3 4 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 6 "/usr/include/powerpc64le-linux-gnu/gnu/stubs.h" 2 3 4 8036: # 14 "/usr/include/powerpc64le-linux-gnu/gnu/stubs.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/gnu/stubs-64-v2.h" 1 3 4 8036: # 15 "/usr/include/powerpc64le-linux-gnu/gnu/stubs.h" 2 3 4 8036: # 444 "/usr/include/features.h" 2 3 4 8036: # 40 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/os_defines.h" 2 3 8036: # 509 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 2 3 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/cpu_defines.h" 1 3 8036: # 512 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++config.h" 2 3 8036: # 39 "/usr/include/c++/8/type_traits" 2 3 8036: 8036: 8036: 8036: namespace std 8036: { 8036: typedef short unsigned int uint_least16_t; 8036: typedef unsigned int uint_least32_t; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 68 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct integral_constant 8036: { 8036: static constexpr _Tp value = __v; 8036: typedef _Tp value_type; 8036: typedef integral_constant<_Tp, __v> type; 8036: constexpr operator value_type() const noexcept { return value; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: template 8036: constexpr _Tp integral_constant<_Tp, __v>::value; 8036: 8036: 8036: typedef integral_constant true_type; 8036: 8036: 8036: typedef integral_constant false_type; 8036: 8036: template 8036: using __bool_constant = integral_constant; 8036: # 103 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct conditional; 8036: 8036: template 8036: struct __or_; 8036: 8036: template<> 8036: struct __or_<> 8036: : public false_type 8036: { }; 8036: 8036: template 8036: struct __or_<_B1> 8036: : public _B1 8036: { }; 8036: 8036: template 8036: struct __or_<_B1, _B2> 8036: : public conditional<_B1::value, _B1, _B2>::type 8036: { }; 8036: 8036: template 8036: struct __or_<_B1, _B2, _B3, _Bn...> 8036: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 8036: { }; 8036: 8036: template 8036: struct __and_; 8036: 8036: template<> 8036: struct __and_<> 8036: : public true_type 8036: { }; 8036: 8036: template 8036: struct __and_<_B1> 8036: : public _B1 8036: { }; 8036: 8036: template 8036: struct __and_<_B1, _B2> 8036: : public conditional<_B1::value, _B2, _B1>::type 8036: { }; 8036: 8036: template 8036: struct __and_<_B1, _B2, _B3, _Bn...> 8036: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 8036: { }; 8036: 8036: template 8036: struct __not_ 8036: : public __bool_constant 8036: { }; 8036: # 192 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __success_type 8036: { typedef _Tp type; }; 8036: 8036: struct __failure_type 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct remove_cv; 8036: 8036: template 8036: struct __is_void_helper 8036: : public false_type { }; 8036: 8036: template<> 8036: struct __is_void_helper 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_void 8036: : public __is_void_helper::type>::type 8036: { }; 8036: 8036: template 8036: struct __is_integral_helper 8036: : public false_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: template<> 8036: struct __is_integral_helper<__int128> 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_integral_helper 8036: : public true_type { }; 8036: # 324 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct is_integral 8036: : public __is_integral_helper::type>::type 8036: { }; 8036: 8036: template 8036: struct __is_floating_point_helper 8036: : public false_type { }; 8036: 8036: template<> 8036: struct __is_floating_point_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_floating_point_helper 8036: : public true_type { }; 8036: 8036: template<> 8036: struct __is_floating_point_helper 8036: : public true_type { }; 8036: 8036: 8036: template<> 8036: struct __is_floating_point_helper<__ieee128> 8036: : public true_type { }; 8036: 8036: 8036: 8036: template 8036: struct is_floating_point 8036: : public __is_floating_point_helper::type>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_array 8036: : public false_type { }; 8036: 8036: template 8036: struct is_array<_Tp[_Size]> 8036: : public true_type { }; 8036: 8036: template 8036: struct is_array<_Tp[]> 8036: : public true_type { }; 8036: 8036: template 8036: struct __is_pointer_helper 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_pointer_helper<_Tp*> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_pointer 8036: : public __is_pointer_helper::type>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_lvalue_reference 8036: : public false_type { }; 8036: 8036: template 8036: struct is_lvalue_reference<_Tp&> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_rvalue_reference 8036: : public false_type { }; 8036: 8036: template 8036: struct is_rvalue_reference<_Tp&&> 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function; 8036: 8036: template 8036: struct __is_member_object_pointer_helper 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_member_object_pointer_helper<_Tp _Cp::*> 8036: : public integral_constant::value> { }; 8036: 8036: 8036: template 8036: struct is_member_object_pointer 8036: : public __is_member_object_pointer_helper< 8036: typename remove_cv<_Tp>::type>::type 8036: { }; 8036: 8036: template 8036: struct __is_member_function_pointer_helper 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_member_function_pointer_helper<_Tp _Cp::*> 8036: : public integral_constant::value> { }; 8036: 8036: 8036: template 8036: struct is_member_function_pointer 8036: : public __is_member_function_pointer_helper< 8036: typename remove_cv<_Tp>::type>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_enum 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_union 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_class 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_function 8036: : public false_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) volatile > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) volatile & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) volatile && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) volatile > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) volatile & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) volatile && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const volatile > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const volatile & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes...) const volatile && > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const volatile > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const volatile & > 8036: : public true_type { }; 8036: 8036: template 8036: struct is_function<_Res(_ArgTypes......) const volatile && > 8036: : public true_type { }; 8036: 8036: 8036: 8036: template 8036: struct __is_null_pointer_helper 8036: : public false_type { }; 8036: 8036: template<> 8036: struct __is_null_pointer_helper 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_null_pointer 8036: : public __is_null_pointer_helper::type>::type 8036: { }; 8036: 8036: 8036: template 8036: struct __is_nullptr_t 8036: : public is_null_pointer<_Tp> 8036: { }; 8036: 8036: 8036: 8036: 8036: template 8036: struct is_reference 8036: : public __or_, 8036: is_rvalue_reference<_Tp>>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_arithmetic 8036: : public __or_, is_floating_point<_Tp>>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_fundamental 8036: : public __or_, is_void<_Tp>, 8036: is_null_pointer<_Tp>>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_object 8036: : public __not_<__or_, is_reference<_Tp>, 8036: is_void<_Tp>>>::type 8036: { }; 8036: 8036: template 8036: struct is_member_pointer; 8036: 8036: 8036: template 8036: struct is_scalar 8036: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 8036: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_compound 8036: : public integral_constant::value> { }; 8036: 8036: template 8036: struct __is_member_pointer_helper 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_member_pointer_helper<_Tp _Cp::*> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_member_pointer 8036: : public __is_member_pointer_helper::type>::type 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct __is_referenceable 8036: : public __or_, is_reference<_Tp>>::type 8036: { }; 8036: 8036: template 8036: struct __is_referenceable<_Res(_Args...) > 8036: : public true_type 8036: { }; 8036: 8036: template 8036: struct __is_referenceable<_Res(_Args......) > 8036: : public true_type 8036: { }; 8036: 8036: 8036: 8036: 8036: template 8036: struct is_const 8036: : public false_type { }; 8036: 8036: template 8036: struct is_const<_Tp const> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_volatile 8036: : public false_type { }; 8036: 8036: template 8036: struct is_volatile<_Tp volatile> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_trivial 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_trivially_copyable 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_standard_layout 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct is_pod 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_literal_type 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_empty 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_polymorphic 8036: : public integral_constant 8036: { }; 8036: # 724 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct is_abstract 8036: : public integral_constant 8036: { }; 8036: 8036: template::value> 8036: struct __is_signed_helper 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_signed_helper<_Tp, true> 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct is_signed 8036: : public __is_signed_helper<_Tp>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_unsigned 8036: : public __and_, __not_>> 8036: { }; 8036: # 759 "/usr/include/c++/8/type_traits" 3 8036: template 8036: _Up 8036: __declval(int); 8036: 8036: template 8036: _Tp 8036: __declval(long); 8036: 8036: template 8036: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 8036: 8036: template 8036: struct extent; 8036: 8036: template 8036: struct remove_all_extents; 8036: 8036: template 8036: struct __is_array_known_bounds 8036: : public integral_constant::value > 0)> 8036: { }; 8036: 8036: template 8036: struct __is_array_unknown_bounds 8036: : public __and_, __not_>> 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct __do_is_destructible_impl 8036: { 8036: template().~_Tp())> 8036: static true_type __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: template 8036: struct __is_destructible_impl 8036: : public __do_is_destructible_impl 8036: { 8036: typedef decltype(__test<_Tp>(0)) type; 8036: }; 8036: 8036: template, 8036: __is_array_unknown_bounds<_Tp>, 8036: is_function<_Tp>>::value, 8036: bool = __or_, is_scalar<_Tp>>::value> 8036: struct __is_destructible_safe; 8036: 8036: template 8036: struct __is_destructible_safe<_Tp, false, false> 8036: : public __is_destructible_impl::type>::type 8036: { }; 8036: 8036: template 8036: struct __is_destructible_safe<_Tp, true, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_destructible_safe<_Tp, false, true> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_destructible 8036: : public __is_destructible_safe<_Tp>::type 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: struct __do_is_nt_destructible_impl 8036: { 8036: template 8036: static integral_constant().~_Tp())> 8036: __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: template 8036: struct __is_nt_destructible_impl 8036: : public __do_is_nt_destructible_impl 8036: { 8036: typedef decltype(__test<_Tp>(0)) type; 8036: }; 8036: 8036: template, 8036: __is_array_unknown_bounds<_Tp>, 8036: is_function<_Tp>>::value, 8036: bool = __or_, is_scalar<_Tp>>::value> 8036: struct __is_nt_destructible_safe; 8036: 8036: template 8036: struct __is_nt_destructible_safe<_Tp, false, false> 8036: : public __is_nt_destructible_impl::type>::type 8036: { }; 8036: 8036: template 8036: struct __is_nt_destructible_safe<_Tp, true, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_nt_destructible_safe<_Tp, false, true> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_nothrow_destructible 8036: : public __is_nt_destructible_safe<_Tp>::type 8036: { }; 8036: 8036: struct __do_is_default_constructible_impl 8036: { 8036: template 8036: static true_type __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: template 8036: struct __is_default_constructible_impl 8036: : public __do_is_default_constructible_impl 8036: { 8036: typedef decltype(__test<_Tp>(0)) type; 8036: }; 8036: 8036: template 8036: struct __is_default_constructible_atom 8036: : public __and_<__not_>, 8036: __is_default_constructible_impl<_Tp>> 8036: { }; 8036: 8036: template::value> 8036: struct __is_default_constructible_safe; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_default_constructible_safe<_Tp, true> 8036: : public __and_<__is_array_known_bounds<_Tp>, 8036: __is_default_constructible_atom::type>> 8036: { }; 8036: 8036: template 8036: struct __is_default_constructible_safe<_Tp, false> 8036: : public __is_default_constructible_atom<_Tp>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_default_constructible 8036: : public __is_default_constructible_safe<_Tp>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_constructible 8036: : public __bool_constant<__is_constructible(_Tp, _Args...)> 8036: { }; 8036: 8036: template::value> 8036: struct __is_copy_constructible_impl; 8036: 8036: template 8036: struct __is_copy_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_copy_constructible_impl<_Tp, true> 8036: : public is_constructible<_Tp, const _Tp&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_copy_constructible 8036: : public __is_copy_constructible_impl<_Tp> 8036: { }; 8036: 8036: template::value> 8036: struct __is_move_constructible_impl; 8036: 8036: template 8036: struct __is_move_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_move_constructible_impl<_Tp, true> 8036: : public is_constructible<_Tp, _Tp&&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_move_constructible 8036: : public __is_move_constructible_impl<_Tp> 8036: { }; 8036: 8036: template 8036: struct __is_nt_default_constructible_atom 8036: : public integral_constant 8036: { }; 8036: 8036: template::value> 8036: struct __is_nt_default_constructible_impl; 8036: 8036: template 8036: struct __is_nt_default_constructible_impl<_Tp, true> 8036: : public __and_<__is_array_known_bounds<_Tp>, 8036: __is_nt_default_constructible_atom::type>> 8036: { }; 8036: 8036: template 8036: struct __is_nt_default_constructible_impl<_Tp, false> 8036: : public __is_nt_default_constructible_atom<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_default_constructible 8036: : public __and_, 8036: __is_nt_default_constructible_impl<_Tp>> 8036: { }; 8036: 8036: template 8036: struct __is_nt_constructible_impl 8036: : public integral_constant()...))> 8036: { }; 8036: 8036: template 8036: struct __is_nt_constructible_impl<_Tp, _Arg> 8036: : public integral_constant(declval<_Arg>()))> 8036: { }; 8036: 8036: template 8036: struct __is_nt_constructible_impl<_Tp> 8036: : public is_nothrow_default_constructible<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_constructible 8036: : public __and_, 8036: __is_nt_constructible_impl<_Tp, _Args...>> 8036: { }; 8036: 8036: template::value> 8036: struct __is_nothrow_copy_constructible_impl; 8036: 8036: template 8036: struct __is_nothrow_copy_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_nothrow_copy_constructible_impl<_Tp, true> 8036: : public is_nothrow_constructible<_Tp, const _Tp&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_copy_constructible 8036: : public __is_nothrow_copy_constructible_impl<_Tp> 8036: { }; 8036: 8036: template::value> 8036: struct __is_nothrow_move_constructible_impl; 8036: 8036: template 8036: struct __is_nothrow_move_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_nothrow_move_constructible_impl<_Tp, true> 8036: : public is_nothrow_constructible<_Tp, _Tp&&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_move_constructible 8036: : public __is_nothrow_move_constructible_impl<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_assignable 8036: : public __bool_constant<__is_assignable(_Tp, _Up)> 8036: { }; 8036: 8036: template::value> 8036: struct __is_copy_assignable_impl; 8036: 8036: template 8036: struct __is_copy_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_copy_assignable_impl<_Tp, true> 8036: : public is_assignable<_Tp&, const _Tp&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_copy_assignable 8036: : public __is_copy_assignable_impl<_Tp> 8036: { }; 8036: 8036: template::value> 8036: struct __is_move_assignable_impl; 8036: 8036: template 8036: struct __is_move_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_move_assignable_impl<_Tp, true> 8036: : public is_assignable<_Tp&, _Tp&&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_move_assignable 8036: : public __is_move_assignable_impl<_Tp> 8036: { }; 8036: 8036: template 8036: struct __is_nt_assignable_impl 8036: : public integral_constant() = declval<_Up>())> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_assignable 8036: : public __and_, 8036: __is_nt_assignable_impl<_Tp, _Up>> 8036: { }; 8036: 8036: template::value> 8036: struct __is_nt_copy_assignable_impl; 8036: 8036: template 8036: struct __is_nt_copy_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_nt_copy_assignable_impl<_Tp, true> 8036: : public is_nothrow_assignable<_Tp&, const _Tp&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_copy_assignable 8036: : public __is_nt_copy_assignable_impl<_Tp> 8036: { }; 8036: 8036: template::value> 8036: struct __is_nt_move_assignable_impl; 8036: 8036: template 8036: struct __is_nt_move_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_nt_move_assignable_impl<_Tp, true> 8036: : public is_nothrow_assignable<_Tp&, _Tp&&> 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_move_assignable 8036: : public __is_nt_move_assignable_impl<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_trivially_constructible 8036: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 8036: { }; 8036: 8036: 8036: template 8036: struct is_trivially_default_constructible 8036: : public is_trivially_constructible<_Tp>::type 8036: { }; 8036: 8036: struct __do_is_implicitly_default_constructible_impl 8036: { 8036: template 8036: static void __helper(const _Tp&); 8036: 8036: template 8036: static true_type __test(const _Tp&, 8036: decltype(__helper({}))* = 0); 8036: 8036: static false_type __test(...); 8036: }; 8036: 8036: template 8036: struct __is_implicitly_default_constructible_impl 8036: : public __do_is_implicitly_default_constructible_impl 8036: { 8036: typedef decltype(__test(declval<_Tp>())) type; 8036: }; 8036: 8036: template 8036: struct __is_implicitly_default_constructible_safe 8036: : public __is_implicitly_default_constructible_impl<_Tp>::type 8036: { }; 8036: 8036: template 8036: struct __is_implicitly_default_constructible 8036: : public __and_, 8036: __is_implicitly_default_constructible_safe<_Tp>> 8036: { }; 8036: 8036: 8036: 8036: template::value> 8036: struct __is_trivially_copy_constructible_impl; 8036: 8036: template 8036: struct __is_trivially_copy_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_trivially_copy_constructible_impl<_Tp, true> 8036: : public __and_, 8036: integral_constant> 8036: { }; 8036: 8036: template 8036: struct is_trivially_copy_constructible 8036: : public __is_trivially_copy_constructible_impl<_Tp> 8036: { }; 8036: 8036: 8036: 8036: template::value> 8036: struct __is_trivially_move_constructible_impl; 8036: 8036: template 8036: struct __is_trivially_move_constructible_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_trivially_move_constructible_impl<_Tp, true> 8036: : public __and_, 8036: integral_constant> 8036: { }; 8036: 8036: template 8036: struct is_trivially_move_constructible 8036: : public __is_trivially_move_constructible_impl<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_trivially_assignable 8036: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 8036: { }; 8036: 8036: 8036: 8036: template::value> 8036: struct __is_trivially_copy_assignable_impl; 8036: 8036: template 8036: struct __is_trivially_copy_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_trivially_copy_assignable_impl<_Tp, true> 8036: : public __and_, 8036: integral_constant> 8036: { }; 8036: 8036: template 8036: struct is_trivially_copy_assignable 8036: : public __is_trivially_copy_assignable_impl<_Tp> 8036: { }; 8036: 8036: 8036: 8036: template::value> 8036: struct __is_trivially_move_assignable_impl; 8036: 8036: template 8036: struct __is_trivially_move_assignable_impl<_Tp, false> 8036: : public false_type { }; 8036: 8036: template 8036: struct __is_trivially_move_assignable_impl<_Tp, true> 8036: : public __and_, 8036: integral_constant> 8036: { }; 8036: 8036: template 8036: struct is_trivially_move_assignable 8036: : public __is_trivially_move_assignable_impl<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct is_trivially_destructible 8036: : public __and_, integral_constant> 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct has_virtual_destructor 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct alignment_of 8036: : public integral_constant { }; 8036: 8036: 8036: template 8036: struct rank 8036: : public integral_constant { }; 8036: 8036: template 8036: struct rank<_Tp[_Size]> 8036: : public integral_constant::value> { }; 8036: 8036: template 8036: struct rank<_Tp[]> 8036: : public integral_constant::value> { }; 8036: 8036: 8036: template 8036: struct extent 8036: : public integral_constant { }; 8036: 8036: template 8036: struct extent<_Tp[_Size], _Uint> 8036: : public integral_constant::value> 8036: { }; 8036: 8036: template 8036: struct extent<_Tp[], _Uint> 8036: : public integral_constant::value> 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_same 8036: : public false_type { }; 8036: 8036: template 8036: struct is_same<_Tp, _Tp> 8036: : public true_type { }; 8036: 8036: 8036: template 8036: struct is_base_of 8036: : public integral_constant 8036: { }; 8036: 8036: template, is_function<_To>, 8036: is_array<_To>>::value> 8036: struct __is_convertible_helper 8036: { typedef typename is_void<_To>::type type; }; 8036: 8036: template 8036: class __is_convertible_helper<_From, _To, false> 8036: { 8036: template 8036: static void __test_aux(_To1); 8036: 8036: template(std::declval<_From1>()))> 8036: static true_type 8036: __test(int); 8036: 8036: template 8036: static false_type 8036: __test(...); 8036: 8036: public: 8036: typedef decltype(__test<_From, _To>(0)) type; 8036: }; 8036: 8036: 8036: 8036: template 8036: struct is_convertible 8036: : public __is_convertible_helper<_From, _To>::type 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct remove_const 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_const<_Tp const> 8036: { typedef _Tp type; }; 8036: 8036: 8036: template 8036: struct remove_volatile 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_volatile<_Tp volatile> 8036: { typedef _Tp type; }; 8036: 8036: 8036: template 8036: struct remove_cv 8036: { 8036: typedef typename 8036: remove_const::type>::type type; 8036: }; 8036: 8036: 8036: template 8036: struct add_const 8036: { typedef _Tp const type; }; 8036: 8036: 8036: template 8036: struct add_volatile 8036: { typedef _Tp volatile type; }; 8036: 8036: 8036: template 8036: struct add_cv 8036: { 8036: typedef typename 8036: add_const::type>::type type; 8036: }; 8036: # 1463 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct remove_reference 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_reference<_Tp&> 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_reference<_Tp&&> 8036: { typedef _Tp type; }; 8036: 8036: template::value> 8036: struct __add_lvalue_reference_helper 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct __add_lvalue_reference_helper<_Tp, true> 8036: { typedef _Tp& type; }; 8036: 8036: 8036: template 8036: struct add_lvalue_reference 8036: : public __add_lvalue_reference_helper<_Tp> 8036: { }; 8036: 8036: template::value> 8036: struct __add_rvalue_reference_helper 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct __add_rvalue_reference_helper<_Tp, true> 8036: { typedef _Tp&& type; }; 8036: 8036: 8036: template 8036: struct add_rvalue_reference 8036: : public __add_rvalue_reference_helper<_Tp> 8036: { }; 8036: # 1520 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __cv_selector; 8036: 8036: template 8036: struct __cv_selector<_Unqualified, false, false> 8036: { typedef _Unqualified __type; }; 8036: 8036: template 8036: struct __cv_selector<_Unqualified, false, true> 8036: { typedef volatile _Unqualified __type; }; 8036: 8036: template 8036: struct __cv_selector<_Unqualified, true, false> 8036: { typedef const _Unqualified __type; }; 8036: 8036: template 8036: struct __cv_selector<_Unqualified, true, true> 8036: { typedef const volatile _Unqualified __type; }; 8036: 8036: template::value, 8036: bool _IsVol = is_volatile<_Qualified>::value> 8036: class __match_cv_qualifiers 8036: { 8036: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 8036: 8036: public: 8036: typedef typename __match::__type __type; 8036: }; 8036: 8036: 8036: template 8036: struct __make_unsigned 8036: { typedef _Tp __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned char __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned char __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned short __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned int __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned long __type; }; 8036: 8036: template<> 8036: struct __make_unsigned 8036: { typedef unsigned long long __type; }; 8036: 8036: 8036: template<> 8036: struct __make_unsigned : __make_unsigned 8036: { }; 8036: 8036: 8036: 8036: template<> 8036: struct __make_unsigned<__int128> 8036: { typedef unsigned __int128 __type; }; 8036: # 1607 "/usr/include/c++/8/type_traits" 3 8036: template::value, 8036: bool _IsEnum = is_enum<_Tp>::value> 8036: class __make_unsigned_selector; 8036: 8036: template 8036: class __make_unsigned_selector<_Tp, true, false> 8036: { 8036: typedef __make_unsigned::type> __unsignedt; 8036: typedef typename __unsignedt::__type __unsigned_type; 8036: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8036: 8036: public: 8036: typedef typename __cv_unsigned::__type __type; 8036: }; 8036: 8036: template 8036: class __make_unsigned_selector<_Tp, false, true> 8036: { 8036: 8036: typedef unsigned char __smallest; 8036: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 8036: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 8036: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 8036: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 8036: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 8036: typedef typename __cond3::type __cond3_type; 8036: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 8036: typedef typename __cond2::type __cond2_type; 8036: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 8036: typedef typename __cond1::type __cond1_type; 8036: 8036: typedef typename conditional<__b0, __smallest, __cond1_type>::type 8036: __unsigned_type; 8036: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8036: 8036: public: 8036: typedef typename __cv_unsigned::__type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct make_unsigned 8036: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 8036: 8036: 8036: template<> 8036: struct make_unsigned; 8036: 8036: 8036: 8036: template 8036: struct __make_signed 8036: { typedef _Tp __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed char __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed char __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed short __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed int __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed long __type; }; 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef signed long long __type; }; 8036: # 1696 "/usr/include/c++/8/type_traits" 3 8036: template<> 8036: struct __make_signed : __make_signed 8036: { }; 8036: template<> 8036: struct __make_signed : __make_signed 8036: { }; 8036: 8036: 8036: 8036: template<> 8036: struct __make_signed 8036: { typedef __int128 __type; }; 8036: # 1726 "/usr/include/c++/8/type_traits" 3 8036: template::value, 8036: bool _IsEnum = is_enum<_Tp>::value> 8036: class __make_signed_selector; 8036: 8036: template 8036: class __make_signed_selector<_Tp, true, false> 8036: { 8036: typedef __make_signed::type> __signedt; 8036: typedef typename __signedt::__type __signed_type; 8036: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 8036: 8036: public: 8036: typedef typename __cv_signed::__type __type; 8036: }; 8036: 8036: template 8036: class __make_signed_selector<_Tp, false, true> 8036: { 8036: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 8036: 8036: public: 8036: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct make_signed 8036: { typedef typename __make_signed_selector<_Tp>::__type type; }; 8036: 8036: 8036: template<> 8036: struct make_signed; 8036: # 1776 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct remove_extent 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_extent<_Tp[_Size]> 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_extent<_Tp[]> 8036: { typedef _Tp type; }; 8036: 8036: 8036: template 8036: struct remove_all_extents 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct remove_all_extents<_Tp[_Size]> 8036: { typedef typename remove_all_extents<_Tp>::type type; }; 8036: 8036: template 8036: struct remove_all_extents<_Tp[]> 8036: { typedef typename remove_all_extents<_Tp>::type type; }; 8036: # 1813 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __remove_pointer_helper 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct __remove_pointer_helper<_Tp, _Up*> 8036: { typedef _Up type; }; 8036: 8036: 8036: template 8036: struct remove_pointer 8036: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8036: { }; 8036: 8036: 8036: template, 8036: is_void<_Tp>>::value> 8036: struct __add_pointer_helper 8036: { typedef _Tp type; }; 8036: 8036: template 8036: struct __add_pointer_helper<_Tp, true> 8036: { typedef typename remove_reference<_Tp>::type* type; }; 8036: 8036: template 8036: struct add_pointer 8036: : public __add_pointer_helper<_Tp> 8036: { }; 8036: # 1852 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __aligned_storage_msa 8036: { 8036: union __type 8036: { 8036: unsigned char __data[_Len]; 8036: struct __attribute__((__aligned__)) { } __align; 8036: }; 8036: }; 8036: # 1872 "/usr/include/c++/8/type_traits" 3 8036: template::__type)> 8036: struct aligned_storage 8036: { 8036: union type 8036: { 8036: unsigned char __data[_Len]; 8036: struct __attribute__((__aligned__((_Align)))) { } __align; 8036: }; 8036: }; 8036: 8036: template 8036: struct __strictest_alignment 8036: { 8036: static const size_t _S_alignment = 0; 8036: static const size_t _S_size = 0; 8036: }; 8036: 8036: template 8036: struct __strictest_alignment<_Tp, _Types...> 8036: { 8036: static const size_t _S_alignment = 8036: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 8036: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 8036: static const size_t _S_size = 8036: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 8036: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 8036: }; 8036: # 1911 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct aligned_union 8036: { 8036: private: 8036: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 8036: 8036: using __strictest = __strictest_alignment<_Types...>; 8036: static const size_t _S_len = _Len > __strictest::_S_size 8036: ? _Len : __strictest::_S_size; 8036: public: 8036: 8036: static const size_t alignment_value = __strictest::_S_alignment; 8036: 8036: typedef typename aligned_storage<_S_len, alignment_value>::type type; 8036: }; 8036: 8036: template 8036: const size_t aligned_union<_Len, _Types...>::alignment_value; 8036: 8036: 8036: 8036: template::value, 8036: bool _IsFunction = is_function<_Up>::value> 8036: struct __decay_selector; 8036: 8036: 8036: template 8036: struct __decay_selector<_Up, false, false> 8036: { typedef typename remove_cv<_Up>::type __type; }; 8036: 8036: template 8036: struct __decay_selector<_Up, true, false> 8036: { typedef typename remove_extent<_Up>::type* __type; }; 8036: 8036: template 8036: struct __decay_selector<_Up, false, true> 8036: { typedef typename add_pointer<_Up>::type __type; }; 8036: 8036: 8036: template 8036: class decay 8036: { 8036: typedef typename remove_reference<_Tp>::type __remove_type; 8036: 8036: public: 8036: typedef typename __decay_selector<__remove_type>::__type type; 8036: }; 8036: 8036: template 8036: class reference_wrapper; 8036: 8036: 8036: template 8036: struct __strip_reference_wrapper 8036: { 8036: typedef _Tp __type; 8036: }; 8036: 8036: template 8036: struct __strip_reference_wrapper > 8036: { 8036: typedef _Tp& __type; 8036: }; 8036: 8036: template 8036: struct __decay_and_strip 8036: { 8036: typedef typename __strip_reference_wrapper< 8036: typename decay<_Tp>::type>::__type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct enable_if 8036: { }; 8036: 8036: 8036: template 8036: struct enable_if 8036: { typedef _Tp type; }; 8036: 8036: template 8036: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 8036: 8036: 8036: 8036: template 8036: struct conditional 8036: { typedef _Iftrue type; }; 8036: 8036: 8036: template 8036: struct conditional 8036: { typedef _Iffalse type; }; 8036: 8036: 8036: template 8036: struct common_type; 8036: 8036: 8036: 8036: struct __do_common_type_impl 8036: { 8036: template 8036: static __success_type() 8036: : std::declval<_Up>())>::type> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __common_type_impl 8036: : private __do_common_type_impl 8036: { 8036: typedef decltype(_S_test<_Tp, _Up>(0)) type; 8036: }; 8036: 8036: struct __do_member_type_wrapper 8036: { 8036: template 8036: static __success_type _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __member_type_wrapper 8036: : private __do_member_type_wrapper 8036: { 8036: typedef decltype(_S_test<_Tp>(0)) type; 8036: }; 8036: 8036: template 8036: struct __expanded_common_type_wrapper 8036: { 8036: typedef common_type type; 8036: }; 8036: 8036: template 8036: struct __expanded_common_type_wrapper<__failure_type, _Args...> 8036: { typedef __failure_type type; }; 8036: 8036: template 8036: struct common_type<_Tp> 8036: { typedef typename decay<_Tp>::type type; }; 8036: 8036: template 8036: struct common_type<_Tp, _Up> 8036: : public __common_type_impl<_Tp, _Up>::type 8036: { }; 8036: 8036: template 8036: struct common_type<_Tp, _Up, _Vp...> 8036: : public __expanded_common_type_wrapper>::type, _Vp...>::type 8036: { }; 8036: 8036: 8036: template 8036: struct underlying_type 8036: { 8036: typedef __underlying_type(_Tp) type; 8036: }; 8036: 8036: template 8036: struct __declval_protector 8036: { 8036: static const bool __stop = false; 8036: }; 8036: 8036: template 8036: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 8036: { 8036: static_assert(__declval_protector<_Tp>::__stop, 8036: "declval() must not be used!"); 8036: return __declval<_Tp>(0); 8036: } 8036: 8036: 8036: template 8036: class result_of; 8036: 8036: 8036: 8036: 8036: 8036: struct __invoke_memfun_ref { }; 8036: struct __invoke_memfun_deref { }; 8036: struct __invoke_memobj_ref { }; 8036: struct __invoke_memobj_deref { }; 8036: struct __invoke_other { }; 8036: 8036: 8036: template 8036: struct __result_of_success : __success_type<_Tp> 8036: { using __invoke_type = _Tag; }; 8036: 8036: 8036: struct __result_of_memfun_ref_impl 8036: { 8036: template 8036: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 8036: ), __invoke_memfun_ref> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __result_of_memfun_ref 8036: : private __result_of_memfun_ref_impl 8036: { 8036: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8036: }; 8036: 8036: 8036: struct __result_of_memfun_deref_impl 8036: { 8036: template 8036: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 8036: ), __invoke_memfun_deref> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __result_of_memfun_deref 8036: : private __result_of_memfun_deref_impl 8036: { 8036: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8036: }; 8036: 8036: 8036: struct __result_of_memobj_ref_impl 8036: { 8036: template 8036: static __result_of_success().*std::declval<_Fp>() 8036: ), __invoke_memobj_ref> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __result_of_memobj_ref 8036: : private __result_of_memobj_ref_impl 8036: { 8036: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8036: }; 8036: 8036: 8036: struct __result_of_memobj_deref_impl 8036: { 8036: template 8036: static __result_of_success()).*std::declval<_Fp>() 8036: ), __invoke_memobj_deref> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __result_of_memobj_deref 8036: : private __result_of_memobj_deref_impl 8036: { 8036: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8036: }; 8036: 8036: template 8036: struct __result_of_memobj; 8036: 8036: template 8036: struct __result_of_memobj<_Res _Class::*, _Arg> 8036: { 8036: typedef typename remove_cv::type>::type _Argval; 8036: typedef _Res _Class::* _MemPtr; 8036: typedef typename conditional<__or_, 8036: is_base_of<_Class, _Argval>>::value, 8036: __result_of_memobj_ref<_MemPtr, _Arg>, 8036: __result_of_memobj_deref<_MemPtr, _Arg> 8036: >::type::type type; 8036: }; 8036: 8036: template 8036: struct __result_of_memfun; 8036: 8036: template 8036: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 8036: { 8036: typedef typename remove_cv::type>::type _Argval; 8036: typedef _Res _Class::* _MemPtr; 8036: typedef typename conditional<__or_, 8036: is_base_of<_Class, _Argval>>::value, 8036: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 8036: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 8036: >::type::type type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template::type> 8036: struct __inv_unwrap 8036: { 8036: using type = _Tp; 8036: }; 8036: 8036: template 8036: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 8036: { 8036: using type = _Up&; 8036: }; 8036: 8036: template 8036: struct __result_of_impl 8036: { 8036: typedef __failure_type type; 8036: }; 8036: 8036: template 8036: struct __result_of_impl 8036: : public __result_of_memobj::type, 8036: typename __inv_unwrap<_Arg>::type> 8036: { }; 8036: 8036: template 8036: struct __result_of_impl 8036: : public __result_of_memfun::type, 8036: typename __inv_unwrap<_Arg>::type, _Args...> 8036: { }; 8036: 8036: 8036: struct __result_of_other_impl 8036: { 8036: template 8036: static __result_of_success()(std::declval<_Args>()...) 8036: ), __invoke_other> _S_test(int); 8036: 8036: template 8036: static __failure_type _S_test(...); 8036: }; 8036: 8036: template 8036: struct __result_of_impl 8036: : private __result_of_other_impl 8036: { 8036: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 8036: }; 8036: 8036: 8036: template 8036: struct __invoke_result 8036: : public __result_of_impl< 8036: is_member_object_pointer< 8036: typename remove_reference<_Functor>::type 8036: >::value, 8036: is_member_function_pointer< 8036: typename remove_reference<_Functor>::type 8036: >::value, 8036: _Functor, _ArgTypes... 8036: >::type 8036: { }; 8036: 8036: template 8036: struct result_of<_Functor(_ArgTypes...)> 8036: : public __invoke_result<_Functor, _ArgTypes...> 8036: { }; 8036: # 2329 "/usr/include/c++/8/type_traits" 3 8036: template using __void_t = void; 8036: 8036: 8036: 8036: 8036: template using void_t = void; 8036: 8036: 8036: 8036: template class _Op, typename... _Args> 8036: struct __detector 8036: { 8036: using value_t = false_type; 8036: using type = _Default; 8036: }; 8036: 8036: 8036: template class _Op, 8036: typename... _Args> 8036: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 8036: { 8036: using value_t = true_type; 8036: using type = _Op<_Args...>; 8036: }; 8036: 8036: 8036: template class _Op, 8036: typename... _Args> 8036: using __detected_or = __detector<_Default, void, _Op, _Args...>; 8036: 8036: 8036: template class _Op, 8036: typename... _Args> 8036: using __detected_or_t 8036: = typename __detected_or<_Default, _Op, _Args...>::type; 8036: # 2382 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __is_swappable; 8036: 8036: template 8036: struct __is_nothrow_swappable; 8036: 8036: template 8036: class tuple; 8036: 8036: template 8036: struct __is_tuple_like_impl : false_type 8036: { }; 8036: 8036: template 8036: struct __is_tuple_like_impl> : true_type 8036: { }; 8036: 8036: 8036: template 8036: struct __is_tuple_like 8036: : public __is_tuple_like_impl::type>::type>::type 8036: { }; 8036: 8036: template 8036: inline 8036: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8036: is_move_constructible<_Tp>, 8036: is_move_assignable<_Tp>>::value>::type 8036: swap(_Tp&, _Tp&) 8036: noexcept(__and_, 8036: is_nothrow_move_assignable<_Tp>>::value); 8036: 8036: template 8036: inline 8036: typename enable_if<__is_swappable<_Tp>::value>::type 8036: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8036: noexcept(__is_nothrow_swappable<_Tp>::value); 8036: 8036: namespace __swappable_details { 8036: using std::swap; 8036: 8036: struct __do_is_swappable_impl 8036: { 8036: template(), std::declval<_Tp&>()))> 8036: static true_type __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: struct __do_is_nothrow_swappable_impl 8036: { 8036: template 8036: static __bool_constant< 8036: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 8036: > __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: } 8036: 8036: template 8036: struct __is_swappable_impl 8036: : public __swappable_details::__do_is_swappable_impl 8036: { 8036: typedef decltype(__test<_Tp>(0)) type; 8036: }; 8036: 8036: template 8036: struct __is_nothrow_swappable_impl 8036: : public __swappable_details::__do_is_nothrow_swappable_impl 8036: { 8036: typedef decltype(__test<_Tp>(0)) type; 8036: }; 8036: 8036: template 8036: struct __is_swappable 8036: : public __is_swappable_impl<_Tp>::type 8036: { }; 8036: 8036: template 8036: struct __is_nothrow_swappable 8036: : public __is_nothrow_swappable_impl<_Tp>::type 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_swappable 8036: : public __is_swappable_impl<_Tp>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_swappable 8036: : public __is_nothrow_swappable_impl<_Tp>::type 8036: { }; 8036: # 2499 "/usr/include/c++/8/type_traits" 3 8036: namespace __swappable_with_details { 8036: using std::swap; 8036: 8036: struct __do_is_swappable_with_impl 8036: { 8036: template(), std::declval<_Up>())), 8036: typename 8036: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 8036: static true_type __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: struct __do_is_nothrow_swappable_with_impl 8036: { 8036: template 8036: static __bool_constant< 8036: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 8036: && 8036: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 8036: > __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: }; 8036: 8036: } 8036: 8036: template 8036: struct __is_swappable_with_impl 8036: : public __swappable_with_details::__do_is_swappable_with_impl 8036: { 8036: typedef decltype(__test<_Tp, _Up>(0)) type; 8036: }; 8036: 8036: 8036: template 8036: struct __is_swappable_with_impl<_Tp&, _Tp&> 8036: : public __swappable_details::__do_is_swappable_impl 8036: { 8036: typedef decltype(__test<_Tp&>(0)) type; 8036: }; 8036: 8036: template 8036: struct __is_nothrow_swappable_with_impl 8036: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 8036: { 8036: typedef decltype(__test<_Tp, _Up>(0)) type; 8036: }; 8036: 8036: 8036: template 8036: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 8036: : public __swappable_details::__do_is_nothrow_swappable_impl 8036: { 8036: typedef decltype(__test<_Tp&>(0)) type; 8036: }; 8036: 8036: 8036: template 8036: struct is_swappable_with 8036: : public __is_swappable_with_impl<_Tp, _Up>::type 8036: { }; 8036: 8036: 8036: template 8036: struct is_nothrow_swappable_with 8036: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 8036: { }; 8036: # 2587 "/usr/include/c++/8/type_traits" 3 8036: template 8036: struct __is_invocable_impl : false_type { }; 8036: 8036: template 8036: struct __is_invocable_impl<_Result, _Ret, __void_t> 8036: : __or_, is_convertible>::type 8036: { }; 8036: 8036: template 8036: struct __is_invocable 8036: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 8036: { }; 8036: 8036: template 8036: constexpr bool __call_is_nt(__invoke_memfun_ref) 8036: { 8036: using _Up = typename __inv_unwrap<_Tp>::type; 8036: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 8036: std::declval<_Args>()...)); 8036: } 8036: 8036: template 8036: constexpr bool __call_is_nt(__invoke_memfun_deref) 8036: { 8036: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 8036: std::declval<_Args>()...)); 8036: } 8036: 8036: template 8036: constexpr bool __call_is_nt(__invoke_memobj_ref) 8036: { 8036: using _Up = typename __inv_unwrap<_Tp>::type; 8036: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 8036: } 8036: 8036: template 8036: constexpr bool __call_is_nt(__invoke_memobj_deref) 8036: { 8036: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 8036: } 8036: 8036: template 8036: constexpr bool __call_is_nt(__invoke_other) 8036: { 8036: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 8036: } 8036: 8036: template 8036: struct __call_is_nothrow 8036: : __bool_constant< 8036: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 8036: > 8036: { }; 8036: 8036: template 8036: using __call_is_nothrow_ 8036: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 8036: 8036: 8036: template 8036: struct __is_nothrow_invocable 8036: : __and_<__is_invocable<_Fn, _Args...>, 8036: __call_is_nothrow_<_Fn, _Args...>>::type 8036: { }; 8036: 8036: struct __nonesuch { 8036: __nonesuch() = delete; 8036: ~__nonesuch() = delete; 8036: __nonesuch(__nonesuch const&) = delete; 8036: void operator=(__nonesuch const&) = delete; 8036: }; 8036: # 2943 "/usr/include/c++/8/type_traits" 3 8036: 8036: } 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/c++/8/cstddef" 1 3 4 8036: # 42 "/usr/include/c++/8/cstddef" 3 4 8036: 8036: # 43 "/usr/include/c++/8/cstddef" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 149 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 3 4 8036: typedef long int ptrdiff_t; 8036: # 216 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 3 4 8036: typedef long unsigned int size_t; 8036: # 426 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 3 4 8036: typedef struct { 8036: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 8036: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 8036: # 437 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 3 4 8036: } max_align_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef decltype(nullptr) nullptr_t; 8036: # 51 "/usr/include/c++/8/cstddef" 2 3 8036: 8036: 8036: namespace std 8036: { 8036: 8036: using ::max_align_t; 8036: } 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/c++/8/utility" 1 3 4 8036: # 58 "/usr/include/c++/8/utility" 3 4 8036: 8036: # 59 "/usr/include/c++/8/utility" 3 8036: # 69 "/usr/include/c++/8/utility" 3 8036: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 8036: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: namespace rel_ops 8036: { 8036: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 8036: template 8036: inline bool 8036: operator!=(const _Tp& __x, const _Tp& __y) 8036: { return !(__x == __y); } 8036: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 8036: template 8036: inline bool 8036: operator>(const _Tp& __x, const _Tp& __y) 8036: { return __y < __x; } 8036: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 8036: template 8036: inline bool 8036: operator<=(const _Tp& __x, const _Tp& __y) 8036: { return !(__y < __x); } 8036: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 8036: template 8036: inline bool 8036: operator>=(const _Tp& __x, const _Tp& __y) 8036: { return !(__x < __y); } 8036: } 8036: 8036: 8036: } 8036: # 70 "/usr/include/c++/8/utility" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 8036: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: # 1 "/usr/include/c++/8/bits/move.h" 1 3 8036: # 34 "/usr/include/c++/8/bits/move.h" 3 8036: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 8036: # 35 "/usr/include/c++/8/bits/move.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline constexpr _Tp* 8036: __addressof(_Tp& __r) noexcept 8036: { return __builtin_addressof(__r); } 8036: 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 72 "/usr/include/c++/8/bits/move.h" 3 8036: template 8036: constexpr _Tp&& 8036: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 8036: { return static_cast<_Tp&&>(__t); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: constexpr _Tp&& 8036: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 8036: { 8036: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 8036: " substituting _Tp is an lvalue reference type"); 8036: return static_cast<_Tp&&>(__t); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: constexpr typename std::remove_reference<_Tp>::type&& 8036: move(_Tp&& __t) noexcept 8036: { return static_cast::type&&>(__t); } 8036: 8036: 8036: template 8036: struct __move_if_noexcept_cond 8036: : public __and_<__not_>, 8036: is_copy_constructible<_Tp>>::type { }; 8036: # 116 "/usr/include/c++/8/bits/move.h" 3 8036: template 8036: constexpr typename 8036: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 8036: move_if_noexcept(_Tp& __x) noexcept 8036: { return std::move(__x); } 8036: # 136 "/usr/include/c++/8/bits/move.h" 3 8036: template 8036: inline _Tp* 8036: addressof(_Tp& __r) noexcept 8036: { return std::__addressof(__r); } 8036: 8036: 8036: 8036: template 8036: const _Tp* addressof(const _Tp&&) = delete; 8036: 8036: 8036: template 8036: inline _Tp 8036: __exchange(_Tp& __obj, _Up&& __new_val) 8036: { 8036: _Tp __old_val = std::move(__obj); 8036: __obj = std::forward<_Up>(__new_val); 8036: return __old_val; 8036: } 8036: # 176 "/usr/include/c++/8/bits/move.h" 3 8036: template 8036: inline 8036: 8036: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8036: is_move_constructible<_Tp>, 8036: is_move_assignable<_Tp>>::value>::type 8036: swap(_Tp& __a, _Tp& __b) 8036: noexcept(__and_, 8036: is_nothrow_move_assignable<_Tp>>::value) 8036: 8036: 8036: 8036: 8036: { 8036: 8036: 8036: 8036: _Tp __tmp = std::move(__a); 8036: __a = std::move(__b); 8036: __b = std::move(__tmp); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline 8036: 8036: typename enable_if<__is_swappable<_Tp>::value>::type 8036: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8036: noexcept(__is_nothrow_swappable<_Tp>::value) 8036: 8036: 8036: 8036: 8036: { 8036: for (size_t __n = 0; __n < _Nm; ++__n) 8036: swap(__a[__n], __b[__n]); 8036: } 8036: 8036: 8036: 8036: } 8036: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 8036: 8036: 8036: constexpr piecewise_construct_t piecewise_construct = 8036: piecewise_construct_t(); 8036: 8036: 8036: template 8036: class tuple; 8036: 8036: template 8036: struct _Index_tuple; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _PCC 8036: { 8036: template 8036: static constexpr bool _ConstructiblePair() 8036: { 8036: return __and_, 8036: is_constructible<_T2, const _U2&>>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyConvertiblePair() 8036: { 8036: return __and_, 8036: is_convertible>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _MoveConstructiblePair() 8036: { 8036: return __and_, 8036: is_constructible<_T2, _U2&&>>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyMoveConvertiblePair() 8036: { 8036: return __and_, 8036: is_convertible<_U2&&, _T2>>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _CopyMovePair() 8036: { 8036: using __do_converts = __and_, 8036: is_convertible<_U2&&, _T2>>; 8036: using __converts = typename conditional<__implicit, 8036: __do_converts, 8036: __not_<__do_converts>>::type; 8036: return __and_, 8036: is_constructible<_T2, _U2&&>, 8036: __converts 8036: >::value; 8036: } 8036: 8036: template 8036: static constexpr bool _MoveCopyPair() 8036: { 8036: using __do_converts = __and_, 8036: is_convertible>; 8036: using __converts = typename conditional<__implicit, 8036: __do_converts, 8036: __not_<__do_converts>>::type; 8036: return __and_, 8036: is_constructible<_T2, const _U2&&>, 8036: __converts 8036: >::value; 8036: } 8036: }; 8036: 8036: template 8036: struct _PCC 8036: { 8036: template 8036: static constexpr bool _ConstructiblePair() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyConvertiblePair() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _MoveConstructiblePair() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyMoveConvertiblePair() 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: struct __nonesuch_no_braces : std::__nonesuch { 8036: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 8036: }; 8036: # 197 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: template 8036: struct pair 8036: { 8036: typedef _T1 first_type; 8036: typedef _T2 second_type; 8036: 8036: _T1 first; 8036: _T2 second; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template , 8036: __is_implicitly_default_constructible<_U2>> 8036: ::value, bool>::type = true> 8036: 8036: constexpr pair() 8036: : first(), second() { } 8036: 8036: 8036: template , 8036: is_default_constructible<_U2>, 8036: __not_< 8036: __and_<__is_implicitly_default_constructible<_U1>, 8036: __is_implicitly_default_constructible<_U2>>>> 8036: ::value, bool>::type = false> 8036: explicit constexpr pair() 8036: : first(), second() { } 8036: # 241 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: using _PCCP = _PCC; 8036: 8036: template() 8036: && _PCCP::template 8036: _ImplicitlyConvertiblePair<_U1, _U2>(), 8036: bool>::type=true> 8036: constexpr pair(const _T1& __a, const _T2& __b) 8036: : first(__a), second(__b) { } 8036: 8036: template() 8036: && !_PCCP::template 8036: _ImplicitlyConvertiblePair<_U1, _U2>(), 8036: bool>::type=false> 8036: explicit constexpr pair(const _T1& __a, const _T2& __b) 8036: : first(__a), second(__b) { } 8036: # 269 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: template 8036: using _PCCFP = _PCC::value 8036: || !is_same<_T2, _U2>::value, 8036: _T1, _T2>; 8036: 8036: template::template 8036: _ConstructiblePair<_U1, _U2>() 8036: && _PCCFP<_U1, _U2>::template 8036: _ImplicitlyConvertiblePair<_U1, _U2>(), 8036: bool>::type=true> 8036: constexpr pair(const pair<_U1, _U2>& __p) 8036: : first(__p.first), second(__p.second) { } 8036: 8036: template::template 8036: _ConstructiblePair<_U1, _U2>() 8036: && !_PCCFP<_U1, _U2>::template 8036: _ImplicitlyConvertiblePair<_U1, _U2>(), 8036: bool>::type=false> 8036: explicit constexpr pair(const pair<_U1, _U2>& __p) 8036: : first(__p.first), second(__p.second) { } 8036: 8036: constexpr pair(const pair&) = default; 8036: constexpr pair(pair&&) = default; 8036: 8036: 8036: template(), 8036: bool>::type=true> 8036: constexpr pair(_U1&& __x, const _T2& __y) 8036: : first(std::forward<_U1>(__x)), second(__y) { } 8036: 8036: template(), 8036: bool>::type=false> 8036: explicit constexpr pair(_U1&& __x, const _T2& __y) 8036: : first(std::forward<_U1>(__x)), second(__y) { } 8036: 8036: template(), 8036: bool>::type=true> 8036: constexpr pair(const _T1& __x, _U2&& __y) 8036: : first(__x), second(std::forward<_U2>(__y)) { } 8036: 8036: template(), 8036: bool>::type=false> 8036: explicit pair(const _T1& __x, _U2&& __y) 8036: : first(__x), second(std::forward<_U2>(__y)) { } 8036: 8036: template() 8036: && _PCCP::template 8036: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8036: bool>::type=true> 8036: constexpr pair(_U1&& __x, _U2&& __y) 8036: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8036: 8036: template() 8036: && !_PCCP::template 8036: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8036: bool>::type=false> 8036: explicit constexpr pair(_U1&& __x, _U2&& __y) 8036: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8036: 8036: 8036: template::template 8036: _MoveConstructiblePair<_U1, _U2>() 8036: && _PCCFP<_U1, _U2>::template 8036: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8036: bool>::type=true> 8036: constexpr pair(pair<_U1, _U2>&& __p) 8036: : first(std::forward<_U1>(__p.first)), 8036: second(std::forward<_U2>(__p.second)) { } 8036: 8036: template::template 8036: _MoveConstructiblePair<_U1, _U2>() 8036: && !_PCCFP<_U1, _U2>::template 8036: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8036: bool>::type=false> 8036: explicit constexpr pair(pair<_U1, _U2>&& __p) 8036: : first(std::forward<_U1>(__p.first)), 8036: second(std::forward<_U2>(__p.second)) { } 8036: 8036: template 8036: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 8036: 8036: pair& 8036: operator=(typename conditional< 8036: __and_, 8036: is_copy_assignable<_T2>>::value, 8036: const pair&, const __nonesuch_no_braces&>::type __p) 8036: { 8036: first = __p.first; 8036: second = __p.second; 8036: return *this; 8036: } 8036: 8036: pair& 8036: operator=(typename conditional< 8036: __not_<__and_, 8036: is_copy_assignable<_T2>>>::value, 8036: const pair&, const __nonesuch_no_braces&>::type __p) = delete; 8036: 8036: pair& 8036: operator=(typename conditional< 8036: __and_, 8036: is_move_assignable<_T2>>::value, 8036: pair&&, __nonesuch_no_braces&&>::type __p) 8036: noexcept(__and_, 8036: is_nothrow_move_assignable<_T2>>::value) 8036: { 8036: first = std::forward(__p.first); 8036: second = std::forward(__p.second); 8036: return *this; 8036: } 8036: 8036: template 8036: typename enable_if<__and_, 8036: is_assignable<_T2&, const _U2&>>::value, 8036: pair&>::type 8036: operator=(const pair<_U1, _U2>& __p) 8036: { 8036: first = __p.first; 8036: second = __p.second; 8036: return *this; 8036: } 8036: 8036: template 8036: typename enable_if<__and_, 8036: is_assignable<_T2&, _U2&&>>::value, 8036: pair&>::type 8036: operator=(pair<_U1, _U2>&& __p) 8036: { 8036: first = std::forward<_U1>(__p.first); 8036: second = std::forward<_U2>(__p.second); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(pair& __p) 8036: noexcept(__and_<__is_nothrow_swappable<_T1>, 8036: __is_nothrow_swappable<_T2>>::value) 8036: { 8036: using std::swap; 8036: swap(first, __p.first); 8036: swap(second, __p.second); 8036: } 8036: 8036: private: 8036: template 8036: pair(tuple<_Args1...>&, tuple<_Args2...>&, 8036: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return __x.first == __y.first && __x.second == __y.second; } 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return __x.first < __y.first 8036: || (!(__y.first < __x.first) && __x.second < __y.second); } 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return !(__x == __y); } 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return __y < __x; } 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return !(__y < __x); } 8036: 8036: 8036: template 8036: inline constexpr bool 8036: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline 8036: 8036: 8036: typename enable_if<__and_<__is_swappable<_T1>, 8036: __is_swappable<_T2>>::value>::type 8036: 8036: 8036: 8036: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: template 8036: typename enable_if, 8036: __is_swappable<_T2>>::value>::type 8036: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 8036: # 516 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: template 8036: constexpr pair::__type, 8036: typename __decay_and_strip<_T2>::__type> 8036: make_pair(_T1&& __x, _T2&& __y) 8036: { 8036: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 8036: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 8036: typedef pair<__ds_type1, __ds_type2> __pair_type; 8036: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 8036: } 8036: # 535 "/usr/include/c++/8/bits/stl_pair.h" 3 8036: 8036: } 8036: # 71 "/usr/include/c++/8/utility" 2 3 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/initializer_list" 1 3 8036: # 33 "/usr/include/c++/8/initializer_list" 3 8036: 8036: # 34 "/usr/include/c++/8/initializer_list" 3 8036: 8036: 8036: 8036: 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: 8036: 8036: namespace std 8036: { 8036: 8036: template 8036: class initializer_list 8036: { 8036: public: 8036: typedef _E value_type; 8036: typedef const _E& reference; 8036: typedef const _E& const_reference; 8036: typedef size_t size_type; 8036: typedef const _E* iterator; 8036: typedef const _E* const_iterator; 8036: 8036: private: 8036: iterator _M_array; 8036: size_type _M_len; 8036: 8036: 8036: constexpr initializer_list(const_iterator __a, size_type __l) 8036: : _M_array(__a), _M_len(__l) { } 8036: 8036: public: 8036: constexpr initializer_list() noexcept 8036: : _M_array(0), _M_len(0) { } 8036: 8036: 8036: constexpr size_type 8036: size() const noexcept { return _M_len; } 8036: 8036: 8036: constexpr const_iterator 8036: begin() const noexcept { return _M_array; } 8036: 8036: 8036: constexpr const_iterator 8036: end() const noexcept { return begin() + size(); } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: constexpr const _Tp* 8036: begin(initializer_list<_Tp> __ils) noexcept 8036: { return __ils.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: constexpr const _Tp* 8036: end(initializer_list<_Tp> __ils) noexcept 8036: { return __ils.end(); } 8036: } 8036: 8036: #pragma GCC visibility pop 8036: # 77 "/usr/include/c++/8/utility" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: struct tuple_size; 8036: 8036: 8036: 8036: 8036: 8036: template::type, 8036: typename = typename enable_if::value>::type, 8036: size_t = tuple_size<_Tp>::value> 8036: using __enable_if_has_tuple_size = _Tp; 8036: 8036: template 8036: struct tuple_size> 8036: : public tuple_size<_Tp> { }; 8036: 8036: template 8036: struct tuple_size> 8036: : public tuple_size<_Tp> { }; 8036: 8036: template 8036: struct tuple_size> 8036: : public tuple_size<_Tp> { }; 8036: 8036: 8036: template 8036: struct tuple_element; 8036: 8036: 8036: template 8036: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 8036: 8036: template 8036: struct tuple_element<__i, const _Tp> 8036: { 8036: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 8036: }; 8036: 8036: template 8036: struct tuple_element<__i, volatile _Tp> 8036: { 8036: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 8036: }; 8036: 8036: template 8036: struct tuple_element<__i, const volatile _Tp> 8036: { 8036: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 8036: }; 8036: # 148 "/usr/include/c++/8/utility" 3 8036: template 8036: struct __is_tuple_like_impl> : true_type 8036: { }; 8036: 8036: 8036: template 8036: struct tuple_size> 8036: : public integral_constant { }; 8036: 8036: 8036: template 8036: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 8036: { typedef _Tp1 type; }; 8036: 8036: 8036: template 8036: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 8036: { typedef _Tp2 type; }; 8036: 8036: template 8036: struct __pair_get; 8036: 8036: template<> 8036: struct __pair_get<0> 8036: { 8036: template 8036: static constexpr _Tp1& 8036: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8036: { return __pair.first; } 8036: 8036: template 8036: static constexpr _Tp1&& 8036: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8036: { return std::forward<_Tp1>(__pair.first); } 8036: 8036: template 8036: static constexpr const _Tp1& 8036: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8036: { return __pair.first; } 8036: 8036: template 8036: static constexpr const _Tp1&& 8036: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8036: { return std::forward(__pair.first); } 8036: }; 8036: 8036: template<> 8036: struct __pair_get<1> 8036: { 8036: template 8036: static constexpr _Tp2& 8036: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8036: { return __pair.second; } 8036: 8036: template 8036: static constexpr _Tp2&& 8036: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8036: { return std::forward<_Tp2>(__pair.second); } 8036: 8036: template 8036: static constexpr const _Tp2& 8036: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8036: { return __pair.second; } 8036: 8036: template 8036: static constexpr const _Tp2&& 8036: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8036: { return std::forward(__pair.second); } 8036: }; 8036: 8036: template 8036: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8036: get(std::pair<_Tp1, _Tp2>& __in) noexcept 8036: { return __pair_get<_Int>::__get(__in); } 8036: 8036: template 8036: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8036: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 8036: { return __pair_get<_Int>::__move_get(std::move(__in)); } 8036: 8036: template 8036: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8036: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 8036: { return __pair_get<_Int>::__const_get(__in); } 8036: 8036: template 8036: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8036: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 8036: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 8036: # 293 "/usr/include/c++/8/utility" 3 8036: template struct _Index_tuple { }; 8036: # 302 "/usr/include/c++/8/utility" 3 8036: template 8036: struct _Build_index_tuple 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: using __type = _Index_tuple<__integer_pack(_Num)...>; 8036: 8036: }; 8036: # 397 "/usr/include/c++/8/utility" 3 8036: 8036: } 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qconfig.h" 1 3 4 8036: # 65 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtcore-config.h" 1 3 4 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 96 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsystemdetection.h" 1 3 4 8036: # 97 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qprocessordetection.h" 1 3 4 8036: # 98 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcompilerdetection.h" 1 3 4 8036: # 99 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 109 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: # 1 "/usr/include/c++/8/algorithm" 1 3 4 8036: # 58 "/usr/include/c++/8/algorithm" 3 4 8036: 8036: # 59 "/usr/include/c++/8/algorithm" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 8036: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 8036: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 8036: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 8036: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: void 8036: __throw_bad_exception(void) __attribute__((__noreturn__)); 8036: 8036: 8036: void 8036: __throw_bad_alloc(void) __attribute__((__noreturn__)); 8036: 8036: 8036: void 8036: __throw_bad_cast(void) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_bad_typeid(void) __attribute__((__noreturn__)); 8036: 8036: 8036: void 8036: __throw_logic_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_domain_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_length_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 8036: __attribute__((__format__(__gnu_printf__, 1, 2))); 8036: 8036: void 8036: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_range_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 8036: 8036: 8036: void 8036: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_system_error(int) __attribute__((__noreturn__)); 8036: 8036: void 8036: __throw_future_error(int) __attribute__((__noreturn__)); 8036: 8036: 8036: void 8036: __throw_bad_function_call() __attribute__((__noreturn__)); 8036: 8036: 8036: } 8036: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 8036: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8036: 8036: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8036: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8036: extern "C++" { 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: struct __true_type { }; 8036: struct __false_type { }; 8036: 8036: template 8036: struct __truth_type 8036: { typedef __false_type __type; }; 8036: 8036: template<> 8036: struct __truth_type 8036: { typedef __true_type __type; }; 8036: 8036: 8036: 8036: template 8036: struct __traitor 8036: { 8036: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 8036: typedef typename __truth_type<__value>::__type __type; 8036: }; 8036: 8036: 8036: template 8036: struct __are_same 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: template 8036: struct __are_same<_Tp, _Tp> 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: template 8036: struct __is_void 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_void 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_integer 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_integer 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: # 261 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8036: template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; 8036: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8036: template 8036: struct __is_floating 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: 8036: template<> 8036: struct __is_floating 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_floating 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_floating 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_pointer 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: template 8036: struct __is_pointer<_Tp*> 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_arithmetic 8036: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 8036: { }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_scalar 8036: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 8036: { }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_char 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_char 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: template<> 8036: struct __is_char 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: template 8036: struct __is_byte 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_byte 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_byte 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template<> 8036: struct __is_byte 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_move_iterator 8036: { 8036: enum { __value = 0 }; 8036: typedef __false_type __type; 8036: }; 8036: 8036: 8036: 8036: template 8036: inline _Iterator 8036: __miter_base(_Iterator __it) 8036: { return __it; } 8036: 8036: 8036: } 8036: } 8036: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 8036: 8036: 8036: 8036: 8036: extern "C++" { 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: struct __enable_if 8036: { }; 8036: 8036: template 8036: struct __enable_if 8036: { typedef _Tp __type; }; 8036: 8036: 8036: 8036: template 8036: struct __conditional_type 8036: { typedef _Iftrue __type; }; 8036: 8036: template 8036: struct __conditional_type 8036: { typedef _Iffalse __type; }; 8036: 8036: 8036: 8036: template 8036: struct __add_unsigned 8036: { 8036: private: 8036: typedef __enable_if::__value, _Tp> __if_type; 8036: 8036: public: 8036: typedef typename __if_type::__type __type; 8036: }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned char __type; }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned char __type; }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned short __type; }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned int __type; }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned long __type; }; 8036: 8036: template<> 8036: struct __add_unsigned 8036: { typedef unsigned long long __type; }; 8036: 8036: 8036: template<> 8036: struct __add_unsigned; 8036: 8036: template<> 8036: struct __add_unsigned; 8036: 8036: 8036: 8036: template 8036: struct __remove_unsigned 8036: { 8036: private: 8036: typedef __enable_if::__value, _Tp> __if_type; 8036: 8036: public: 8036: typedef typename __if_type::__type __type; 8036: }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef signed char __type; }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef signed char __type; }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef short __type; }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef int __type; }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef long __type; }; 8036: 8036: template<> 8036: struct __remove_unsigned 8036: { typedef long long __type; }; 8036: 8036: 8036: template<> 8036: struct __remove_unsigned; 8036: 8036: template<> 8036: struct __remove_unsigned; 8036: 8036: 8036: 8036: template 8036: inline bool 8036: __is_null_pointer(_Type* __ptr) 8036: { return __ptr == 0; } 8036: 8036: template 8036: inline bool 8036: __is_null_pointer(_Type) 8036: { return false; } 8036: 8036: 8036: inline bool 8036: __is_null_pointer(std::nullptr_t) 8036: { return true; } 8036: 8036: 8036: 8036: template::__value> 8036: struct __promote 8036: { typedef double __type; }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __promote<_Tp, false> 8036: { }; 8036: 8036: template<> 8036: struct __promote 8036: { typedef long double __type; }; 8036: 8036: template<> 8036: struct __promote 8036: { typedef double __type; }; 8036: 8036: template<> 8036: struct __promote 8036: { typedef float __type; }; 8036: 8036: template::__type, 8036: typename _Up2 = typename __promote<_Up>::__type> 8036: struct __promote_2 8036: { 8036: typedef __typeof__(_Tp2() + _Up2()) __type; 8036: }; 8036: 8036: template::__type, 8036: typename _Up2 = typename __promote<_Up>::__type, 8036: typename _Vp2 = typename __promote<_Vp>::__type> 8036: struct __promote_3 8036: { 8036: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 8036: }; 8036: 8036: template::__type, 8036: typename _Up2 = typename __promote<_Up>::__type, 8036: typename _Vp2 = typename __promote<_Vp>::__type, 8036: typename _Wp2 = typename __promote<_Wp>::__type> 8036: struct __promote_4 8036: { 8036: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 8036: }; 8036: 8036: 8036: } 8036: } 8036: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 8036: template 8036: struct __numeric_traits_integer 8036: { 8036: 8036: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 8036: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 8036: 8036: 8036: 8036: static const bool __is_signed = ((_Value)(-1) < 0); 8036: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 8036: }; 8036: 8036: template 8036: const _Value __numeric_traits_integer<_Value>::__min; 8036: 8036: template 8036: const _Value __numeric_traits_integer<_Value>::__max; 8036: 8036: template 8036: const bool __numeric_traits_integer<_Value>::__is_signed; 8036: 8036: template 8036: const int __numeric_traits_integer<_Value>::__digits; 8036: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 8036: template 8036: struct __numeric_traits_floating 8036: { 8036: 8036: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 106) * 643L / 2136); 8036: 8036: 8036: static const bool __is_signed = true; 8036: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 31); 8036: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 8036: }; 8036: 8036: template 8036: const int __numeric_traits_floating<_Value>::__max_digits10; 8036: 8036: template 8036: const bool __numeric_traits_floating<_Value>::__is_signed; 8036: 8036: template 8036: const int __numeric_traits_floating<_Value>::__digits10; 8036: 8036: template 8036: const int __numeric_traits_floating<_Value>::__max_exponent10; 8036: 8036: template 8036: struct __numeric_traits 8036: : public __conditional_type::__value, 8036: __numeric_traits_integer<_Value>, 8036: __numeric_traits_floating<_Value> >::__type 8036: { }; 8036: 8036: 8036: } 8036: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 8036: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: 8036: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: struct input_iterator_tag { }; 8036: 8036: 8036: struct output_iterator_tag { }; 8036: 8036: 8036: struct forward_iterator_tag : public input_iterator_tag { }; 8036: 8036: 8036: 8036: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 8036: 8036: 8036: 8036: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 8036: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: template 8036: struct iterator 8036: { 8036: 8036: typedef _Category iterator_category; 8036: 8036: typedef _Tp value_type; 8036: 8036: typedef _Distance difference_type; 8036: 8036: typedef _Pointer pointer; 8036: 8036: typedef _Reference reference; 8036: }; 8036: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: template> 8036: struct __iterator_traits { }; 8036: 8036: template 8036: struct __iterator_traits<_Iterator, 8036: __void_t> 8036: { 8036: typedef typename _Iterator::iterator_category iterator_category; 8036: typedef typename _Iterator::value_type value_type; 8036: typedef typename _Iterator::difference_type difference_type; 8036: typedef typename _Iterator::pointer pointer; 8036: typedef typename _Iterator::reference reference; 8036: }; 8036: 8036: template 8036: struct iterator_traits 8036: : public __iterator_traits<_Iterator> { }; 8036: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: template 8036: struct iterator_traits<_Tp*> 8036: { 8036: typedef random_access_iterator_tag iterator_category; 8036: typedef _Tp value_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Tp* pointer; 8036: typedef _Tp& reference; 8036: }; 8036: 8036: 8036: template 8036: struct iterator_traits 8036: { 8036: typedef random_access_iterator_tag iterator_category; 8036: typedef _Tp value_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef const _Tp* pointer; 8036: typedef const _Tp& reference; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline constexpr 8036: typename iterator_traits<_Iter>::iterator_category 8036: __iterator_category(const _Iter&) 8036: { return typename iterator_traits<_Iter>::iterator_category(); } 8036: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8036: template 8036: using _RequireInputIter = typename 8036: enable_if::iterator_category, 8036: input_iterator_tag>::value>::type; 8036: 8036: 8036: 8036: } 8036: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 8036: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8036: 8036: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 8036: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template struct _List_iterator; 8036: template struct _List_const_iterator; 8036: 8036: 8036: template 8036: inline 8036: typename iterator_traits<_InputIterator>::difference_type 8036: __distance(_InputIterator __first, _InputIterator __last, 8036: input_iterator_tag) 8036: { 8036: 8036: 8036: 8036: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8036: while (__first != __last) 8036: { 8036: ++__first; 8036: ++__n; 8036: } 8036: return __n; 8036: } 8036: 8036: template 8036: inline 8036: typename iterator_traits<_RandomAccessIterator>::difference_type 8036: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: random_access_iterator_tag) 8036: { 8036: 8036: 8036: 8036: return __last - __first; 8036: } 8036: 8036: 8036: 8036: template 8036: ptrdiff_t 8036: __distance(std::_List_iterator<_Tp>, 8036: std::_List_iterator<_Tp>, 8036: input_iterator_tag); 8036: 8036: template 8036: ptrdiff_t 8036: __distance(std::_List_const_iterator<_Tp>, 8036: std::_List_const_iterator<_Tp>, 8036: input_iterator_tag); 8036: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8036: template 8036: inline 8036: typename iterator_traits<_InputIterator>::difference_type 8036: distance(_InputIterator __first, _InputIterator __last) 8036: { 8036: 8036: return std::__distance(__first, __last, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: template 8036: inline void 8036: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 8036: { 8036: 8036: 8036: ; 8036: while (__n--) 8036: ++__i; 8036: } 8036: 8036: template 8036: inline void 8036: __advance(_BidirectionalIterator& __i, _Distance __n, 8036: bidirectional_iterator_tag) 8036: { 8036: 8036: 8036: 8036: if (__n > 0) 8036: while (__n--) 8036: ++__i; 8036: else 8036: while (__n++) 8036: --__i; 8036: } 8036: 8036: template 8036: inline void 8036: __advance(_RandomAccessIterator& __i, _Distance __n, 8036: random_access_iterator_tag) 8036: { 8036: 8036: 8036: 8036: if (__builtin_constant_p(__n) && __n == 1) 8036: ++__i; 8036: else if (__builtin_constant_p(__n) && __n == -1) 8036: --__i; 8036: else 8036: __i += __n; 8036: } 8036: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8036: template 8036: inline void 8036: advance(_InputIterator& __i, _Distance __n) 8036: { 8036: 8036: typename iterator_traits<_InputIterator>::difference_type __d = __n; 8036: std::__advance(__i, __d, std::__iterator_category(__i)); 8036: } 8036: 8036: 8036: 8036: template 8036: inline _InputIterator 8036: next(_InputIterator __x, typename 8036: iterator_traits<_InputIterator>::difference_type __n = 1) 8036: { 8036: 8036: 8036: std::advance(__x, __n); 8036: return __x; 8036: } 8036: 8036: template 8036: inline _BidirectionalIterator 8036: prev(_BidirectionalIterator __x, typename 8036: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 8036: { 8036: 8036: 8036: 8036: std::advance(__x, -__n); 8036: return __x; 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 8036: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: class __undefined; 8036: 8036: 8036: template 8036: struct __get_first_arg 8036: { using type = __undefined; }; 8036: 8036: template class _Template, typename _Tp, 8036: typename... _Types> 8036: struct __get_first_arg<_Template<_Tp, _Types...>> 8036: { using type = _Tp; }; 8036: 8036: template 8036: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 8036: 8036: 8036: template 8036: struct __replace_first_arg 8036: { }; 8036: 8036: template class _Template, typename _Up, 8036: typename _Tp, typename... _Types> 8036: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 8036: { using type = _Template<_Up, _Types...>; }; 8036: 8036: template 8036: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 8036: 8036: template 8036: using __make_not_void 8036: = typename conditional::value, __undefined, _Tp>::type; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct pointer_traits 8036: { 8036: private: 8036: template 8036: using __element_type = typename _Tp::element_type; 8036: 8036: template 8036: using __difference_type = typename _Tp::difference_type; 8036: 8036: template 8036: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8036: 8036: template 8036: struct __rebind<_Tp, _Up, __void_t>> 8036: { using type = typename _Tp::template rebind<_Up>; }; 8036: 8036: public: 8036: 8036: using pointer = _Ptr; 8036: 8036: 8036: using element_type 8036: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 8036: 8036: 8036: using difference_type 8036: = __detected_or_t; 8036: 8036: 8036: template 8036: using rebind = typename __rebind<_Ptr, _Up>::type; 8036: 8036: static _Ptr 8036: pointer_to(__make_not_void& __e) 8036: { return _Ptr::pointer_to(__e); } 8036: 8036: static_assert(!is_same::value, 8036: "pointer type defines element_type or is like SomePointer"); 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct pointer_traits<_Tp*> 8036: { 8036: 8036: typedef _Tp* pointer; 8036: 8036: typedef _Tp element_type; 8036: 8036: typedef ptrdiff_t difference_type; 8036: 8036: template 8036: using rebind = _Up*; 8036: 8036: 8036: 8036: 8036: 8036: 8036: static pointer 8036: pointer_to(__make_not_void& __r) noexcept 8036: { return std::addressof(__r); } 8036: }; 8036: 8036: 8036: template 8036: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 8036: 8036: template 8036: constexpr _Tp* 8036: __to_address(_Tp* __ptr) noexcept 8036: { 8036: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 8036: return __ptr; 8036: } 8036: 8036: 8036: template 8036: constexpr typename std::pointer_traits<_Ptr>::element_type* 8036: __to_address(const _Ptr& __ptr) 8036: { return std::__to_address(__ptr.operator->()); } 8036: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 8036: 8036: } 8036: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: class reverse_iterator 8036: : public iterator::iterator_category, 8036: typename iterator_traits<_Iterator>::value_type, 8036: typename iterator_traits<_Iterator>::difference_type, 8036: typename iterator_traits<_Iterator>::pointer, 8036: typename iterator_traits<_Iterator>::reference> 8036: { 8036: protected: 8036: _Iterator current; 8036: 8036: typedef iterator_traits<_Iterator> __traits_type; 8036: 8036: public: 8036: typedef _Iterator iterator_type; 8036: typedef typename __traits_type::difference_type difference_type; 8036: typedef typename __traits_type::pointer pointer; 8036: typedef typename __traits_type::reference reference; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator() : current() { } 8036: 8036: 8036: 8036: 8036: explicit 8036: reverse_iterator(iterator_type __x) : current(__x) { } 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator(const reverse_iterator& __x) 8036: : current(__x.current) { } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: 8036: reverse_iterator(const reverse_iterator<_Iter>& __x) 8036: : current(__x.base()) { } 8036: 8036: 8036: 8036: 8036: iterator_type 8036: base() const 8036: { return current; } 8036: # 167 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: reference 8036: operator*() const 8036: { 8036: _Iterator __tmp = current; 8036: return *--__tmp; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: pointer 8036: operator->() const 8036: { return &(operator*()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator& 8036: operator++() 8036: { 8036: --current; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: operator++(int) 8036: { 8036: reverse_iterator __tmp = *this; 8036: --current; 8036: return __tmp; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator& 8036: operator--() 8036: { 8036: ++current; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: operator--(int) 8036: { 8036: reverse_iterator __tmp = *this; 8036: ++current; 8036: return __tmp; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: operator+(difference_type __n) const 8036: { return reverse_iterator(current - __n); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator& 8036: operator+=(difference_type __n) 8036: { 8036: current -= __n; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: operator-(difference_type __n) const 8036: { return reverse_iterator(current + __n); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator& 8036: operator-=(difference_type __n) 8036: { 8036: current += __n; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: operator[](difference_type __n) const 8036: { return *(*this + __n); } 8036: }; 8036: # 297 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline bool 8036: operator==(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return __x.base() == __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator<(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return __y.base() < __x.base(); } 8036: 8036: template 8036: inline bool 8036: operator!=(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return !(__x == __y); } 8036: 8036: template 8036: inline bool 8036: operator>(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return __y < __x; } 8036: 8036: template 8036: inline bool 8036: operator<=(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return !(__y < __x); } 8036: 8036: template 8036: inline bool 8036: operator>=(const reverse_iterator<_Iterator>& __x, 8036: const reverse_iterator<_Iterator>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return __x.base() == __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator<(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return __y.base() < __x.base(); } 8036: 8036: template 8036: inline bool 8036: operator!=(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return !(__x == __y); } 8036: 8036: template 8036: inline bool 8036: operator>(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return __y < __x; } 8036: 8036: template 8036: inline bool 8036: operator<=(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return !(__y < __x); } 8036: 8036: template 8036: inline bool 8036: operator>=(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: { return !(__x < __y); } 8036: # 387 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline auto 8036: operator-(const reverse_iterator<_IteratorL>& __x, 8036: const reverse_iterator<_IteratorR>& __y) 8036: -> decltype(__y.base() - __x.base()) 8036: { return __y.base() - __x.base(); } 8036: 8036: 8036: template 8036: inline reverse_iterator<_Iterator> 8036: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 8036: const reverse_iterator<_Iterator>& __x) 8036: { return reverse_iterator<_Iterator>(__x.base() - __n); } 8036: 8036: 8036: 8036: template 8036: inline reverse_iterator<_Iterator> 8036: __make_reverse_iterator(_Iterator __i) 8036: { return reverse_iterator<_Iterator>(__i); } 8036: # 422 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: auto 8036: __niter_base(reverse_iterator<_Iterator> __it) 8036: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 8036: { return __make_reverse_iterator(__niter_base(__it.base())); } 8036: 8036: template 8036: struct __is_move_iterator > 8036: : __is_move_iterator<_Iterator> 8036: { }; 8036: 8036: template 8036: auto 8036: __miter_base(reverse_iterator<_Iterator> __it) 8036: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 8036: { return __make_reverse_iterator(__miter_base(__it.base())); } 8036: # 451 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: class back_insert_iterator 8036: : public iterator 8036: { 8036: protected: 8036: _Container* container; 8036: 8036: public: 8036: 8036: typedef _Container container_type; 8036: 8036: 8036: explicit 8036: back_insert_iterator(_Container& __x) 8036: : container(std::__addressof(__x)) { } 8036: # 486 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: back_insert_iterator& 8036: operator=(const typename _Container::value_type& __value) 8036: { 8036: container->push_back(__value); 8036: return *this; 8036: } 8036: 8036: back_insert_iterator& 8036: operator=(typename _Container::value_type&& __value) 8036: { 8036: container->push_back(std::move(__value)); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: back_insert_iterator& 8036: operator*() 8036: { return *this; } 8036: 8036: 8036: back_insert_iterator& 8036: operator++() 8036: { return *this; } 8036: 8036: 8036: back_insert_iterator 8036: operator++(int) 8036: { return *this; } 8036: }; 8036: # 528 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline back_insert_iterator<_Container> 8036: back_inserter(_Container& __x) 8036: { return back_insert_iterator<_Container>(__x); } 8036: # 543 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: class front_insert_iterator 8036: : public iterator 8036: { 8036: protected: 8036: _Container* container; 8036: 8036: public: 8036: 8036: typedef _Container container_type; 8036: 8036: 8036: explicit front_insert_iterator(_Container& __x) 8036: : container(std::__addressof(__x)) { } 8036: # 577 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: front_insert_iterator& 8036: operator=(const typename _Container::value_type& __value) 8036: { 8036: container->push_front(__value); 8036: return *this; 8036: } 8036: 8036: front_insert_iterator& 8036: operator=(typename _Container::value_type&& __value) 8036: { 8036: container->push_front(std::move(__value)); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: front_insert_iterator& 8036: operator*() 8036: { return *this; } 8036: 8036: 8036: front_insert_iterator& 8036: operator++() 8036: { return *this; } 8036: 8036: 8036: front_insert_iterator 8036: operator++(int) 8036: { return *this; } 8036: }; 8036: # 619 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline front_insert_iterator<_Container> 8036: front_inserter(_Container& __x) 8036: { return front_insert_iterator<_Container>(__x); } 8036: # 638 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: class insert_iterator 8036: : public iterator 8036: { 8036: protected: 8036: _Container* container; 8036: typename _Container::iterator iter; 8036: 8036: public: 8036: 8036: typedef _Container container_type; 8036: 8036: 8036: 8036: 8036: 8036: insert_iterator(_Container& __x, typename _Container::iterator __i) 8036: : container(std::__addressof(__x)), iter(__i) {} 8036: # 689 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: insert_iterator& 8036: operator=(const typename _Container::value_type& __value) 8036: { 8036: iter = container->insert(iter, __value); 8036: ++iter; 8036: return *this; 8036: } 8036: 8036: insert_iterator& 8036: operator=(typename _Container::value_type&& __value) 8036: { 8036: iter = container->insert(iter, std::move(__value)); 8036: ++iter; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: insert_iterator& 8036: operator*() 8036: { return *this; } 8036: 8036: 8036: insert_iterator& 8036: operator++() 8036: { return *this; } 8036: 8036: 8036: insert_iterator& 8036: operator++(int) 8036: { return *this; } 8036: }; 8036: # 734 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline insert_iterator<_Container> 8036: inserter(_Container& __x, _Iterator __i) 8036: { 8036: return insert_iterator<_Container>(__x, 8036: typename _Container::iterator(__i)); 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 758 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: using std::iterator_traits; 8036: using std::iterator; 8036: template 8036: class __normal_iterator 8036: { 8036: protected: 8036: _Iterator _M_current; 8036: 8036: typedef iterator_traits<_Iterator> __traits_type; 8036: 8036: public: 8036: typedef _Iterator iterator_type; 8036: typedef typename __traits_type::iterator_category iterator_category; 8036: typedef typename __traits_type::value_type value_type; 8036: typedef typename __traits_type::difference_type difference_type; 8036: typedef typename __traits_type::reference reference; 8036: typedef typename __traits_type::pointer pointer; 8036: 8036: constexpr __normal_iterator() noexcept 8036: : _M_current(_Iterator()) { } 8036: 8036: explicit 8036: __normal_iterator(const _Iterator& __i) noexcept 8036: : _M_current(__i) { } 8036: 8036: 8036: template 8036: __normal_iterator(const __normal_iterator<_Iter, 8036: typename __enable_if< 8036: (std::__are_same<_Iter, typename _Container::pointer>::__value), 8036: _Container>::__type>& __i) noexcept 8036: : _M_current(__i.base()) { } 8036: 8036: 8036: reference 8036: operator*() const noexcept 8036: { return *_M_current; } 8036: 8036: pointer 8036: operator->() const noexcept 8036: { return _M_current; } 8036: 8036: __normal_iterator& 8036: operator++() noexcept 8036: { 8036: ++_M_current; 8036: return *this; 8036: } 8036: 8036: __normal_iterator 8036: operator++(int) noexcept 8036: { return __normal_iterator(_M_current++); } 8036: 8036: 8036: __normal_iterator& 8036: operator--() noexcept 8036: { 8036: --_M_current; 8036: return *this; 8036: } 8036: 8036: __normal_iterator 8036: operator--(int) noexcept 8036: { return __normal_iterator(_M_current--); } 8036: 8036: 8036: reference 8036: operator[](difference_type __n) const noexcept 8036: { return _M_current[__n]; } 8036: 8036: __normal_iterator& 8036: operator+=(difference_type __n) noexcept 8036: { _M_current += __n; return *this; } 8036: 8036: __normal_iterator 8036: operator+(difference_type __n) const noexcept 8036: { return __normal_iterator(_M_current + __n); } 8036: 8036: __normal_iterator& 8036: operator-=(difference_type __n) noexcept 8036: { _M_current -= __n; return *this; } 8036: 8036: __normal_iterator 8036: operator-(difference_type __n) const noexcept 8036: { return __normal_iterator(_M_current - __n); } 8036: 8036: const _Iterator& 8036: base() const noexcept 8036: { return _M_current; } 8036: }; 8036: # 858 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: inline bool 8036: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() == __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() == __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() != __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() != __rhs.base(); } 8036: 8036: 8036: template 8036: inline bool 8036: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() < __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() < __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() > __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() > __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() <= __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() <= __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() >= __rhs.base(); } 8036: 8036: template 8036: inline bool 8036: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() >= __rhs.base(); } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: 8036: 8036: inline auto 8036: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 8036: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 8036: -> decltype(__lhs.base() - __rhs.base()) 8036: 8036: 8036: 8036: 8036: 8036: { return __lhs.base() - __rhs.base(); } 8036: 8036: template 8036: inline typename __normal_iterator<_Iterator, _Container>::difference_type 8036: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 8036: const __normal_iterator<_Iterator, _Container>& __rhs) 8036: noexcept 8036: { return __lhs.base() - __rhs.base(); } 8036: 8036: template 8036: inline __normal_iterator<_Iterator, _Container> 8036: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 8036: __n, const __normal_iterator<_Iterator, _Container>& __i) 8036: noexcept 8036: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 8036: 8036: 8036: } 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: _Iterator 8036: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 8036: { return __it.base(); } 8036: # 1003 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: template 8036: class move_iterator 8036: { 8036: protected: 8036: _Iterator _M_current; 8036: 8036: typedef iterator_traits<_Iterator> __traits_type; 8036: typedef typename __traits_type::reference __base_ref; 8036: 8036: public: 8036: typedef _Iterator iterator_type; 8036: typedef typename __traits_type::iterator_category iterator_category; 8036: typedef typename __traits_type::value_type value_type; 8036: typedef typename __traits_type::difference_type difference_type; 8036: 8036: typedef _Iterator pointer; 8036: 8036: 8036: typedef typename conditional::value, 8036: typename remove_reference<__base_ref>::type&&, 8036: __base_ref>::type reference; 8036: 8036: 8036: move_iterator() 8036: : _M_current() { } 8036: 8036: explicit 8036: move_iterator(iterator_type __i) 8036: : _M_current(__i) { } 8036: 8036: template 8036: 8036: move_iterator(const move_iterator<_Iter>& __i) 8036: : _M_current(__i.base()) { } 8036: 8036: iterator_type 8036: base() const 8036: { return _M_current; } 8036: 8036: reference 8036: operator*() const 8036: { return static_cast(*_M_current); } 8036: 8036: pointer 8036: operator->() const 8036: { return _M_current; } 8036: 8036: move_iterator& 8036: operator++() 8036: { 8036: ++_M_current; 8036: return *this; 8036: } 8036: 8036: move_iterator 8036: operator++(int) 8036: { 8036: move_iterator __tmp = *this; 8036: ++_M_current; 8036: return __tmp; 8036: } 8036: 8036: move_iterator& 8036: operator--() 8036: { 8036: --_M_current; 8036: return *this; 8036: } 8036: 8036: move_iterator 8036: operator--(int) 8036: { 8036: move_iterator __tmp = *this; 8036: --_M_current; 8036: return __tmp; 8036: } 8036: 8036: move_iterator 8036: operator+(difference_type __n) const 8036: { return move_iterator(_M_current + __n); } 8036: 8036: move_iterator& 8036: operator+=(difference_type __n) 8036: { 8036: _M_current += __n; 8036: return *this; 8036: } 8036: 8036: move_iterator 8036: operator-(difference_type __n) const 8036: { return move_iterator(_M_current - __n); } 8036: 8036: move_iterator& 8036: operator-=(difference_type __n) 8036: { 8036: _M_current -= __n; 8036: return *this; 8036: } 8036: 8036: reference 8036: operator[](difference_type __n) const 8036: { return std::move(_M_current[__n]); } 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return __x.base() == __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator==(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return __x.base() == __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator!=(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return !(__x == __y); } 8036: 8036: template 8036: inline bool 8036: operator!=(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return !(__x == __y); } 8036: 8036: template 8036: inline bool 8036: operator<(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return __x.base() < __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator<(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return __x.base() < __y.base(); } 8036: 8036: template 8036: inline bool 8036: operator<=(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return !(__y < __x); } 8036: 8036: template 8036: inline bool 8036: operator<=(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return !(__y < __x); } 8036: 8036: template 8036: inline bool 8036: operator>(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return __y < __x; } 8036: 8036: template 8036: inline bool 8036: operator>(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return __y < __x; } 8036: 8036: template 8036: inline bool 8036: operator>=(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: { return !(__x < __y); } 8036: 8036: template 8036: inline bool 8036: operator>=(const move_iterator<_Iterator>& __x, 8036: const move_iterator<_Iterator>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: template 8036: inline auto 8036: operator-(const move_iterator<_IteratorL>& __x, 8036: const move_iterator<_IteratorR>& __y) 8036: -> decltype(__x.base() - __y.base()) 8036: { return __x.base() - __y.base(); } 8036: 8036: template 8036: inline move_iterator<_Iterator> 8036: operator+(typename move_iterator<_Iterator>::difference_type __n, 8036: const move_iterator<_Iterator>& __x) 8036: { return __x + __n; } 8036: 8036: template 8036: inline move_iterator<_Iterator> 8036: make_move_iterator(_Iterator __i) 8036: { return move_iterator<_Iterator>(__i); } 8036: 8036: template::value_type>::value, 8036: _Iterator, move_iterator<_Iterator>>::type> 8036: inline _ReturnType 8036: __make_move_if_noexcept_iterator(_Iterator __i) 8036: { return _ReturnType(__i); } 8036: 8036: 8036: 8036: template::value, 8036: const _Tp*, move_iterator<_Tp*>>::type> 8036: inline _ReturnType 8036: __make_move_if_noexcept_iterator(_Tp* __i) 8036: { return _ReturnType(__i); } 8036: 8036: 8036: 8036: template 8036: auto 8036: __niter_base(move_iterator<_Iterator> __it) 8036: -> decltype(make_move_iterator(__niter_base(__it.base()))) 8036: { return make_move_iterator(__niter_base(__it.base())); } 8036: 8036: template 8036: struct __is_move_iterator > 8036: { 8036: enum { __value = 1 }; 8036: typedef __true_type __type; 8036: }; 8036: 8036: template 8036: auto 8036: __miter_base(move_iterator<_Iterator> __it) 8036: -> decltype(__miter_base(__it.base())) 8036: { return __miter_base(__it.base()); } 8036: # 1268 "/usr/include/c++/8/bits/stl_iterator.h" 3 8036: 8036: } 8036: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 8036: # 48 "/usr/include/c++/8/debug/debug.h" 3 8036: namespace std 8036: { 8036: namespace __debug { } 8036: } 8036: 8036: 8036: 8036: 8036: namespace __gnu_debug 8036: { 8036: using namespace std::__debug; 8036: } 8036: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 8036: namespace __gnu_cxx 8036: { 8036: namespace __ops 8036: { 8036: struct _Iter_less_iter 8036: { 8036: template 8036: 8036: bool 8036: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8036: { return *__it1 < *__it2; } 8036: }; 8036: 8036: 8036: inline _Iter_less_iter 8036: __iter_less_iter() 8036: { return _Iter_less_iter(); } 8036: 8036: struct _Iter_less_val 8036: { 8036: 8036: constexpr _Iter_less_val() = default; 8036: 8036: 8036: 8036: 8036: explicit 8036: _Iter_less_val(_Iter_less_iter) { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it, _Value& __val) const 8036: { return *__it < __val; } 8036: }; 8036: 8036: inline _Iter_less_val 8036: __iter_less_val() 8036: { return _Iter_less_val(); } 8036: 8036: inline _Iter_less_val 8036: __iter_comp_val(_Iter_less_iter) 8036: { return _Iter_less_val(); } 8036: 8036: struct _Val_less_iter 8036: { 8036: 8036: constexpr _Val_less_iter() = default; 8036: 8036: 8036: 8036: 8036: explicit 8036: _Val_less_iter(_Iter_less_iter) { } 8036: 8036: template 8036: bool 8036: operator()(_Value& __val, _Iterator __it) const 8036: { return __val < *__it; } 8036: }; 8036: 8036: inline _Val_less_iter 8036: __val_less_iter() 8036: { return _Val_less_iter(); } 8036: 8036: inline _Val_less_iter 8036: __val_comp_iter(_Iter_less_iter) 8036: { return _Val_less_iter(); } 8036: 8036: struct _Iter_equal_to_iter 8036: { 8036: template 8036: bool 8036: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8036: { return *__it1 == *__it2; } 8036: }; 8036: 8036: inline _Iter_equal_to_iter 8036: __iter_equal_to_iter() 8036: { return _Iter_equal_to_iter(); } 8036: 8036: struct _Iter_equal_to_val 8036: { 8036: template 8036: bool 8036: operator()(_Iterator __it, _Value& __val) const 8036: { return *__it == __val; } 8036: }; 8036: 8036: inline _Iter_equal_to_val 8036: __iter_equal_to_val() 8036: { return _Iter_equal_to_val(); } 8036: 8036: inline _Iter_equal_to_val 8036: __iter_comp_val(_Iter_equal_to_iter) 8036: { return _Iter_equal_to_val(); } 8036: 8036: template 8036: struct _Iter_comp_iter 8036: { 8036: _Compare _M_comp; 8036: 8036: explicit 8036: _Iter_comp_iter(_Compare __comp) 8036: : _M_comp(std::move(__comp)) 8036: { } 8036: 8036: template 8036: 8036: bool 8036: operator()(_Iterator1 __it1, _Iterator2 __it2) 8036: { return bool(_M_comp(*__it1, *__it2)); } 8036: }; 8036: 8036: template 8036: 8036: inline _Iter_comp_iter<_Compare> 8036: __iter_comp_iter(_Compare __comp) 8036: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 8036: 8036: template 8036: struct _Iter_comp_val 8036: { 8036: _Compare _M_comp; 8036: 8036: explicit 8036: _Iter_comp_val(_Compare __comp) 8036: : _M_comp(std::move(__comp)) 8036: { } 8036: 8036: explicit 8036: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 8036: : _M_comp(__comp._M_comp) 8036: { } 8036: 8036: 8036: explicit 8036: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 8036: : _M_comp(std::move(__comp._M_comp)) 8036: { } 8036: 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it, _Value& __val) 8036: { return bool(_M_comp(*__it, __val)); } 8036: }; 8036: 8036: template 8036: inline _Iter_comp_val<_Compare> 8036: __iter_comp_val(_Compare __comp) 8036: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8036: 8036: template 8036: inline _Iter_comp_val<_Compare> 8036: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 8036: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8036: 8036: template 8036: struct _Val_comp_iter 8036: { 8036: _Compare _M_comp; 8036: 8036: explicit 8036: _Val_comp_iter(_Compare __comp) 8036: : _M_comp(std::move(__comp)) 8036: { } 8036: 8036: explicit 8036: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 8036: : _M_comp(__comp._M_comp) 8036: { } 8036: 8036: 8036: explicit 8036: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 8036: : _M_comp(std::move(__comp._M_comp)) 8036: { } 8036: 8036: 8036: template 8036: bool 8036: operator()(_Value& __val, _Iterator __it) 8036: { return bool(_M_comp(__val, *__it)); } 8036: }; 8036: 8036: template 8036: inline _Val_comp_iter<_Compare> 8036: __val_comp_iter(_Compare __comp) 8036: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8036: 8036: template 8036: inline _Val_comp_iter<_Compare> 8036: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 8036: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8036: 8036: template 8036: struct _Iter_equals_val 8036: { 8036: _Value& _M_value; 8036: 8036: explicit 8036: _Iter_equals_val(_Value& __value) 8036: : _M_value(__value) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it) 8036: { return *__it == _M_value; } 8036: }; 8036: 8036: template 8036: inline _Iter_equals_val<_Value> 8036: __iter_equals_val(_Value& __val) 8036: { return _Iter_equals_val<_Value>(__val); } 8036: 8036: template 8036: struct _Iter_equals_iter 8036: { 8036: _Iterator1 _M_it1; 8036: 8036: explicit 8036: _Iter_equals_iter(_Iterator1 __it1) 8036: : _M_it1(__it1) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator2 __it2) 8036: { return *__it2 == *_M_it1; } 8036: }; 8036: 8036: template 8036: inline _Iter_equals_iter<_Iterator> 8036: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 8036: { return _Iter_equals_iter<_Iterator>(__it); } 8036: 8036: template 8036: struct _Iter_pred 8036: { 8036: _Predicate _M_pred; 8036: 8036: explicit 8036: _Iter_pred(_Predicate __pred) 8036: : _M_pred(std::move(__pred)) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it) 8036: { return bool(_M_pred(*__it)); } 8036: }; 8036: 8036: template 8036: inline _Iter_pred<_Predicate> 8036: __pred_iter(_Predicate __pred) 8036: { return _Iter_pred<_Predicate>(std::move(__pred)); } 8036: 8036: template 8036: struct _Iter_comp_to_val 8036: { 8036: _Compare _M_comp; 8036: _Value& _M_value; 8036: 8036: _Iter_comp_to_val(_Compare __comp, _Value& __value) 8036: : _M_comp(std::move(__comp)), _M_value(__value) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it) 8036: { return bool(_M_comp(*__it, _M_value)); } 8036: }; 8036: 8036: template 8036: _Iter_comp_to_val<_Compare, _Value> 8036: __iter_comp_val(_Compare __comp, _Value &__val) 8036: { 8036: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 8036: } 8036: 8036: template 8036: struct _Iter_comp_to_iter 8036: { 8036: _Compare _M_comp; 8036: _Iterator1 _M_it1; 8036: 8036: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 8036: : _M_comp(std::move(__comp)), _M_it1(__it1) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator2 __it2) 8036: { return bool(_M_comp(*__it2, *_M_it1)); } 8036: }; 8036: 8036: template 8036: inline _Iter_comp_to_iter<_Compare, _Iterator> 8036: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 8036: { 8036: return _Iter_comp_to_iter<_Compare, _Iterator>( 8036: std::move(__comp._M_comp), __it); 8036: } 8036: 8036: template 8036: struct _Iter_negate 8036: { 8036: _Predicate _M_pred; 8036: 8036: explicit 8036: _Iter_negate(_Predicate __pred) 8036: : _M_pred(std::move(__pred)) 8036: { } 8036: 8036: template 8036: bool 8036: operator()(_Iterator __it) 8036: { return !bool(_M_pred(*__it)); } 8036: }; 8036: 8036: template 8036: inline _Iter_negate<_Predicate> 8036: __negate(_Iter_pred<_Predicate> __pred) 8036: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 8036: 8036: } 8036: } 8036: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline void 8036: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 8036: { 8036: 8036: 8036: 8036: 8036: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: swap(*__a, *__b); 8036: 8036: } 8036: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: _ForwardIterator2 8036: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2) 8036: std::iter_swap(__first1, __first2); 8036: return __first2; 8036: } 8036: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: 8036: inline const _Tp& 8036: min(const _Tp& __a, const _Tp& __b) 8036: { 8036: 8036: 8036: 8036: if (__b < __a) 8036: return __b; 8036: return __a; 8036: } 8036: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: 8036: inline const _Tp& 8036: max(const _Tp& __a, const _Tp& __b) 8036: { 8036: 8036: 8036: 8036: if (__a < __b) 8036: return __b; 8036: return __a; 8036: } 8036: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: 8036: inline const _Tp& 8036: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 8036: { 8036: 8036: if (__comp(__b, __a)) 8036: return __b; 8036: return __a; 8036: } 8036: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: 8036: inline const _Tp& 8036: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 8036: { 8036: 8036: if (__comp(__a, __b)) 8036: return __b; 8036: return __a; 8036: } 8036: 8036: 8036: 8036: template 8036: inline _Iterator 8036: __niter_base(_Iterator __it) 8036: { return __it; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __copy_move 8036: { 8036: template 8036: static _OI 8036: __copy_m(_II __first, _II __last, _OI __result) 8036: { 8036: for (; __first != __last; ++__result, (void)++__first) 8036: *__result = *__first; 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct __copy_move 8036: { 8036: template 8036: static _OI 8036: __copy_m(_II __first, _II __last, _OI __result) 8036: { 8036: for (; __first != __last; ++__result, (void)++__first) 8036: *__result = std::move(*__first); 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct __copy_move 8036: { 8036: template 8036: static _OI 8036: __copy_m(_II __first, _II __last, _OI __result) 8036: { 8036: typedef typename iterator_traits<_II>::difference_type _Distance; 8036: for(_Distance __n = __last - __first; __n > 0; --__n) 8036: { 8036: *__result = *__first; 8036: ++__first; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct __copy_move 8036: { 8036: template 8036: static _OI 8036: __copy_m(_II __first, _II __last, _OI __result) 8036: { 8036: typedef typename iterator_traits<_II>::difference_type _Distance; 8036: for(_Distance __n = __last - __first; __n > 0; --__n) 8036: { 8036: *__result = std::move(*__first); 8036: ++__first; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct __copy_move<_IsMove, true, random_access_iterator_tag> 8036: { 8036: template 8036: static _Tp* 8036: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 8036: { 8036: 8036: using __assignable = conditional<_IsMove, 8036: is_move_assignable<_Tp>, 8036: is_copy_assignable<_Tp>>; 8036: 8036: static_assert( __assignable::type::value, "type is not assignable" ); 8036: 8036: const ptrdiff_t _Num = __last - __first; 8036: if (_Num) 8036: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 8036: return __result + _Num; 8036: } 8036: }; 8036: 8036: template 8036: inline _OI 8036: __copy_move_a(_II __first, _II __last, _OI __result) 8036: { 8036: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 8036: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 8036: typedef typename iterator_traits<_II>::iterator_category _Category; 8036: const bool __simple = (__is_trivial(_ValueTypeI) 8036: && __is_pointer<_II>::__value 8036: && __is_pointer<_OI>::__value 8036: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 8036: 8036: return std::__copy_move<_IsMove, __simple, 8036: _Category>::__copy_m(__first, __last, __result); 8036: } 8036: 8036: 8036: 8036: template 8036: struct char_traits; 8036: 8036: template 8036: class istreambuf_iterator; 8036: 8036: template 8036: class ostreambuf_iterator; 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8036: __copy_move_a2(_CharT*, _CharT*, 8036: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8036: __copy_move_a2(const _CharT*, const _CharT*, 8036: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: _CharT*>::__type 8036: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 8036: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 8036: 8036: template 8036: inline _OI 8036: __copy_move_a2(_II __first, _II __last, _OI __result) 8036: { 8036: return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), 8036: std::__niter_base(__last), 8036: std::__niter_base(__result))); 8036: } 8036: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _OI 8036: copy(_II __first, _II __last, _OI __result) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 8036: (std::__miter_base(__first), std::__miter_base(__last), 8036: __result)); 8036: } 8036: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _OI 8036: move(_II __first, _II __last, _OI __result) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__copy_move_a2(std::__miter_base(__first), 8036: std::__miter_base(__last), __result); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __copy_move_backward 8036: { 8036: template 8036: static _BI2 8036: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: while (__first != __last) 8036: *--__result = *--__last; 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct __copy_move_backward 8036: { 8036: template 8036: static _BI2 8036: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: while (__first != __last) 8036: *--__result = std::move(*--__last); 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct __copy_move_backward 8036: { 8036: template 8036: static _BI2 8036: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: typename iterator_traits<_BI1>::difference_type __n; 8036: for (__n = __last - __first; __n > 0; --__n) 8036: *--__result = *--__last; 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct __copy_move_backward 8036: { 8036: template 8036: static _BI2 8036: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: typename iterator_traits<_BI1>::difference_type __n; 8036: for (__n = __last - __first; __n > 0; --__n) 8036: *--__result = std::move(*--__last); 8036: return __result; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 8036: { 8036: template 8036: static _Tp* 8036: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 8036: { 8036: 8036: using __assignable = conditional<_IsMove, 8036: is_move_assignable<_Tp>, 8036: is_copy_assignable<_Tp>>; 8036: 8036: static_assert( __assignable::type::value, "type is not assignable" ); 8036: 8036: const ptrdiff_t _Num = __last - __first; 8036: if (_Num) 8036: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 8036: return __result - _Num; 8036: } 8036: }; 8036: 8036: template 8036: inline _BI2 8036: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 8036: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 8036: typedef typename iterator_traits<_BI1>::iterator_category _Category; 8036: const bool __simple = (__is_trivial(_ValueType1) 8036: && __is_pointer<_BI1>::__value 8036: && __is_pointer<_BI2>::__value 8036: && __are_same<_ValueType1, _ValueType2>::__value); 8036: 8036: return std::__copy_move_backward<_IsMove, __simple, 8036: _Category>::__copy_move_b(__first, 8036: __last, 8036: __result); 8036: } 8036: 8036: template 8036: inline _BI2 8036: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: return _BI2(std::__copy_move_backward_a<_IsMove> 8036: (std::__niter_base(__first), std::__niter_base(__last), 8036: std::__niter_base(__result))); 8036: } 8036: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _BI2 8036: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 8036: (std::__miter_base(__first), std::__miter_base(__last), 8036: __result)); 8036: } 8036: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _BI2 8036: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__copy_move_backward_a2(std::__miter_base(__first), 8036: std::__miter_base(__last), 8036: __result); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if::__value, void>::__type 8036: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __value) 8036: { 8036: for (; __first != __last; ++__first) 8036: *__first = __value; 8036: } 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 8036: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __value) 8036: { 8036: const _Tp __tmp = __value; 8036: for (; __first != __last; ++__first) 8036: *__first = __tmp; 8036: } 8036: 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 8036: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 8036: { 8036: const _Tp __tmp = __c; 8036: if (const size_t __len = __last - __first) 8036: __builtin_memset(__first, static_cast(__tmp), __len); 8036: } 8036: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline void 8036: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 8036: __value); 8036: } 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 8036: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8036: { 8036: for (__decltype(__n + 0) __niter = __n; 8036: __niter > 0; --__niter, (void) ++__first) 8036: *__first = __value; 8036: return __first; 8036: } 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 8036: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8036: { 8036: const _Tp __tmp = __value; 8036: for (__decltype(__n + 0) __niter = __n; 8036: __niter > 0; --__niter, (void) ++__first) 8036: *__first = __tmp; 8036: return __first; 8036: } 8036: 8036: template 8036: inline typename 8036: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 8036: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 8036: { 8036: std::__fill_a(__first, __first + __n, __c); 8036: return __first + __n; 8036: } 8036: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _OI 8036: fill_n(_OI __first, _Size __n, const _Tp& __value) 8036: { 8036: 8036: 8036: 8036: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 8036: } 8036: 8036: template 8036: struct __equal 8036: { 8036: template 8036: static bool 8036: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8036: { 8036: for (; __first1 != __last1; ++__first1, (void) ++__first2) 8036: if (!(*__first1 == *__first2)) 8036: return false; 8036: return true; 8036: } 8036: }; 8036: 8036: template<> 8036: struct __equal 8036: { 8036: template 8036: static bool 8036: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 8036: { 8036: if (const size_t __len = (__last1 - __first1)) 8036: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 8036: return true; 8036: } 8036: }; 8036: 8036: template 8036: inline bool 8036: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 8036: { 8036: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8036: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8036: const bool __simple = ((__is_integer<_ValueType1>::__value 8036: || __is_pointer<_ValueType1>::__value) 8036: && __is_pointer<_II1>::__value 8036: && __is_pointer<_II2>::__value 8036: && __are_same<_ValueType1, _ValueType2>::__value); 8036: 8036: return std::__equal<__simple>::equal(__first1, __last1, __first2); 8036: } 8036: 8036: template 8036: struct __lc_rai 8036: { 8036: template 8036: static _II1 8036: __newlast1(_II1, _II1 __last1, _II2, _II2) 8036: { return __last1; } 8036: 8036: template 8036: static bool 8036: __cnd2(_II __first, _II __last) 8036: { return __first != __last; } 8036: }; 8036: 8036: template<> 8036: struct __lc_rai 8036: { 8036: template 8036: static _RAI1 8036: __newlast1(_RAI1 __first1, _RAI1 __last1, 8036: _RAI2 __first2, _RAI2 __last2) 8036: { 8036: const typename iterator_traits<_RAI1>::difference_type 8036: __diff1 = __last1 - __first1; 8036: const typename iterator_traits<_RAI2>::difference_type 8036: __diff2 = __last2 - __first2; 8036: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 8036: } 8036: 8036: template 8036: static bool 8036: __cnd2(_RAI, _RAI) 8036: { return true; } 8036: }; 8036: 8036: template 8036: bool 8036: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 8036: _II2 __first2, _II2 __last2, 8036: _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_II1>::iterator_category _Category1; 8036: typedef typename iterator_traits<_II2>::iterator_category _Category2; 8036: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 8036: 8036: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 8036: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 8036: ++__first1, (void)++__first2) 8036: { 8036: if (__comp(__first1, __first2)) 8036: return true; 8036: if (__comp(__first2, __first1)) 8036: return false; 8036: } 8036: return __first1 == __last1 && __first2 != __last2; 8036: } 8036: 8036: template 8036: struct __lexicographical_compare 8036: { 8036: template 8036: static bool __lc(_II1, _II1, _II2, _II2); 8036: }; 8036: 8036: template 8036: template 8036: bool 8036: __lexicographical_compare<_BoolType>:: 8036: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8036: { 8036: return std::__lexicographical_compare_impl(__first1, __last1, 8036: __first2, __last2, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: 8036: template<> 8036: struct __lexicographical_compare 8036: { 8036: template 8036: static bool 8036: __lc(const _Tp* __first1, const _Tp* __last1, 8036: const _Up* __first2, const _Up* __last2) 8036: { 8036: const size_t __len1 = __last1 - __first1; 8036: const size_t __len2 = __last2 - __first2; 8036: if (const size_t __len = std::min(__len1, __len2)) 8036: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 8036: return __result < 0; 8036: return __len1 < __len2; 8036: } 8036: }; 8036: 8036: template 8036: inline bool 8036: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 8036: _II2 __first2, _II2 __last2) 8036: { 8036: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8036: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8036: const bool __simple = 8036: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 8036: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 8036: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 8036: && __is_pointer<_II1>::__value 8036: && __is_pointer<_II2>::__value); 8036: 8036: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 8036: __first2, __last2); 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::difference_type 8036: _DistanceType; 8036: 8036: _DistanceType __len = std::distance(__first, __last); 8036: 8036: while (__len > 0) 8036: { 8036: _DistanceType __half = __len >> 1; 8036: _ForwardIterator __middle = __first; 8036: std::advance(__middle, __half); 8036: if (__comp(__middle, __val)) 8036: { 8036: __first = __middle; 8036: ++__first; 8036: __len = __len - __half - 1; 8036: } 8036: else 8036: __len = __half; 8036: } 8036: return __first; 8036: } 8036: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline _ForwardIterator 8036: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__lower_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_less_val()); 8036: } 8036: 8036: 8036: 8036: inline constexpr int 8036: __lg(int __n) 8036: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8036: 8036: inline constexpr unsigned 8036: __lg(unsigned __n) 8036: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8036: 8036: inline constexpr long 8036: __lg(long __n) 8036: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8036: 8036: inline constexpr unsigned long 8036: __lg(unsigned long __n) 8036: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8036: 8036: inline constexpr long long 8036: __lg(long long __n) 8036: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8036: 8036: inline constexpr unsigned long long 8036: __lg(unsigned long long __n) 8036: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8036: 8036: 8036: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline bool 8036: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__equal_aux(std::__niter_base(__first1), 8036: std::__niter_base(__last1), 8036: std::__niter_base(__first2)); 8036: } 8036: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline bool 8036: equal(_IIter1 __first1, _IIter1 __last1, 8036: _IIter2 __first2, _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2) 8036: if (!bool(__binary_pred(*__first1, *__first2))) 8036: return false; 8036: return true; 8036: } 8036: 8036: 8036: 8036: template 8036: inline bool 8036: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8036: { 8036: using _RATag = random_access_iterator_tag; 8036: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8036: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8036: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8036: if (_RAIters()) 8036: { 8036: auto __d1 = std::distance(__first1, __last1); 8036: auto __d2 = std::distance(__first2, __last2); 8036: if (__d1 != __d2) 8036: return false; 8036: return std::equal(__first1, __last1, __first2); 8036: } 8036: 8036: for (; __first1 != __last1 && __first2 != __last2; 8036: ++__first1, (void)++__first2) 8036: if (!(*__first1 == *__first2)) 8036: return false; 8036: return __first1 == __last1 && __first2 == __last2; 8036: } 8036: 8036: 8036: template 8036: inline bool 8036: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: using _RATag = random_access_iterator_tag; 8036: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8036: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8036: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8036: if (_RAIters()) 8036: { 8036: auto __d1 = std::distance(__first1, __last1); 8036: auto __d2 = std::distance(__first2, __last2); 8036: if (__d1 != __d2) 8036: return false; 8036: return std::equal(__first1, __last1, __first2, 8036: __binary_pred); 8036: } 8036: 8036: for (; __first1 != __last1 && __first2 != __last2; 8036: ++__first1, (void)++__first2) 8036: if (!bool(__binary_pred(*__first1, *__first2))) 8036: return false; 8036: return __first1 == __last1 && __first2 == __last2; 8036: } 8036: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline bool 8036: lexicographical_compare(_II1 __first1, _II1 __last1, 8036: _II2 __first2, _II2 __last2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 8036: std::__niter_base(__last1), 8036: std::__niter_base(__first2), 8036: std::__niter_base(__last2)); 8036: } 8036: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline bool 8036: lexicographical_compare(_II1 __first1, _II1 __last1, 8036: _II2 __first2, _II2 __last2, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__lexicographical_compare_impl 8036: (__first1, __last1, __first2, __last2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: pair<_InputIterator1, _InputIterator2> 8036: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8036: { 8036: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 8036: { 8036: ++__first1; 8036: ++__first2; 8036: } 8036: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 8036: } 8036: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline pair<_InputIterator1, _InputIterator2> 8036: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__mismatch(__first1, __last1, __first2, 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: template 8036: inline pair<_InputIterator1, _InputIterator2> 8036: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__mismatch(__first1, __last1, __first2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8036: } 8036: # 1431 "/usr/include/c++/8/bits/stl_algobase.h" 3 8036: 8036: 8036: } 8036: # 62 "/usr/include/c++/8/algorithm" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 8036: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: # 1 "/usr/include/c++/8/cstdlib" 1 3 8036: # 39 "/usr/include/c++/8/cstdlib" 3 8036: 8036: # 40 "/usr/include/c++/8/cstdlib" 3 8036: # 75 "/usr/include/c++/8/cstdlib" 3 8036: # 1 "/usr/include/stdlib.h" 1 3 4 8036: # 25 "/usr/include/stdlib.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 26 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 32 "/usr/include/stdlib.h" 2 3 4 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/waitflags.h" 1 3 4 8036: # 52 "/usr/include/powerpc64le-linux-gnu/bits/waitflags.h" 3 4 8036: typedef enum 8036: { 8036: P_ALL, 8036: P_PID, 8036: P_PGID 8036: } idtype_t; 8036: # 40 "/usr/include/stdlib.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/waitstatus.h" 1 3 4 8036: # 41 "/usr/include/stdlib.h" 2 3 4 8036: # 55 "/usr/include/stdlib.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/floatn.h" 1 3 4 8036: # 58 "/usr/include/powerpc64le-linux-gnu/bits/floatn.h" 3 4 8036: typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__KC__))); 8036: # 70 "/usr/include/powerpc64le-linux-gnu/bits/floatn.h" 3 4 8036: typedef __ieee128 _Float128; 8036: # 56 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: typedef struct 8036: { 8036: int quot; 8036: int rem; 8036: } div_t; 8036: 8036: 8036: 8036: typedef struct 8036: { 8036: long int quot; 8036: long int rem; 8036: } ldiv_t; 8036: 8036: 8036: 8036: 8036: 8036: __extension__ typedef struct 8036: { 8036: long long int quot; 8036: long long int rem; 8036: } lldiv_t; 8036: # 97 "/usr/include/stdlib.h" 3 4 8036: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern double atof (const char *__nptr) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: extern int atoi (const char *__nptr) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: extern long int atol (const char *__nptr) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: __extension__ extern long long int atoll (const char *__nptr) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern double strtod (const char *__restrict __nptr, 8036: char **__restrict __endptr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern float strtof (const char *__restrict __nptr, 8036: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: extern long double strtold (const char *__restrict __nptr, 8036: char **__restrict __endptr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern _Float128 strtof128 (const char *__restrict __nptr, 8036: char **__restrict __endptr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern long int strtol (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: extern unsigned long int strtoul (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: __extension__ 8036: extern long long int strtoq (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: __extension__ 8036: extern unsigned long long int strtouq (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: __extension__ 8036: extern long long int strtoll (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: __extension__ 8036: extern unsigned long long int strtoull (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern int strfromd (char *__dest, size_t __size, const char *__format, 8036: double __f) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: extern int strfromf (char *__dest, size_t __size, const char *__format, 8036: float __f) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: extern int strfroml (char *__dest, size_t __size, const char *__format, 8036: long double __f) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: 8036: 8036: extern int strfromf128 (char *__dest, size_t __size, const char * __format, 8036: _Float128 __f) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/locale_t.h" 1 3 4 8036: # 22 "/usr/include/powerpc64le-linux-gnu/bits/types/locale_t.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/__locale_t.h" 1 3 4 8036: # 28 "/usr/include/powerpc64le-linux-gnu/bits/types/__locale_t.h" 3 4 8036: struct __locale_struct 8036: { 8036: 8036: struct __locale_data *__locales[13]; 8036: 8036: 8036: const unsigned short int *__ctype_b; 8036: const int *__ctype_tolower; 8036: const int *__ctype_toupper; 8036: 8036: 8036: const char *__names[13]; 8036: }; 8036: 8036: typedef struct __locale_struct *__locale_t; 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/types/locale_t.h" 2 3 4 8036: 8036: typedef __locale_t locale_t; 8036: # 200 "/usr/include/stdlib.h" 2 3 4 8036: 8036: extern long int strtol_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base, 8036: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: extern unsigned long int strtoul_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, 8036: int __base, locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: __extension__ 8036: extern long long int strtoll_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, int __base, 8036: locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: __extension__ 8036: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, 8036: int __base, locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: extern double strtod_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: extern float strtof_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: extern long double strtold_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, 8036: locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: extern _Float128 strtof128_l (const char *__restrict __nptr, 8036: char **__restrict __endptr, 8036: locale_t __loc) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 8036: { 8036: return (int) strtol (__nptr, (char **) __null, 10); 8036: } 8036: extern __inline __attribute__ ((__gnu_inline__)) long int 8036: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 8036: { 8036: return strtol (__nptr, (char **) __null, 10); 8036: } 8036: 8036: 8036: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 8036: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 8036: { 8036: return strtoll (__nptr, (char **) __null, 10); 8036: } 8036: # 270 "/usr/include/stdlib.h" 3 4 8036: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern long int a64l (const char *__s) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 1 3 4 8036: # 27 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 3 4 8036: extern "C" { 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types.h" 1 3 4 8036: # 27 "/usr/include/powerpc64le-linux-gnu/bits/types.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 28 "/usr/include/powerpc64le-linux-gnu/bits/types.h" 2 3 4 8036: 8036: 8036: typedef unsigned char __u_char; 8036: typedef unsigned short int __u_short; 8036: typedef unsigned int __u_int; 8036: typedef unsigned long int __u_long; 8036: 8036: 8036: typedef signed char __int8_t; 8036: typedef unsigned char __uint8_t; 8036: typedef signed short int __int16_t; 8036: typedef unsigned short int __uint16_t; 8036: typedef signed int __int32_t; 8036: typedef unsigned int __uint32_t; 8036: 8036: typedef signed long int __int64_t; 8036: typedef unsigned long int __uint64_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef long int __quad_t; 8036: typedef unsigned long int __u_quad_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef long int __intmax_t; 8036: typedef unsigned long int __uintmax_t; 8036: # 130 "/usr/include/powerpc64le-linux-gnu/bits/types.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/typesizes.h" 1 3 4 8036: # 131 "/usr/include/powerpc64le-linux-gnu/bits/types.h" 2 3 4 8036: 8036: 8036: typedef unsigned long int __dev_t; 8036: typedef unsigned int __uid_t; 8036: typedef unsigned int __gid_t; 8036: typedef unsigned long int __ino_t; 8036: typedef unsigned long int __ino64_t; 8036: typedef unsigned int __mode_t; 8036: typedef unsigned long int __nlink_t; 8036: typedef long int __off_t; 8036: typedef long int __off64_t; 8036: typedef int __pid_t; 8036: typedef struct { int __val[2]; } __fsid_t; 8036: typedef long int __clock_t; 8036: typedef unsigned long int __rlim_t; 8036: typedef unsigned long int __rlim64_t; 8036: typedef unsigned int __id_t; 8036: typedef long int __time_t; 8036: typedef unsigned int __useconds_t; 8036: typedef long int __suseconds_t; 8036: 8036: typedef int __daddr_t; 8036: typedef int __key_t; 8036: 8036: 8036: typedef int __clockid_t; 8036: 8036: 8036: typedef void * __timer_t; 8036: 8036: 8036: typedef long int __blksize_t; 8036: 8036: 8036: 8036: 8036: typedef long int __blkcnt_t; 8036: typedef long int __blkcnt64_t; 8036: 8036: 8036: typedef unsigned long int __fsblkcnt_t; 8036: typedef unsigned long int __fsblkcnt64_t; 8036: 8036: 8036: typedef unsigned long int __fsfilcnt_t; 8036: typedef unsigned long int __fsfilcnt64_t; 8036: 8036: 8036: typedef long int __fsword_t; 8036: 8036: typedef long int __ssize_t; 8036: 8036: 8036: typedef long int __syscall_slong_t; 8036: 8036: typedef unsigned long int __syscall_ulong_t; 8036: 8036: 8036: 8036: typedef __off64_t __loff_t; 8036: typedef __quad_t *__qaddr_t; 8036: typedef char *__caddr_t; 8036: 8036: 8036: typedef long int __intptr_t; 8036: 8036: 8036: typedef unsigned int __socklen_t; 8036: 8036: 8036: 8036: 8036: typedef int __sig_atomic_t; 8036: # 30 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: 8036: typedef __u_char u_char; 8036: typedef __u_short u_short; 8036: typedef __u_int u_int; 8036: typedef __u_long u_long; 8036: typedef __quad_t quad_t; 8036: typedef __u_quad_t u_quad_t; 8036: typedef __fsid_t fsid_t; 8036: 8036: 8036: 8036: 8036: typedef __loff_t loff_t; 8036: 8036: 8036: 8036: typedef __ino_t ino_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __ino64_t ino64_t; 8036: 8036: 8036: 8036: 8036: typedef __dev_t dev_t; 8036: 8036: 8036: 8036: 8036: typedef __gid_t gid_t; 8036: 8036: 8036: 8036: 8036: typedef __mode_t mode_t; 8036: 8036: 8036: 8036: 8036: typedef __nlink_t nlink_t; 8036: 8036: 8036: 8036: 8036: typedef __uid_t uid_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef __off_t off_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __off64_t off64_t; 8036: 8036: 8036: 8036: 8036: typedef __pid_t pid_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef __id_t id_t; 8036: 8036: 8036: 8036: 8036: typedef __ssize_t ssize_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef __daddr_t daddr_t; 8036: typedef __caddr_t caddr_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef __key_t key_t; 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/clock_t.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __clock_t clock_t; 8036: # 128 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/clockid_t.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __clockid_t clockid_t; 8036: # 130 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/time_t.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __time_t time_t; 8036: # 131 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/timer_t.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __timer_t timer_t; 8036: # 132 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: 8036: typedef __useconds_t useconds_t; 8036: 8036: 8036: 8036: typedef __suseconds_t suseconds_t; 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 146 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: 8036: typedef unsigned long int ulong; 8036: typedef unsigned short int ushort; 8036: typedef unsigned int uint; 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdint-intn.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/stdint-intn.h" 3 4 8036: typedef __int8_t int8_t; 8036: typedef __int16_t int16_t; 8036: typedef __int32_t int32_t; 8036: typedef __int64_t int64_t; 8036: # 157 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: # 178 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 3 4 8036: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 8036: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 8036: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 8036: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 8036: 8036: typedef int register_t __attribute__ ((__mode__ (__word__))); 8036: # 194 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 3 4 8036: # 1 "/usr/include/endian.h" 1 3 4 8036: # 36 "/usr/include/endian.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/endian.h" 1 3 4 8036: # 37 "/usr/include/endian.h" 2 3 4 8036: # 60 "/usr/include/endian.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/byteswap.h" 1 3 4 8036: # 34 "/usr/include/powerpc64le-linux-gnu/bits/byteswap.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/byteswap-16.h" 1 3 4 8036: # 35 "/usr/include/powerpc64le-linux-gnu/bits/byteswap.h" 2 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/bits/byteswap.h" 3 4 8036: static __inline unsigned int 8036: __bswap_32 (unsigned int __bsx) 8036: { 8036: return __builtin_bswap32 (__bsx); 8036: } 8036: # 74 "/usr/include/powerpc64le-linux-gnu/bits/byteswap.h" 3 4 8036: static __inline __uint64_t 8036: __bswap_64 (__uint64_t __bsx) 8036: { 8036: return __builtin_bswap64 (__bsx); 8036: } 8036: # 61 "/usr/include/endian.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/uintn-identity.h" 1 3 4 8036: # 32 "/usr/include/powerpc64le-linux-gnu/bits/uintn-identity.h" 3 4 8036: static __inline __uint16_t 8036: __uint16_identity (__uint16_t __x) 8036: { 8036: return __x; 8036: } 8036: 8036: static __inline __uint32_t 8036: __uint32_identity (__uint32_t __x) 8036: { 8036: return __x; 8036: } 8036: 8036: static __inline __uint64_t 8036: __uint64_identity (__uint64_t __x) 8036: { 8036: return __x; 8036: } 8036: # 62 "/usr/include/endian.h" 2 3 4 8036: # 195 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 1 3 4 8036: # 30 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/select.h" 1 3 4 8036: # 31 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/sigset_t.h" 1 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/__sigset_t.h" 1 3 4 8036: 8036: 8036: 8036: 8036: typedef struct 8036: { 8036: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 8036: } __sigset_t; 8036: # 5 "/usr/include/powerpc64le-linux-gnu/bits/types/sigset_t.h" 2 3 4 8036: 8036: 8036: typedef __sigset_t sigset_t; 8036: # 34 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/struct_timeval.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct timeval 8036: { 8036: __time_t tv_sec; 8036: __suseconds_t tv_usec; 8036: }; 8036: # 38 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/struct_timespec.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct timespec 8036: { 8036: __time_t tv_sec; 8036: __syscall_slong_t tv_nsec; 8036: }; 8036: # 40 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 2 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: typedef long int __fd_mask; 8036: # 59 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: typedef struct 8036: { 8036: 8036: 8036: 8036: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 8036: 8036: 8036: 8036: 8036: 8036: } fd_set; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __fd_mask fd_mask; 8036: # 91 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: extern "C" { 8036: # 101 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: extern int select (int __nfds, fd_set *__restrict __readfds, 8036: fd_set *__restrict __writefds, 8036: fd_set *__restrict __exceptfds, 8036: struct timeval *__restrict __timeout); 8036: # 113 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 3 4 8036: extern int pselect (int __nfds, fd_set *__restrict __readfds, 8036: fd_set *__restrict __writefds, 8036: fd_set *__restrict __exceptfds, 8036: const struct timespec *__restrict __timeout, 8036: const __sigset_t *__restrict __sigmask); 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/select2.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/select2.h" 3 4 8036: extern long int __fdelt_chk (long int __d); 8036: extern long int __fdelt_warn (long int __d) 8036: __attribute__((__warning__ ("bit outside of fd_set selected"))); 8036: # 124 "/usr/include/powerpc64le-linux-gnu/sys/select.h" 2 3 4 8036: 8036: 8036: } 8036: # 198 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/sys/sysmacros.h" 1 3 4 8036: # 41 "/usr/include/powerpc64le-linux-gnu/sys/sysmacros.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/sysmacros.h" 1 3 4 8036: # 42 "/usr/include/powerpc64le-linux-gnu/sys/sysmacros.h" 2 3 4 8036: # 71 "/usr/include/powerpc64le-linux-gnu/sys/sysmacros.h" 3 4 8036: extern "C" { 8036: 8036: extern unsigned int gnu_dev_major (__dev_t __dev) throw () __attribute__ ((__const__)); 8036: extern unsigned int gnu_dev_minor (__dev_t __dev) throw () __attribute__ ((__const__)); 8036: extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_major (__dev_t __dev) throw () { unsigned int __major; __major = ((__dev & (__dev_t) 0x00000000000fff00u) >> 8); __major |= ((__dev & (__dev_t) 0xfffff00000000000u) >> 32); return __major; } 8036: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_minor (__dev_t __dev) throw () { unsigned int __minor; __minor = ((__dev & (__dev_t) 0x00000000000000ffu) >> 0); __minor |= ((__dev & (__dev_t) 0x00000ffffff00000u) >> 12); return __minor; } 8036: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) __dev_t __attribute__ ((__leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () { __dev_t __dev; __dev = (((__dev_t) (__major & 0x00000fffu)) << 8); __dev |= (((__dev_t) (__major & 0xfffff000u)) << 32); __dev |= (((__dev_t) (__minor & 0x000000ffu)) << 0); __dev |= (((__dev_t) (__minor & 0xffffff00u)) << 12); return __dev; } 8036: 8036: 8036: 8036: } 8036: # 206 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __blksize_t blksize_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __blkcnt_t blkcnt_t; 8036: 8036: 8036: 8036: typedef __fsblkcnt_t fsblkcnt_t; 8036: 8036: 8036: 8036: typedef __fsfilcnt_t fsfilcnt_t; 8036: # 246 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 3 4 8036: typedef __blkcnt64_t blkcnt64_t; 8036: typedef __fsblkcnt64_t fsblkcnt64_t; 8036: typedef __fsfilcnt64_t fsfilcnt64_t; 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/thread-shared-types.h" 1 3 4 8036: # 58 "/usr/include/powerpc64le-linux-gnu/bits/thread-shared-types.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 8036: # 22 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8036: struct __pthread_rwlock_arch_t 8036: { 8036: unsigned int __readers; 8036: unsigned int __writers; 8036: unsigned int __wrphase_futex; 8036: unsigned int __writers_futex; 8036: unsigned int __pad3; 8036: unsigned int __pad4; 8036: 8036: int __cur_writer; 8036: int __shared; 8036: unsigned char __rwelision; 8036: unsigned char __pad1[7]; 8036: unsigned long int __pad2; 8036: 8036: 8036: unsigned int __flags; 8036: # 77 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8036: }; 8036: # 59 "/usr/include/powerpc64le-linux-gnu/bits/thread-shared-types.h" 2 3 4 8036: 8036: 8036: 8036: 8036: typedef struct __pthread_internal_list 8036: { 8036: struct __pthread_internal_list *__prev; 8036: struct __pthread_internal_list *__next; 8036: } __pthread_list_t; 8036: # 99 "/usr/include/powerpc64le-linux-gnu/bits/thread-shared-types.h" 3 4 8036: struct __pthread_mutex_s 8036: { 8036: int __lock ; 8036: unsigned int __count; 8036: int __owner; 8036: 8036: unsigned int __nusers; 8036: 8036: 8036: 8036: int __kind; 8036: 8036: 8036: short __spins; short __elision; 8036: __pthread_list_t __list; 8036: # 123 "/usr/include/powerpc64le-linux-gnu/bits/thread-shared-types.h" 3 4 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: struct __pthread_cond_s 8036: { 8036: __extension__ union 8036: { 8036: __extension__ unsigned long long int __wseq; 8036: struct 8036: { 8036: unsigned int __low; 8036: unsigned int __high; 8036: } __wseq32; 8036: }; 8036: __extension__ union 8036: { 8036: __extension__ unsigned long long int __g1_start; 8036: struct 8036: { 8036: unsigned int __low; 8036: unsigned int __high; 8036: } __g1_start32; 8036: }; 8036: unsigned int __g_refs[2] ; 8036: unsigned int __g_size[2]; 8036: unsigned int __g1_orig_size; 8036: unsigned int __wrefs; 8036: unsigned int __g_signals[2]; 8036: }; 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes.h" 2 3 4 8036: 8036: 8036: 8036: typedef unsigned long int pthread_t; 8036: 8036: 8036: 8036: 8036: typedef union 8036: { 8036: char __size[4]; 8036: int __align; 8036: } pthread_mutexattr_t; 8036: 8036: 8036: 8036: 8036: typedef union 8036: { 8036: char __size[4]; 8036: int __align; 8036: } pthread_condattr_t; 8036: 8036: 8036: 8036: typedef unsigned int pthread_key_t; 8036: 8036: 8036: 8036: typedef int pthread_once_t; 8036: 8036: 8036: union pthread_attr_t 8036: { 8036: char __size[56]; 8036: long int __align; 8036: }; 8036: 8036: typedef union pthread_attr_t pthread_attr_t; 8036: 8036: 8036: 8036: 8036: typedef union 8036: { 8036: struct __pthread_mutex_s __data; 8036: char __size[40]; 8036: long int __align; 8036: } pthread_mutex_t; 8036: 8036: 8036: typedef union 8036: { 8036: struct __pthread_cond_s __data; 8036: char __size[48]; 8036: __extension__ long long int __align; 8036: } pthread_cond_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef union 8036: { 8036: struct __pthread_rwlock_arch_t __data; 8036: char __size[56]; 8036: long int __align; 8036: } pthread_rwlock_t; 8036: 8036: typedef union 8036: { 8036: char __size[8]; 8036: long int __align; 8036: } pthread_rwlockattr_t; 8036: 8036: 8036: 8036: 8036: 8036: typedef volatile int pthread_spinlock_t; 8036: 8036: 8036: 8036: 8036: typedef union 8036: { 8036: char __size[32]; 8036: long int __align; 8036: } pthread_barrier_t; 8036: 8036: typedef union 8036: { 8036: char __size[4]; 8036: int __align; 8036: } pthread_barrierattr_t; 8036: # 255 "/usr/include/powerpc64le-linux-gnu/sys/types.h" 2 3 4 8036: 8036: 8036: } 8036: # 280 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern long int random (void) throw (); 8036: 8036: 8036: extern void srandom (unsigned int __seed) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern char *initstate (unsigned int __seed, char *__statebuf, 8036: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct random_data 8036: { 8036: int32_t *fptr; 8036: int32_t *rptr; 8036: int32_t *state; 8036: int rand_type; 8036: int rand_deg; 8036: int rand_sep; 8036: int32_t *end_ptr; 8036: }; 8036: 8036: extern int random_r (struct random_data *__restrict __buf, 8036: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 8036: size_t __statelen, 8036: struct random_data *__restrict __buf) 8036: throw () __attribute__ ((__nonnull__ (2, 4))); 8036: 8036: extern int setstate_r (char *__restrict __statebuf, 8036: struct random_data *__restrict __buf) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: 8036: extern int rand (void) throw (); 8036: 8036: extern void srand (unsigned int __seed) throw (); 8036: 8036: 8036: 8036: extern int rand_r (unsigned int *__seed) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern double drand48 (void) throw (); 8036: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern long int lrand48 (void) throw (); 8036: extern long int nrand48 (unsigned short int __xsubi[3]) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern long int mrand48 (void) throw (); 8036: extern long int jrand48 (unsigned short int __xsubi[3]) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern void srand48 (long int __seedval) throw (); 8036: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: struct drand48_data 8036: { 8036: unsigned short int __x[3]; 8036: unsigned short int __old_x[3]; 8036: unsigned short int __c; 8036: unsigned short int __init; 8036: __extension__ unsigned long long int __a; 8036: 8036: }; 8036: 8036: 8036: extern int drand48_r (struct drand48_data *__restrict __buffer, 8036: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern int erand48_r (unsigned short int __xsubi[3], 8036: struct drand48_data *__restrict __buffer, 8036: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int lrand48_r (struct drand48_data *__restrict __buffer, 8036: long int *__restrict __result) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern int nrand48_r (unsigned short int __xsubi[3], 8036: struct drand48_data *__restrict __buffer, 8036: long int *__restrict __result) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int mrand48_r (struct drand48_data *__restrict __buffer, 8036: long int *__restrict __result) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern int jrand48_r (unsigned short int __xsubi[3], 8036: struct drand48_data *__restrict __buffer, 8036: long int *__restrict __result) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: extern int seed48_r (unsigned short int __seed16v[3], 8036: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern int lcong48_r (unsigned short int __param[7], 8036: struct drand48_data *__buffer) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: extern void *calloc (size_t __nmemb, size_t __size) 8036: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern void *realloc (void *__ptr, size_t __size) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern void free (void *__ptr) throw (); 8036: 8036: 8036: # 1 "/usr/include/alloca.h" 1 3 4 8036: # 24 "/usr/include/alloca.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 25 "/usr/include/alloca.h" 2 3 4 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: 8036: extern void *alloca (size_t __size) throw (); 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 452 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern void *aligned_alloc (size_t __alignment, size_t __size) 8036: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern void abort (void) throw () __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern "C++" int at_quick_exit (void (*__func) (void)) 8036: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 8036: # 492 "/usr/include/stdlib.h" 3 4 8036: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: 8036: 8036: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: 8036: 8036: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: 8036: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern char *secure_getenv (const char *__name) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: extern int setenv (const char *__name, const char *__value, int __replace) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int clearenv (void) throw (); 8036: # 557 "/usr/include/stdlib.h" 3 4 8036: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 8036: # 570 "/usr/include/stdlib.h" 3 4 8036: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 580 "/usr/include/stdlib.h" 3 4 8036: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 592 "/usr/include/stdlib.h" 3 4 8036: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 602 "/usr/include/stdlib.h" 3 4 8036: extern int mkstemps64 (char *__template, int __suffixlen) 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 613 "/usr/include/stdlib.h" 3 4 8036: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 624 "/usr/include/stdlib.h" 3 4 8036: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 634 "/usr/include/stdlib.h" 3 4 8036: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 644 "/usr/include/stdlib.h" 3 4 8036: extern int mkostemps (char *__template, int __suffixlen, int __flags) 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 656 "/usr/include/stdlib.h" 3 4 8036: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 666 "/usr/include/stdlib.h" 3 4 8036: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern char *canonicalize_file_name (const char *__name) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 682 "/usr/include/stdlib.h" 3 4 8036: extern char *realpath (const char *__restrict __name, 8036: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef int (*__compar_fn_t) (const void *, const void *); 8036: 8036: 8036: typedef __compar_fn_t comparison_fn_t; 8036: 8036: 8036: 8036: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 8036: 8036: 8036: 8036: 8036: extern void *bsearch (const void *__key, const void *__base, 8036: size_t __nmemb, size_t __size, __compar_fn_t __compar) 8036: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 8036: # 19 "/usr/include/powerpc64le-linux-gnu/bits/stdlib-bsearch.h" 3 4 8036: extern __inline __attribute__ ((__gnu_inline__)) void * 8036: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 8036: __compar_fn_t __compar) 8036: { 8036: size_t __l, __u, __idx; 8036: const void *__p; 8036: int __comparison; 8036: 8036: __l = 0; 8036: __u = __nmemb; 8036: while (__l < __u) 8036: { 8036: __idx = (__l + __u) / 2; 8036: __p = (void *) (((const char *) __base) + (__idx * __size)); 8036: __comparison = (*__compar) (__key, __p); 8036: if (__comparison < 0) 8036: __u = __idx; 8036: else if (__comparison > 0) 8036: __l = __idx + 1; 8036: else 8036: return (void *) __p; 8036: } 8036: 8036: return __null; 8036: } 8036: # 708 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: 8036: extern void qsort (void *__base, size_t __nmemb, size_t __size, 8036: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 8036: __compar_d_fn_t __compar, void *__arg) 8036: __attribute__ ((__nonnull__ (1, 4))); 8036: 8036: 8036: 8036: 8036: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: __extension__ extern long long int llabs (long long int __x) 8036: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern div_t div (int __numer, int __denom) 8036: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: extern ldiv_t ldiv (long int __numer, long int __denom) 8036: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: __extension__ extern lldiv_t lldiv (long long int __numer, 8036: long long int __denom) 8036: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8036: # 754 "/usr/include/stdlib.h" 3 4 8036: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 8036: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 8036: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern char *gcvt (double __value, int __ndigit, char *__buf) 8036: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern char *qecvt (long double __value, int __ndigit, 8036: int *__restrict __decpt, int *__restrict __sign) 8036: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8036: extern char *qfcvt (long double __value, int __ndigit, 8036: int *__restrict __decpt, int *__restrict __sign) 8036: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8036: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 8036: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 8036: int *__restrict __sign, char *__restrict __buf, 8036: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8036: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 8036: int *__restrict __sign, char *__restrict __buf, 8036: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8036: 8036: extern int qecvt_r (long double __value, int __ndigit, 8036: int *__restrict __decpt, int *__restrict __sign, 8036: char *__restrict __buf, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8036: extern int qfcvt_r (long double __value, int __ndigit, 8036: int *__restrict __decpt, int *__restrict __sign, 8036: char *__restrict __buf, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8036: 8036: 8036: 8036: 8036: 8036: extern int mblen (const char *__s, size_t __n) throw (); 8036: 8036: 8036: extern int mbtowc (wchar_t *__restrict __pwc, 8036: const char *__restrict __s, size_t __n) throw (); 8036: 8036: 8036: extern int wctomb (char *__s, wchar_t __wchar) throw (); 8036: 8036: 8036: 8036: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 8036: const char *__restrict __s, size_t __n) throw (); 8036: 8036: extern size_t wcstombs (char *__restrict __s, 8036: const wchar_t *__restrict __pwcs, size_t __n) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 839 "/usr/include/stdlib.h" 3 4 8036: extern int getsubopt (char **__restrict __optionp, 8036: char *const *__restrict __tokens, 8036: char **__restrict __valuep) 8036: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int grantpt (int __fd) throw (); 8036: 8036: 8036: 8036: extern int unlockpt (int __fd) throw (); 8036: 8036: 8036: 8036: 8036: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: extern int getpt (void); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int getloadavg (double __loadavg[], int __nelem) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 901 "/usr/include/stdlib.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdlib-float.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/stdlib-float.h" 3 4 8036: extern __inline __attribute__ ((__gnu_inline__)) double 8036: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 8036: { 8036: return strtod (__nptr, (char **) __null); 8036: } 8036: # 902 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdlib.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/stdlib.h" 3 4 8036: extern char *__realpath_chk (const char *__restrict __name, 8036: char *__restrict __resolved, 8036: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 8036: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) 8036: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8036: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 8036: { 8036: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 8036: { 8036: 8036: 8036: 8036: 8036: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 8036: } 8036: 8036: return __realpath_alias (__name, __resolved); 8036: } 8036: 8036: 8036: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 8036: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8036: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 8036: 8036: __attribute__ ((__nonnull__ (2))); 8036: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 8036: 8036: 8036: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__buflen)) 8036: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8036: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __ptsname_r_alias (__fd, __buf, __buflen); 8036: } 8036: 8036: 8036: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 8036: __attribute__ ((__warn_unused_result__)); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 8036: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8036: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 8036: return __wctomb_alias (__s, __wchar); 8036: } 8036: 8036: 8036: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 8036: const char *__restrict __src, 8036: size_t __len, size_t __dstlen) throw (); 8036: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 8036: 8036: 8036: ; 8036: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __mbstowcs_chk (__dst, __src, __len, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: 8036: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8036: return __mbstowcs_chk_warn (__dst, __src, __len, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: } 8036: return __mbstowcs_alias (__dst, __src, __len); 8036: } 8036: 8036: 8036: extern size_t __wcstombs_chk (char *__restrict __dst, 8036: const wchar_t *__restrict __src, 8036: size_t __len, size_t __dstlen) throw (); 8036: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 8036: 8036: 8036: ; 8036: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8036: if (__len > __builtin_object_size (__dst, 2 > 1)) 8036: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8036: } 8036: return __wcstombs_alias (__dst, __src, __len); 8036: } 8036: # 906 "/usr/include/stdlib.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 76 "/usr/include/c++/8/cstdlib" 2 3 8036: 8036: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 8036: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 8036: extern "C++" 8036: { 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: using ::abs; 8036: 8036: 8036: inline long 8036: abs(long __i) { return __builtin_labs(__i); } 8036: 8036: 8036: 8036: inline long long 8036: abs(long long __x) { return __builtin_llabs (__x); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline constexpr double 8036: abs(double __x) 8036: { return __builtin_fabs(__x); } 8036: 8036: inline constexpr float 8036: abs(float __x) 8036: { return __builtin_fabsf(__x); } 8036: 8036: inline constexpr long double 8036: abs(long double __x) 8036: { return __builtin_fabsl(__x); } 8036: 8036: 8036: 8036: inline constexpr __int128 8036: abs(__int128 __x) { return __x >= 0 ? __x : -__x; } 8036: # 100 "/usr/include/c++/8/bits/std_abs.h" 3 8036: inline constexpr 8036: __ieee128 8036: abs(__ieee128 __x) 8036: { return __x < 0 ? -__x : __x; } 8036: 8036: 8036: 8036: } 8036: } 8036: # 78 "/usr/include/c++/8/cstdlib" 2 3 8036: # 118 "/usr/include/c++/8/cstdlib" 3 8036: extern "C++" 8036: { 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: using ::div_t; 8036: using ::ldiv_t; 8036: 8036: using ::abort; 8036: using ::atexit; 8036: 8036: 8036: using ::at_quick_exit; 8036: 8036: 8036: using ::atof; 8036: using ::atoi; 8036: using ::atol; 8036: using ::bsearch; 8036: using ::calloc; 8036: using ::div; 8036: using ::exit; 8036: using ::free; 8036: using ::getenv; 8036: using ::labs; 8036: using ::ldiv; 8036: using ::malloc; 8036: 8036: using ::mblen; 8036: using ::mbstowcs; 8036: using ::mbtowc; 8036: 8036: using ::qsort; 8036: 8036: 8036: using ::quick_exit; 8036: 8036: 8036: using ::rand; 8036: using ::realloc; 8036: using ::srand; 8036: using ::strtod; 8036: using ::strtol; 8036: using ::strtoul; 8036: using ::system; 8036: 8036: using ::wcstombs; 8036: using ::wctomb; 8036: 8036: 8036: 8036: inline ldiv_t 8036: div(long __i, long __j) { return ldiv(__i, __j); } 8036: 8036: 8036: 8036: 8036: } 8036: # 189 "/usr/include/c++/8/cstdlib" 3 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: using ::lldiv_t; 8036: 8036: 8036: 8036: 8036: 8036: using ::_Exit; 8036: 8036: 8036: 8036: using ::llabs; 8036: 8036: inline lldiv_t 8036: div(long long __n, long long __d) 8036: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 8036: 8036: using ::lldiv; 8036: # 221 "/usr/include/c++/8/cstdlib" 3 8036: using ::atoll; 8036: using ::strtoll; 8036: using ::strtoull; 8036: 8036: using ::strtof; 8036: using ::strtold; 8036: 8036: 8036: } 8036: 8036: namespace std 8036: { 8036: 8036: using ::__gnu_cxx::lldiv_t; 8036: 8036: using ::__gnu_cxx::_Exit; 8036: 8036: using ::__gnu_cxx::llabs; 8036: using ::__gnu_cxx::div; 8036: using ::__gnu_cxx::lldiv; 8036: 8036: using ::__gnu_cxx::atoll; 8036: using ::__gnu_cxx::strtof; 8036: using ::__gnu_cxx::strtoll; 8036: using ::__gnu_cxx::strtoull; 8036: using ::__gnu_cxx::strtold; 8036: } 8036: 8036: 8036: 8036: } 8036: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: template 8036: bool 8036: all_of(_IIter, _IIter, _Predicate); 8036: 8036: template 8036: bool 8036: any_of(_IIter, _IIter, _Predicate); 8036: 8036: 8036: template 8036: bool 8036: binary_search(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: bool 8036: binary_search(_FIter, _FIter, const _Tp&, _Compare); 8036: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: template 8036: _OIter 8036: copy(_IIter, _IIter, _OIter); 8036: 8036: template 8036: _BIter2 8036: copy_backward(_BIter1, _BIter1, _BIter2); 8036: 8036: 8036: template 8036: _OIter 8036: copy_if(_IIter, _IIter, _OIter, _Predicate); 8036: 8036: template 8036: _OIter 8036: copy_n(_IIter, _Size, _OIter); 8036: 8036: 8036: 8036: 8036: 8036: template 8036: pair<_FIter, _FIter> 8036: equal_range(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: pair<_FIter, _FIter> 8036: equal_range(_FIter, _FIter, const _Tp&, _Compare); 8036: 8036: template 8036: void 8036: fill(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: _OIter 8036: fill_n(_OIter, _Size, const _Tp&); 8036: 8036: 8036: 8036: template 8036: _FIter1 8036: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 8036: 8036: template 8036: _FIter1 8036: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _IIter 8036: find_if_not(_IIter, _IIter, _Predicate); 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: bool 8036: includes(_IIter1, _IIter1, _IIter2, _IIter2); 8036: 8036: template 8036: bool 8036: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8036: 8036: template 8036: void 8036: inplace_merge(_BIter, _BIter, _BIter); 8036: 8036: template 8036: void 8036: inplace_merge(_BIter, _BIter, _BIter, _Compare); 8036: 8036: 8036: template 8036: bool 8036: is_heap(_RAIter, _RAIter); 8036: 8036: template 8036: bool 8036: is_heap(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: _RAIter 8036: is_heap_until(_RAIter, _RAIter); 8036: 8036: template 8036: _RAIter 8036: is_heap_until(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: bool 8036: is_partitioned(_IIter, _IIter, _Predicate); 8036: 8036: template 8036: bool 8036: is_permutation(_FIter1, _FIter1, _FIter2); 8036: 8036: template 8036: bool 8036: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 8036: 8036: template 8036: bool 8036: is_sorted(_FIter, _FIter); 8036: 8036: template 8036: bool 8036: is_sorted(_FIter, _FIter, _Compare); 8036: 8036: template 8036: _FIter 8036: is_sorted_until(_FIter, _FIter); 8036: 8036: template 8036: _FIter 8036: is_sorted_until(_FIter, _FIter, _Compare); 8036: 8036: 8036: template 8036: void 8036: iter_swap(_FIter1, _FIter2); 8036: 8036: template 8036: _FIter 8036: lower_bound(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: _FIter 8036: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 8036: 8036: template 8036: void 8036: make_heap(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: make_heap(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: 8036: const _Tp& 8036: max(const _Tp&, const _Tp&); 8036: 8036: template 8036: 8036: const _Tp& 8036: max(const _Tp&, const _Tp&, _Compare); 8036: 8036: 8036: 8036: 8036: template 8036: 8036: const _Tp& 8036: min(const _Tp&, const _Tp&); 8036: 8036: template 8036: 8036: const _Tp& 8036: min(const _Tp&, const _Tp&, _Compare); 8036: 8036: 8036: 8036: 8036: template 8036: 8036: pair 8036: minmax(const _Tp&, const _Tp&); 8036: 8036: template 8036: 8036: pair 8036: minmax(const _Tp&, const _Tp&, _Compare); 8036: 8036: template 8036: 8036: pair<_FIter, _FIter> 8036: minmax_element(_FIter, _FIter); 8036: 8036: template 8036: 8036: pair<_FIter, _FIter> 8036: minmax_element(_FIter, _FIter, _Compare); 8036: 8036: template 8036: 8036: _Tp 8036: min(initializer_list<_Tp>); 8036: 8036: template 8036: 8036: _Tp 8036: min(initializer_list<_Tp>, _Compare); 8036: 8036: template 8036: 8036: _Tp 8036: max(initializer_list<_Tp>); 8036: 8036: template 8036: 8036: _Tp 8036: max(initializer_list<_Tp>, _Compare); 8036: 8036: template 8036: 8036: pair<_Tp, _Tp> 8036: minmax(initializer_list<_Tp>); 8036: 8036: template 8036: 8036: pair<_Tp, _Tp> 8036: minmax(initializer_list<_Tp>, _Compare); 8036: 8036: 8036: 8036: 8036: template 8036: bool 8036: next_permutation(_BIter, _BIter); 8036: 8036: template 8036: bool 8036: next_permutation(_BIter, _BIter, _Compare); 8036: 8036: 8036: template 8036: bool 8036: none_of(_IIter, _IIter, _Predicate); 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _RAIter 8036: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 8036: 8036: template 8036: _RAIter 8036: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 8036: 8036: 8036: 8036: 8036: template 8036: pair<_OIter1, _OIter2> 8036: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 8036: 8036: template 8036: _FIter 8036: partition_point(_FIter, _FIter, _Predicate); 8036: 8036: 8036: template 8036: void 8036: pop_heap(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: pop_heap(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: bool 8036: prev_permutation(_BIter, _BIter); 8036: 8036: template 8036: bool 8036: prev_permutation(_BIter, _BIter, _Compare); 8036: 8036: template 8036: void 8036: push_heap(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: push_heap(_RAIter, _RAIter, _Compare); 8036: 8036: 8036: 8036: template 8036: _FIter 8036: remove(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: _FIter 8036: remove_if(_FIter, _FIter, _Predicate); 8036: 8036: template 8036: _OIter 8036: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 8036: 8036: template 8036: _OIter 8036: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 8036: 8036: 8036: 8036: template 8036: _OIter 8036: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 8036: 8036: template 8036: _OIter 8036: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 8036: 8036: 8036: 8036: template 8036: void 8036: reverse(_BIter, _BIter); 8036: 8036: template 8036: _OIter 8036: reverse_copy(_BIter, _BIter, _OIter); 8036: 8036: inline namespace _V2 8036: { 8036: template 8036: _FIter 8036: rotate(_FIter, _FIter, _FIter); 8036: } 8036: 8036: template 8036: _OIter 8036: rotate_copy(_FIter, _FIter, _FIter, _OIter); 8036: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: template 8036: void 8036: shuffle(_RAIter, _RAIter, _UGenerator&&); 8036: 8036: 8036: template 8036: void 8036: sort_heap(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: sort_heap(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: _BIter 8036: stable_partition(_BIter, _BIter, _Predicate); 8036: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8036: template 8036: _FIter2 8036: swap_ranges(_FIter1, _FIter1, _FIter2); 8036: 8036: 8036: 8036: template 8036: _FIter 8036: unique(_FIter, _FIter); 8036: 8036: template 8036: _FIter 8036: unique(_FIter, _FIter, _BinaryPredicate); 8036: 8036: 8036: 8036: template 8036: _FIter 8036: upper_bound(_FIter, _FIter, const _Tp&); 8036: 8036: template 8036: _FIter 8036: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 8036: 8036: 8036: 8036: template 8036: _FIter 8036: adjacent_find(_FIter, _FIter); 8036: 8036: template 8036: _FIter 8036: adjacent_find(_FIter, _FIter, _BinaryPredicate); 8036: 8036: template 8036: typename iterator_traits<_IIter>::difference_type 8036: count(_IIter, _IIter, const _Tp&); 8036: 8036: template 8036: typename iterator_traits<_IIter>::difference_type 8036: count_if(_IIter, _IIter, _Predicate); 8036: 8036: template 8036: bool 8036: equal(_IIter1, _IIter1, _IIter2); 8036: 8036: template 8036: bool 8036: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8036: 8036: template 8036: _IIter 8036: find(_IIter, _IIter, const _Tp&); 8036: 8036: template 8036: _FIter1 8036: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 8036: 8036: template 8036: _FIter1 8036: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8036: 8036: template 8036: _IIter 8036: find_if(_IIter, _IIter, _Predicate); 8036: 8036: template 8036: _Funct 8036: for_each(_IIter, _IIter, _Funct); 8036: 8036: template 8036: void 8036: generate(_FIter, _FIter, _Generator); 8036: 8036: template 8036: _OIter 8036: generate_n(_OIter, _Size, _Generator); 8036: 8036: template 8036: bool 8036: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 8036: 8036: template 8036: bool 8036: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8036: 8036: template 8036: 8036: _FIter 8036: max_element(_FIter, _FIter); 8036: 8036: template 8036: 8036: _FIter 8036: max_element(_FIter, _FIter, _Compare); 8036: 8036: template 8036: _OIter 8036: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8036: 8036: template 8036: _OIter 8036: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8036: 8036: template 8036: 8036: _FIter 8036: min_element(_FIter, _FIter); 8036: 8036: template 8036: 8036: _FIter 8036: min_element(_FIter, _FIter, _Compare); 8036: 8036: template 8036: pair<_IIter1, _IIter2> 8036: mismatch(_IIter1, _IIter1, _IIter2); 8036: 8036: template 8036: pair<_IIter1, _IIter2> 8036: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8036: 8036: template 8036: void 8036: nth_element(_RAIter, _RAIter, _RAIter); 8036: 8036: template 8036: void 8036: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 8036: 8036: template 8036: void 8036: partial_sort(_RAIter, _RAIter, _RAIter); 8036: 8036: template 8036: void 8036: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 8036: 8036: template 8036: _BIter 8036: partition(_BIter, _BIter, _Predicate); 8036: 8036: template 8036: void 8036: random_shuffle(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: random_shuffle(_RAIter, _RAIter, 8036: 8036: _Generator&&); 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: replace(_FIter, _FIter, const _Tp&, const _Tp&); 8036: 8036: template 8036: void 8036: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 8036: 8036: template 8036: _FIter1 8036: search(_FIter1, _FIter1, _FIter2, _FIter2); 8036: 8036: template 8036: _FIter1 8036: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8036: 8036: template 8036: _FIter 8036: search_n(_FIter, _FIter, _Size, const _Tp&); 8036: 8036: template 8036: _FIter 8036: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 8036: 8036: template 8036: _OIter 8036: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8036: 8036: template 8036: _OIter 8036: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8036: 8036: template 8036: _OIter 8036: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8036: 8036: template 8036: _OIter 8036: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8036: 8036: template 8036: _OIter 8036: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8036: 8036: template 8036: _OIter 8036: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 8036: _OIter, _Compare); 8036: 8036: template 8036: _OIter 8036: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8036: 8036: template 8036: _OIter 8036: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8036: 8036: template 8036: void 8036: sort(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: sort(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: void 8036: stable_sort(_RAIter, _RAIter); 8036: 8036: template 8036: void 8036: stable_sort(_RAIter, _RAIter, _Compare); 8036: 8036: template 8036: _OIter 8036: transform(_IIter, _IIter, _OIter, _UnaryOperation); 8036: 8036: template 8036: _OIter 8036: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 8036: 8036: template 8036: _OIter 8036: unique_copy(_IIter, _IIter, _OIter); 8036: 8036: template 8036: _OIter 8036: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 8036: 8036: 8036: 8036: } 8036: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 8036: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _Distance 8036: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 8036: _Compare& __comp) 8036: { 8036: _Distance __parent = 0; 8036: for (_Distance __child = 1; __child < __n; ++__child) 8036: { 8036: if (__comp(__first + __parent, __first + __child)) 8036: return __child; 8036: if ((__child & 1) == 0) 8036: ++__parent; 8036: } 8036: return __n; 8036: } 8036: 8036: 8036: 8036: template 8036: inline bool 8036: __is_heap(_RandomAccessIterator __first, _Distance __n) 8036: { 8036: __gnu_cxx::__ops::_Iter_less_iter __comp; 8036: return std::__is_heap_until(__first, __n, __comp) == __n; 8036: } 8036: 8036: template 8036: inline bool 8036: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 8036: { 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: return std::__is_heap_until(__first, __n, __cmp) == __n; 8036: } 8036: 8036: template 8036: inline bool 8036: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { return std::__is_heap(__first, std::distance(__first, __last)); } 8036: 8036: template 8036: inline bool 8036: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: return std::__is_heap(__first, std::move(__comp), 8036: std::distance(__first, __last)); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: __push_heap(_RandomAccessIterator __first, 8036: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 8036: _Compare& __comp) 8036: { 8036: _Distance __parent = (__holeIndex - 1) / 2; 8036: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 8036: { 8036: *(__first + __holeIndex) = std::move(*(__first + __parent)); 8036: __holeIndex = __parent; 8036: __parent = (__holeIndex - 1) / 2; 8036: } 8036: *(__first + __holeIndex) = std::move(__value); 8036: } 8036: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: __gnu_cxx::__ops::_Iter_less_val __comp; 8036: _ValueType __value = std::move(*(__last - 1)); 8036: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8036: _DistanceType(0), std::move(__value), __comp); 8036: } 8036: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8036: __cmp(std::move(__comp)); 8036: _ValueType __value = std::move(*(__last - 1)); 8036: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8036: _DistanceType(0), std::move(__value), __cmp); 8036: } 8036: 8036: template 8036: void 8036: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 8036: _Distance __len, _Tp __value, _Compare __comp) 8036: { 8036: const _Distance __topIndex = __holeIndex; 8036: _Distance __secondChild = __holeIndex; 8036: while (__secondChild < (__len - 1) / 2) 8036: { 8036: __secondChild = 2 * (__secondChild + 1); 8036: if (__comp(__first + __secondChild, 8036: __first + (__secondChild - 1))) 8036: __secondChild--; 8036: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 8036: __holeIndex = __secondChild; 8036: } 8036: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 8036: { 8036: __secondChild = 2 * (__secondChild + 1); 8036: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 8036: ; 8036: __holeIndex = __secondChild - 1; 8036: } 8036: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8036: __cmp(std::move(__comp)); 8036: std::__push_heap(__first, __holeIndex, __topIndex, 8036: std::move(__value), __cmp); 8036: } 8036: 8036: template 8036: inline void 8036: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _RandomAccessIterator __result, _Compare& __comp) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: _ValueType __value = std::move(*__result); 8036: *__result = std::move(*__first); 8036: std::__adjust_heap(__first, _DistanceType(0), 8036: _DistanceType(__last - __first), 8036: std::move(__value), __comp); 8036: } 8036: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: if (__last - __first > 1) 8036: { 8036: --__last; 8036: __gnu_cxx::__ops::_Iter_less_iter __comp; 8036: std::__pop_heap(__first, __last, __last, __comp); 8036: } 8036: } 8036: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: pop_heap(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: if (__last - __first > 1) 8036: { 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: --__last; 8036: std::__pop_heap(__first, __last, __last, __cmp); 8036: } 8036: } 8036: 8036: template 8036: void 8036: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare& __comp) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: if (__last - __first < 2) 8036: return; 8036: 8036: const _DistanceType __len = __last - __first; 8036: _DistanceType __parent = (__len - 2) / 2; 8036: while (true) 8036: { 8036: _ValueType __value = std::move(*(__first + __parent)); 8036: std::__adjust_heap(__first, __parent, __len, std::move(__value), 8036: __comp); 8036: if (__parent == 0) 8036: return; 8036: __parent--; 8036: } 8036: } 8036: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: __gnu_cxx::__ops::_Iter_less_iter __comp; 8036: std::__make_heap(__first, __last, __comp); 8036: } 8036: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: std::__make_heap(__first, __last, __cmp); 8036: } 8036: 8036: template 8036: void 8036: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare& __comp) 8036: { 8036: while (__last - __first > 1) 8036: { 8036: --__last; 8036: std::__pop_heap(__first, __last, __last, __comp); 8036: } 8036: } 8036: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: __gnu_cxx::__ops::_Iter_less_iter __comp; 8036: std::__sort_heap(__first, __last, __comp); 8036: } 8036: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline void 8036: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: std::__sort_heap(__first, __last, __cmp); 8036: } 8036: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline _RandomAccessIterator 8036: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: __gnu_cxx::__ops::_Iter_less_iter __comp; 8036: return __first + 8036: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 8036: } 8036: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline _RandomAccessIterator 8036: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: return __first 8036: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 8036: } 8036: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline bool 8036: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { return std::is_heap_until(__first, __last) == __last; } 8036: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 8036: template 8036: inline bool 8036: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: const auto __dist = std::distance(__first, __last); 8036: typedef __decltype(__comp) _Cmp; 8036: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8036: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 8036: } 8036: 8036: 8036: 8036: } 8036: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 8036: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8036: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 8036: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 8036: # 1 "/usr/include/c++/8/new" 1 3 8036: # 37 "/usr/include/c++/8/new" 3 8036: 8036: # 38 "/usr/include/c++/8/new" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/exception" 1 3 8036: # 33 "/usr/include/c++/8/exception" 3 8036: 8036: # 34 "/usr/include/c++/8/exception" 3 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 8036: # 34 "/usr/include/c++/8/bits/exception.h" 3 8036: 8036: # 35 "/usr/include/c++/8/bits/exception.h" 3 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: 8036: 8036: extern "C++" { 8036: 8036: namespace std 8036: { 8036: # 60 "/usr/include/c++/8/bits/exception.h" 3 8036: class exception 8036: { 8036: public: 8036: exception() noexcept { } 8036: virtual ~exception() noexcept; 8036: 8036: 8036: 8036: virtual const char* 8036: what() const noexcept; 8036: }; 8036: 8036: } 8036: 8036: } 8036: 8036: #pragma GCC visibility pop 8036: # 39 "/usr/include/c++/8/exception" 2 3 8036: 8036: extern "C++" { 8036: 8036: namespace std 8036: { 8036: 8036: 8036: class bad_exception : public exception 8036: { 8036: public: 8036: bad_exception() noexcept { } 8036: 8036: 8036: 8036: virtual ~bad_exception() noexcept; 8036: 8036: 8036: virtual const char* 8036: what() const noexcept; 8036: }; 8036: 8036: 8036: typedef void (*terminate_handler) (); 8036: 8036: 8036: typedef void (*unexpected_handler) (); 8036: 8036: 8036: terminate_handler set_terminate(terminate_handler) noexcept; 8036: 8036: 8036: 8036: terminate_handler get_terminate() noexcept; 8036: 8036: 8036: 8036: 8036: void terminate() noexcept __attribute__ ((__noreturn__)); 8036: 8036: 8036: unexpected_handler set_unexpected(unexpected_handler) noexcept; 8036: 8036: 8036: 8036: unexpected_handler get_unexpected() noexcept; 8036: 8036: 8036: 8036: 8036: void unexpected() __attribute__ ((__noreturn__)); 8036: # 101 "/usr/include/c++/8/exception" 3 8036: 8036: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: } 8036: 8036: namespace __gnu_cxx 8036: { 8036: 8036: # 133 "/usr/include/c++/8/exception" 3 8036: void __verbose_terminate_handler(); 8036: 8036: 8036: } 8036: 8036: } 8036: 8036: #pragma GCC visibility pop 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 8036: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 8036: #pragma GCC visibility push(default) 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 8036: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8036: 8036: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 8036: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8036: namespace std 8036: { 8036: class type_info; 8036: } 8036: 8036: namespace __cxxabiv1 8036: { 8036: struct __cxa_refcounted_exception; 8036: 8036: extern "C" 8036: { 8036: 8036: void* 8036: __cxa_allocate_exception(size_t) noexcept; 8036: 8036: 8036: __cxa_refcounted_exception* 8036: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 8036: void ( *dest) (void *)) noexcept; 8036: 8036: } 8036: } 8036: 8036: 8036: 8036: #pragma GCC visibility pop 8036: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8036: # 1 "/usr/include/c++/8/typeinfo" 1 3 8036: # 32 "/usr/include/c++/8/typeinfo" 3 8036: 8036: # 33 "/usr/include/c++/8/typeinfo" 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 8036: 8036: 8036: 8036: namespace std 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: size_t 8036: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8036: 8036: 8036: 8036: 8036: 8036: size_t 8036: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8036: 8036: 8036: } 8036: # 37 "/usr/include/c++/8/typeinfo" 2 3 8036: 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: extern "C++" { 8036: 8036: namespace __cxxabiv1 8036: { 8036: class __class_type_info; 8036: } 8036: # 80 "/usr/include/c++/8/typeinfo" 3 8036: namespace std 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: class type_info 8036: { 8036: public: 8036: 8036: 8036: 8036: 8036: virtual ~type_info(); 8036: 8036: 8036: 8036: const char* name() const noexcept 8036: { return __name[0] == '*' ? __name + 1 : __name; } 8036: # 115 "/usr/include/c++/8/typeinfo" 3 8036: bool before(const type_info& __arg) const noexcept 8036: { return (__name[0] == '*' && __arg.__name[0] == '*') 8036: ? __name < __arg.__name 8036: : __builtin_strcmp (__name, __arg.__name) < 0; } 8036: 8036: bool operator==(const type_info& __arg) const noexcept 8036: { 8036: return ((__name == __arg.__name) 8036: || (__name[0] != '*' && 8036: __builtin_strcmp (__name, __arg.__name) == 0)); 8036: } 8036: # 136 "/usr/include/c++/8/typeinfo" 3 8036: bool operator!=(const type_info& __arg) const noexcept 8036: { return !operator==(__arg); } 8036: 8036: 8036: size_t hash_code() const noexcept 8036: { 8036: 8036: return _Hash_bytes(name(), __builtin_strlen(name()), 8036: static_cast(0xc70f6907UL)); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: virtual bool __is_pointer_p() const; 8036: 8036: 8036: virtual bool __is_function_p() const; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 8036: unsigned __outer) const; 8036: 8036: 8036: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 8036: void **__obj_ptr) const; 8036: 8036: protected: 8036: const char *__name; 8036: 8036: explicit type_info(const char *__n): __name(__n) { } 8036: 8036: private: 8036: 8036: type_info& operator=(const type_info&); 8036: type_info(const type_info&); 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class bad_cast : public exception 8036: { 8036: public: 8036: bad_cast() noexcept { } 8036: 8036: 8036: 8036: virtual ~bad_cast() noexcept; 8036: 8036: 8036: virtual const char* what() const noexcept; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: class bad_typeid : public exception 8036: { 8036: public: 8036: bad_typeid () noexcept { } 8036: 8036: 8036: 8036: virtual ~bad_typeid() noexcept; 8036: 8036: 8036: virtual const char* what() const noexcept; 8036: }; 8036: } 8036: 8036: } 8036: 8036: #pragma GCC visibility pop 8036: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8036: # 1 "/usr/include/c++/8/new" 1 3 8036: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8036: 8036: extern "C++" { 8036: 8036: namespace std 8036: { 8036: class type_info; 8036: 8036: 8036: 8036: 8036: 8036: namespace __exception_ptr 8036: { 8036: class exception_ptr; 8036: } 8036: 8036: using __exception_ptr::exception_ptr; 8036: 8036: 8036: 8036: 8036: 8036: exception_ptr current_exception() noexcept; 8036: 8036: template 8036: exception_ptr make_exception_ptr(_Ex) noexcept; 8036: 8036: 8036: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 8036: 8036: namespace __exception_ptr 8036: { 8036: using std::rethrow_exception; 8036: 8036: 8036: 8036: 8036: 8036: class exception_ptr 8036: { 8036: void* _M_exception_object; 8036: 8036: explicit exception_ptr(void* __e) noexcept; 8036: 8036: void _M_addref() noexcept; 8036: void _M_release() noexcept; 8036: 8036: void *_M_get() const noexcept __attribute__ ((__pure__)); 8036: 8036: friend exception_ptr std::current_exception() noexcept; 8036: friend void std::rethrow_exception(exception_ptr); 8036: template 8036: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 8036: 8036: public: 8036: exception_ptr() noexcept; 8036: 8036: exception_ptr(const exception_ptr&) noexcept; 8036: 8036: 8036: exception_ptr(nullptr_t) noexcept 8036: : _M_exception_object(0) 8036: { } 8036: 8036: exception_ptr(exception_ptr&& __o) noexcept 8036: : _M_exception_object(__o._M_exception_object) 8036: { __o._M_exception_object = 0; } 8036: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 8036: exception_ptr& 8036: operator=(const exception_ptr&) noexcept; 8036: 8036: 8036: exception_ptr& 8036: operator=(exception_ptr&& __o) noexcept 8036: { 8036: exception_ptr(static_cast(__o)).swap(*this); 8036: return *this; 8036: } 8036: 8036: 8036: ~exception_ptr() noexcept; 8036: 8036: void 8036: swap(exception_ptr&) noexcept; 8036: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 8036: explicit operator bool() const 8036: { return _M_exception_object; } 8036: 8036: 8036: friend bool 8036: operator==(const exception_ptr&, const exception_ptr&) 8036: noexcept __attribute__ ((__pure__)); 8036: 8036: const class std::type_info* 8036: __cxa_exception_type() const noexcept 8036: __attribute__ ((__pure__)); 8036: }; 8036: 8036: bool 8036: operator==(const exception_ptr&, const exception_ptr&) 8036: noexcept __attribute__ ((__pure__)); 8036: 8036: bool 8036: operator!=(const exception_ptr&, const exception_ptr&) 8036: noexcept __attribute__ ((__pure__)); 8036: 8036: inline void 8036: swap(exception_ptr& __lhs, exception_ptr& __rhs) 8036: { __lhs.swap(__rhs); } 8036: 8036: template 8036: inline void 8036: __dest_thunk(void* __x) 8036: { static_cast<_Ex*>(__x)->~_Ex(); } 8036: 8036: } 8036: 8036: 8036: template 8036: exception_ptr 8036: make_exception_ptr(_Ex __ex) noexcept 8036: { 8036: # 200 "/usr/include/c++/8/bits/exception_ptr.h" 3 8036: return exception_ptr(); 8036: 8036: } 8036: 8036: 8036: } 8036: 8036: } 8036: 8036: #pragma GCC visibility pop 8036: # 144 "/usr/include/c++/8/exception" 2 3 8036: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 8036: #pragma GCC visibility push(default) 8036: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 8036: extern "C++" { 8036: 8036: namespace std 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: class nested_exception 8036: { 8036: exception_ptr _M_ptr; 8036: 8036: public: 8036: nested_exception() noexcept : _M_ptr(current_exception()) { } 8036: 8036: nested_exception(const nested_exception&) noexcept = default; 8036: 8036: nested_exception& operator=(const nested_exception&) noexcept = default; 8036: 8036: virtual ~nested_exception() noexcept; 8036: 8036: [[noreturn]] 8036: void 8036: rethrow_nested() const 8036: { 8036: if (_M_ptr) 8036: rethrow_exception(_M_ptr); 8036: std::terminate(); 8036: } 8036: 8036: exception_ptr 8036: nested_ptr() const noexcept 8036: { return _M_ptr; } 8036: }; 8036: 8036: template 8036: struct _Nested_exception : public _Except, public nested_exception 8036: { 8036: explicit _Nested_exception(const _Except& __ex) 8036: : _Except(__ex) 8036: { } 8036: 8036: explicit _Nested_exception(_Except&& __ex) 8036: : _Except(static_cast<_Except&&>(__ex)) 8036: { } 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: [[noreturn]] 8036: inline void 8036: __throw_with_nested_impl(_Tp&& __t, true_type) 8036: { 8036: using _Up = typename remove_reference<_Tp>::type; 8036: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 8036: } 8036: 8036: template 8036: [[noreturn]] 8036: inline void 8036: __throw_with_nested_impl(_Tp&& __t, false_type) 8036: { throw std::forward<_Tp>(__t); } 8036: 8036: 8036: 8036: template 8036: [[noreturn]] 8036: inline void 8036: throw_with_nested(_Tp&& __t) 8036: { 8036: using _Up = typename decay<_Tp>::type; 8036: using _CopyConstructible 8036: = __and_, is_move_constructible<_Up>>; 8036: static_assert(_CopyConstructible::value, 8036: "throw_with_nested argument must be CopyConstructible"); 8036: using __nest = __and_, __bool_constant, 8036: __not_>>; 8036: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 8036: } 8036: 8036: 8036: template 8036: using __rethrow_if_nested_cond = typename enable_if< 8036: __and_, 8036: __or_<__not_>, 8036: is_convertible<_Tp*, nested_exception*>>>::value 8036: >::type; 8036: 8036: 8036: template 8036: inline __rethrow_if_nested_cond<_Ex> 8036: __rethrow_if_nested_impl(const _Ex* __ptr) 8036: { 8036: if (auto __ne_ptr = dynamic_cast(__ptr)) 8036: __ne_ptr->rethrow_nested(); 8036: } 8036: 8036: 8036: inline void 8036: __rethrow_if_nested_impl(const void*) 8036: { } 8036: 8036: 8036: template 8036: inline void 8036: rethrow_if_nested(const _Ex& __ex) 8036: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 8036: 8036: 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: #pragma GCC visibility pop 8036: # 145 "/usr/include/c++/8/exception" 2 3 8036: # 41 "/usr/include/c++/8/new" 2 3 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: extern "C++" { 8036: 8036: namespace std 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: class bad_alloc : public exception 8036: { 8036: public: 8036: bad_alloc() throw() { } 8036: 8036: 8036: 8036: virtual ~bad_alloc() throw(); 8036: 8036: 8036: virtual const char* what() const throw(); 8036: }; 8036: 8036: 8036: class bad_array_new_length : public bad_alloc 8036: { 8036: public: 8036: bad_array_new_length() throw() { } 8036: 8036: 8036: 8036: virtual ~bad_array_new_length() throw(); 8036: 8036: 8036: virtual const char* what() const throw(); 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct nothrow_t 8036: { 8036: 8036: explicit nothrow_t() = default; 8036: 8036: }; 8036: 8036: extern const nothrow_t nothrow; 8036: 8036: 8036: 8036: typedef void (*new_handler)(); 8036: 8036: 8036: 8036: new_handler set_new_handler(new_handler) throw(); 8036: 8036: 8036: 8036: new_handler get_new_handler() noexcept; 8036: 8036: } 8036: # 120 "/usr/include/c++/8/new" 3 8036: void* operator new(std::size_t) 8036: __attribute__((__externally_visible__)); 8036: void* operator new[](std::size_t) 8036: __attribute__((__externally_visible__)); 8036: void operator delete(void*) noexcept 8036: __attribute__((__externally_visible__)); 8036: void operator delete[](void*) noexcept 8036: __attribute__((__externally_visible__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: void* operator new(std::size_t, const std::nothrow_t&) noexcept 8036: __attribute__((__externally_visible__)); 8036: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 8036: __attribute__((__externally_visible__)); 8036: void operator delete(void*, const std::nothrow_t&) noexcept 8036: __attribute__((__externally_visible__)); 8036: void operator delete[](void*, const std::nothrow_t&) noexcept 8036: __attribute__((__externally_visible__)); 8036: # 168 "/usr/include/c++/8/new" 3 8036: inline void* operator new(std::size_t, void* __p) noexcept 8036: { return __p; } 8036: inline void* operator new[](std::size_t, void* __p) noexcept 8036: { return __p; } 8036: 8036: 8036: inline void operator delete (void*, void*) noexcept { } 8036: inline void operator delete[](void*, void*) noexcept { } 8036: 8036: } 8036: # 216 "/usr/include/c++/8/new" 3 8036: #pragma GCC visibility pop 8036: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 8036: # 35 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 8036: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 8036: 8036: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 8036: template 8036: class allocator; 8036: 8036: template<> 8036: class allocator; 8036: 8036: 8036: template 8036: struct uses_allocator; 8036: 8036: 8036: 8036: 8036: } 8036: # 36 "/usr/include/c++/8/bits/alloc_traits.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: struct __allocator_traits_base 8036: { 8036: template 8036: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8036: 8036: template 8036: struct __rebind<_Tp, _Up, 8036: __void_t::other>> 8036: { using type = typename _Tp::template rebind<_Up>::other; }; 8036: 8036: protected: 8036: template 8036: using __pointer = typename _Tp::pointer; 8036: template 8036: using __c_pointer = typename _Tp::const_pointer; 8036: template 8036: using __v_pointer = typename _Tp::void_pointer; 8036: template 8036: using __cv_pointer = typename _Tp::const_void_pointer; 8036: template 8036: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 8036: template 8036: using __pocma = typename _Tp::propagate_on_container_move_assignment; 8036: template 8036: using __pocs = typename _Tp::propagate_on_container_swap; 8036: template 8036: using __equal = typename _Tp::is_always_equal; 8036: }; 8036: 8036: template 8036: using __alloc_rebind 8036: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct allocator_traits : __allocator_traits_base 8036: { 8036: 8036: typedef _Alloc allocator_type; 8036: 8036: typedef typename _Alloc::value_type value_type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: using pointer = __detected_or_t; 8036: 8036: private: 8036: 8036: template class _Func, typename _Tp, typename = void> 8036: struct _Ptr 8036: { 8036: using type = typename pointer_traits::template rebind<_Tp>; 8036: }; 8036: 8036: template class _Func, typename _Tp> 8036: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 8036: { 8036: using type = _Func<_Alloc>; 8036: }; 8036: 8036: 8036: template 8036: struct _Diff 8036: { using type = typename pointer_traits<_PtrT>::difference_type; }; 8036: 8036: template 8036: struct _Diff<_A2, _PtrT, __void_t> 8036: { using type = typename _A2::difference_type; }; 8036: 8036: 8036: template 8036: struct _Size : make_unsigned<_DiffT> { }; 8036: 8036: template 8036: struct _Size<_A2, _DiffT, __void_t> 8036: { using type = typename _A2::size_type; }; 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using void_pointer = typename _Ptr<__v_pointer, void>::type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using difference_type = typename _Diff<_Alloc, pointer>::type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using size_type = typename _Size<_Alloc, difference_type>::type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using propagate_on_container_copy_assignment 8036: = __detected_or_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using propagate_on_container_move_assignment 8036: = __detected_or_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using propagate_on_container_swap 8036: = __detected_or_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: using is_always_equal 8036: = __detected_or_t::type, __equal, _Alloc>; 8036: 8036: template 8036: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 8036: template 8036: using rebind_traits = allocator_traits>; 8036: 8036: private: 8036: template 8036: static auto 8036: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 8036: -> decltype(__a.allocate(__n, __hint)) 8036: { return __a.allocate(__n, __hint); } 8036: 8036: template 8036: static pointer 8036: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 8036: { return __a.allocate(__n); } 8036: 8036: template 8036: struct __construct_helper 8036: { 8036: template()->construct( 8036: std::declval<_Tp*>(), std::declval<_Args>()...))> 8036: static true_type __test(int); 8036: 8036: template 8036: static false_type __test(...); 8036: 8036: using type = decltype(__test<_Alloc>(0)); 8036: }; 8036: 8036: template 8036: using __has_construct 8036: = typename __construct_helper<_Tp, _Args...>::type; 8036: 8036: template 8036: static _Require<__has_construct<_Tp, _Args...>> 8036: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8036: { __a.construct(__p, std::forward<_Args>(__args)...); } 8036: 8036: template 8036: static 8036: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 8036: is_constructible<_Tp, _Args...>>> 8036: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 8036: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: static auto 8036: _S_destroy(_Alloc2& __a, _Tp* __p, int) 8036: -> decltype(__a.destroy(__p)) 8036: { __a.destroy(__p); } 8036: 8036: template 8036: static void 8036: _S_destroy(_Alloc2&, _Tp* __p, ...) 8036: { __p->~_Tp(); } 8036: 8036: template 8036: static auto 8036: _S_max_size(_Alloc2& __a, int) 8036: -> decltype(__a.max_size()) 8036: { return __a.max_size(); } 8036: 8036: template 8036: static size_type 8036: _S_max_size(_Alloc2&, ...) 8036: { 8036: 8036: 8036: return __gnu_cxx::__numeric_traits::__max 8036: / sizeof(value_type); 8036: } 8036: 8036: template 8036: static auto 8036: _S_select(_Alloc2& __a, int) 8036: -> decltype(__a.select_on_container_copy_construction()) 8036: { return __a.select_on_container_copy_construction(); } 8036: 8036: template 8036: static _Alloc2 8036: _S_select(_Alloc2& __a, ...) 8036: { return __a; } 8036: 8036: public: 8036: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static pointer 8036: allocate(_Alloc& __a, size_type __n) 8036: { return __a.allocate(__n); } 8036: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static pointer 8036: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 8036: { return _S_allocate(__a, __n, __hint, 0); } 8036: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static void 8036: deallocate(_Alloc& __a, pointer __p, size_type __n) 8036: { __a.deallocate(__p, __n); } 8036: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: template 8036: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8036: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 8036: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 8036: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: template 8036: static void destroy(_Alloc& __a, _Tp* __p) 8036: { _S_destroy(__a, __p, 0); } 8036: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static size_type max_size(const _Alloc& __a) noexcept 8036: { return _S_max_size(__a, 0); } 8036: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static _Alloc 8036: select_on_container_copy_construction(const _Alloc& __rhs) 8036: { return _S_select(__rhs, 0); } 8036: }; 8036: 8036: 8036: template 8036: struct allocator_traits> 8036: { 8036: 8036: using allocator_type = allocator<_Tp>; 8036: 8036: using value_type = _Tp; 8036: 8036: 8036: using pointer = _Tp*; 8036: 8036: 8036: using const_pointer = const _Tp*; 8036: 8036: 8036: using void_pointer = void*; 8036: 8036: 8036: using const_void_pointer = const void*; 8036: 8036: 8036: using difference_type = std::ptrdiff_t; 8036: 8036: 8036: using size_type = std::size_t; 8036: 8036: 8036: using propagate_on_container_copy_assignment = false_type; 8036: 8036: 8036: using propagate_on_container_move_assignment = true_type; 8036: 8036: 8036: using propagate_on_container_swap = false_type; 8036: 8036: 8036: using is_always_equal = true_type; 8036: 8036: template 8036: using rebind_alloc = allocator<_Up>; 8036: 8036: template 8036: using rebind_traits = allocator_traits>; 8036: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static pointer 8036: allocate(allocator_type& __a, size_type __n) 8036: { return __a.allocate(__n); } 8036: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static pointer 8036: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 8036: { return __a.allocate(__n, __hint); } 8036: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: static void 8036: deallocate(allocator_type& __a, pointer __p, size_type __n) 8036: { __a.deallocate(__p, __n); } 8036: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: template 8036: static void 8036: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 8036: { __a.construct(__p, std::forward<_Args>(__args)...); } 8036: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 8036: template 8036: static void 8036: destroy(allocator_type& __a, _Up* __p) 8036: { __a.destroy(__p); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: static size_type 8036: max_size(const allocator_type& __a) noexcept 8036: { return __a.max_size(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: static allocator_type 8036: select_on_container_copy_construction(const allocator_type& __rhs) 8036: { return __rhs; } 8036: }; 8036: 8036: 8036: template 8036: inline void 8036: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 8036: { __one = __two; } 8036: 8036: template 8036: inline void 8036: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 8036: { } 8036: 8036: template 8036: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 8036: { 8036: typedef allocator_traits<_Alloc> __traits; 8036: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 8036: __do_alloc_on_copy(__one, __two, __pocca()); 8036: } 8036: 8036: template 8036: inline _Alloc __alloc_on_copy(const _Alloc& __a) 8036: { 8036: typedef allocator_traits<_Alloc> __traits; 8036: return __traits::select_on_container_copy_construction(__a); 8036: } 8036: 8036: template 8036: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 8036: { __one = std::move(__two); } 8036: 8036: template 8036: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 8036: { } 8036: 8036: template 8036: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 8036: { 8036: typedef allocator_traits<_Alloc> __traits; 8036: typedef typename __traits::propagate_on_container_move_assignment __pocma; 8036: __do_alloc_on_move(__one, __two, __pocma()); 8036: } 8036: 8036: template 8036: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 8036: { 8036: using std::swap; 8036: swap(__one, __two); 8036: } 8036: 8036: template 8036: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 8036: { } 8036: 8036: template 8036: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 8036: { 8036: typedef allocator_traits<_Alloc> __traits; 8036: typedef typename __traits::propagate_on_container_swap __pocs; 8036: __do_alloc_on_swap(__one, __two, __pocs()); 8036: } 8036: 8036: template 8036: class __is_copy_insertable_impl 8036: { 8036: typedef allocator_traits<_Alloc> _Traits; 8036: 8036: template(), 8036: std::declval<_Up*>(), 8036: std::declval()))> 8036: static true_type 8036: _M_select(int); 8036: 8036: template 8036: static false_type 8036: _M_select(...); 8036: 8036: public: 8036: typedef decltype(_M_select(0)) type; 8036: }; 8036: 8036: 8036: template 8036: struct __is_copy_insertable 8036: : __is_copy_insertable_impl<_Alloc>::type 8036: { }; 8036: 8036: 8036: template 8036: struct __is_copy_insertable> 8036: : is_copy_constructible<_Tp> 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct __is_allocator : false_type { }; 8036: 8036: template 8036: struct __is_allocator<_Alloc, 8036: __void_t().allocate(size_t{}))>> 8036: : true_type { }; 8036: 8036: template 8036: using _RequireAllocator 8036: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 8036: 8036: 8036: 8036: } 8036: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __alloc_traits 8036: 8036: : std::allocator_traits<_Alloc> 8036: 8036: { 8036: typedef _Alloc allocator_type; 8036: 8036: typedef std::allocator_traits<_Alloc> _Base_type; 8036: typedef typename _Base_type::value_type value_type; 8036: typedef typename _Base_type::pointer pointer; 8036: typedef typename _Base_type::const_pointer const_pointer; 8036: typedef typename _Base_type::size_type size_type; 8036: typedef typename _Base_type::difference_type difference_type; 8036: 8036: typedef value_type& reference; 8036: typedef const value_type& const_reference; 8036: using _Base_type::allocate; 8036: using _Base_type::deallocate; 8036: using _Base_type::construct; 8036: using _Base_type::destroy; 8036: using _Base_type::max_size; 8036: 8036: private: 8036: template 8036: using __is_custom_pointer 8036: = std::__and_, 8036: std::__not_>>; 8036: 8036: public: 8036: 8036: template 8036: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8036: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 8036: { 8036: _Base_type::construct(__a, std::__to_address(__p), 8036: std::forward<_Args>(__args)...); 8036: } 8036: 8036: 8036: template 8036: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8036: destroy(_Alloc& __a, _Ptr __p) 8036: { _Base_type::destroy(__a, std::__to_address(__p)); } 8036: 8036: static _Alloc _S_select_on_copy(const _Alloc& __a) 8036: { return _Base_type::select_on_container_copy_construction(__a); } 8036: 8036: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 8036: { std::__alloc_on_swap(__a, __b); } 8036: 8036: static constexpr bool _S_propagate_on_copy_assign() 8036: { return _Base_type::propagate_on_container_copy_assignment::value; } 8036: 8036: static constexpr bool _S_propagate_on_move_assign() 8036: { return _Base_type::propagate_on_container_move_assignment::value; } 8036: 8036: static constexpr bool _S_propagate_on_swap() 8036: { return _Base_type::propagate_on_container_swap::value; } 8036: 8036: static constexpr bool _S_always_equal() 8036: { return _Base_type::is_always_equal::value; } 8036: 8036: static constexpr bool _S_nothrow_move() 8036: { return _S_propagate_on_move_assign() || _S_always_equal(); } 8036: 8036: template 8036: struct rebind 8036: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 8036: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 8036: }; 8036: 8036: 8036: } 8036: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: _Construct(_T1* __p, _Args&&... __args) 8036: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 8036: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 8036: template 8036: inline void 8036: _Construct_novalue(_T1* __p) 8036: { ::new(static_cast(__p)) _T1; } 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: _Destroy(_Tp* __pointer) 8036: { __pointer->~_Tp(); } 8036: 8036: template 8036: struct _Destroy_aux 8036: { 8036: template 8036: static void 8036: __destroy(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: for (; __first != __last; ++__first) 8036: std::_Destroy(std::__addressof(*__first)); 8036: } 8036: }; 8036: 8036: template<> 8036: struct _Destroy_aux 8036: { 8036: template 8036: static void 8036: __destroy(_ForwardIterator, _ForwardIterator) { } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _Value_type; 8036: 8036: 8036: static_assert(is_destructible<_Value_type>::value, 8036: "value type is destructible"); 8036: 8036: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 8036: __destroy(__first, __last); 8036: } 8036: 8036: template 8036: struct _Destroy_n_aux 8036: { 8036: template 8036: static _ForwardIterator 8036: __destroy_n(_ForwardIterator __first, _Size __count) 8036: { 8036: for (; __count > 0; (void)++__first, --__count) 8036: std::_Destroy(std::__addressof(*__first)); 8036: return __first; 8036: } 8036: }; 8036: 8036: template<> 8036: struct _Destroy_n_aux 8036: { 8036: template 8036: static _ForwardIterator 8036: __destroy_n(_ForwardIterator __first, _Size __count) 8036: { 8036: std::advance(__first, __count); 8036: return __first; 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline _ForwardIterator 8036: _Destroy_n(_ForwardIterator __first, _Size __count) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _Value_type; 8036: 8036: 8036: static_assert(is_destructible<_Value_type>::value, 8036: "value type is destructible"); 8036: 8036: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 8036: __destroy_n(__first, __count); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8036: _Allocator& __alloc) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __first != __last; ++__first) 8036: __traits::destroy(__alloc, std::__addressof(*__first)); 8036: } 8036: 8036: template 8036: inline void 8036: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8036: allocator<_Tp>&) 8036: { 8036: _Destroy(__first, __last); 8036: } 8036: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 8036: 8036: } 8036: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8036: template 8036: pair<_Tp*, ptrdiff_t> 8036: get_temporary_buffer(ptrdiff_t __len) noexcept 8036: { 8036: const ptrdiff_t __max = 8036: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 8036: if (__len > __max) 8036: __len = __max; 8036: 8036: while (__len > 0) 8036: { 8036: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 8036: std::nothrow)); 8036: if (__tmp != 0) 8036: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 8036: __len /= 2; 8036: } 8036: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 8036: } 8036: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8036: template 8036: inline void 8036: return_temporary_buffer(_Tp* __p) 8036: { ::operator delete(__p, std::nothrow); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class _Temporary_buffer 8036: { 8036: 8036: 8036: 8036: public: 8036: typedef _Tp value_type; 8036: typedef value_type* pointer; 8036: typedef pointer iterator; 8036: typedef ptrdiff_t size_type; 8036: 8036: protected: 8036: size_type _M_original_len; 8036: size_type _M_len; 8036: pointer _M_buffer; 8036: 8036: public: 8036: 8036: size_type 8036: size() const 8036: { return _M_len; } 8036: 8036: 8036: size_type 8036: requested_size() const 8036: { return _M_original_len; } 8036: 8036: 8036: iterator 8036: begin() 8036: { return _M_buffer; } 8036: 8036: 8036: iterator 8036: end() 8036: { return _M_buffer + _M_len; } 8036: 8036: 8036: 8036: 8036: 8036: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 8036: 8036: ~_Temporary_buffer() 8036: { 8036: std::_Destroy(_M_buffer, _M_buffer + _M_len); 8036: std::return_temporary_buffer(_M_buffer); 8036: } 8036: 8036: private: 8036: 8036: _Temporary_buffer(const _Temporary_buffer&); 8036: 8036: void 8036: operator=(const _Temporary_buffer&); 8036: }; 8036: 8036: 8036: template 8036: struct __uninitialized_construct_buf_dispatch 8036: { 8036: template 8036: static void 8036: __ucr(_Pointer __first, _Pointer __last, 8036: _ForwardIterator __seed) 8036: { 8036: if(__first == __last) 8036: return; 8036: 8036: _Pointer __cur = __first; 8036: if (true) 8036: { 8036: std::_Construct(std::__addressof(*__first), 8036: std::move(*__seed)); 8036: _Pointer __prev = __cur; 8036: ++__cur; 8036: for(; __cur != __last; ++__cur, ++__prev) 8036: std::_Construct(std::__addressof(*__cur), 8036: std::move(*__prev)); 8036: *__seed = std::move(*__prev); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_construct_buf_dispatch 8036: { 8036: template 8036: static void 8036: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 8036: }; 8036: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8036: template 8036: inline void 8036: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 8036: _ForwardIterator __seed) 8036: { 8036: typedef typename std::iterator_traits<_Pointer>::value_type 8036: _ValueType; 8036: 8036: std::__uninitialized_construct_buf_dispatch< 8036: __has_trivial_constructor(_ValueType)>:: 8036: __ucr(__first, __last, __seed); 8036: } 8036: 8036: template 8036: _Temporary_buffer<_ForwardIterator, _Tp>:: 8036: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 8036: : _M_original_len(std::distance(__first, __last)), 8036: _M_len(0), _M_buffer(0) 8036: { 8036: if (true) 8036: { 8036: std::pair __p(std::get_temporary_buffer< 8036: value_type>(_M_original_len)); 8036: _M_buffer = __p.first; 8036: _M_len = __p.second; 8036: if (_M_buffer) 8036: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 8036: __first); 8036: } 8036: if (false) 8036: { 8036: std::return_temporary_buffer(_M_buffer); 8036: _M_buffer = 0; 8036: _M_len = 0; 8036: ; 8036: } 8036: } 8036: 8036: 8036: } 8036: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 8036: # 35 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8036: # 1 "/usr/include/c++/8/limits" 1 3 8036: # 40 "/usr/include/c++/8/limits" 3 8036: 8036: # 41 "/usr/include/c++/8/limits" 3 8036: # 158 "/usr/include/c++/8/limits" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum float_round_style 8036: { 8036: round_indeterminate = -1, 8036: round_toward_zero = 0, 8036: round_to_nearest = 1, 8036: round_toward_infinity = 2, 8036: round_toward_neg_infinity = 3 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum float_denorm_style 8036: { 8036: 8036: denorm_indeterminate = -1, 8036: 8036: denorm_absent = 0, 8036: 8036: denorm_present = 1 8036: }; 8036: # 202 "/usr/include/c++/8/limits" 3 8036: struct __numeric_limits_base 8036: { 8036: 8036: 8036: static constexpr bool is_specialized = false; 8036: 8036: 8036: 8036: 8036: static constexpr int digits = 0; 8036: 8036: 8036: static constexpr int digits10 = 0; 8036: 8036: 8036: 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: 8036: 8036: static constexpr bool is_signed = false; 8036: 8036: 8036: static constexpr bool is_integer = false; 8036: 8036: 8036: 8036: 8036: static constexpr bool is_exact = false; 8036: 8036: 8036: 8036: static constexpr int radix = 0; 8036: 8036: 8036: 8036: static constexpr int min_exponent = 0; 8036: 8036: 8036: 8036: static constexpr int min_exponent10 = 0; 8036: 8036: 8036: 8036: 8036: static constexpr int max_exponent = 0; 8036: 8036: 8036: 8036: static constexpr int max_exponent10 = 0; 8036: 8036: 8036: static constexpr bool has_infinity = false; 8036: 8036: 8036: 8036: static constexpr bool has_quiet_NaN = false; 8036: 8036: 8036: 8036: static constexpr bool has_signaling_NaN = false; 8036: 8036: 8036: static constexpr float_denorm_style has_denorm = denorm_absent; 8036: 8036: 8036: 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: 8036: 8036: static constexpr bool is_iec559 = false; 8036: 8036: 8036: 8036: 8036: static constexpr bool is_bounded = false; 8036: # 288 "/usr/include/c++/8/limits" 3 8036: static constexpr bool is_modulo = false; 8036: 8036: 8036: static constexpr bool traps = false; 8036: 8036: 8036: static constexpr bool tinyness_before = false; 8036: 8036: 8036: 8036: 8036: static constexpr float_round_style round_style = 8036: round_toward_zero; 8036: }; 8036: # 311 "/usr/include/c++/8/limits" 3 8036: template 8036: struct numeric_limits : public __numeric_limits_base 8036: { 8036: 8036: 8036: static constexpr _Tp 8036: min() noexcept { return _Tp(); } 8036: 8036: 8036: static constexpr _Tp 8036: max() noexcept { return _Tp(); } 8036: 8036: 8036: 8036: 8036: static constexpr _Tp 8036: lowest() noexcept { return _Tp(); } 8036: 8036: 8036: 8036: 8036: static constexpr _Tp 8036: epsilon() noexcept { return _Tp(); } 8036: 8036: 8036: static constexpr _Tp 8036: round_error() noexcept { return _Tp(); } 8036: 8036: 8036: static constexpr _Tp 8036: infinity() noexcept { return _Tp(); } 8036: 8036: 8036: 8036: static constexpr _Tp 8036: quiet_NaN() noexcept { return _Tp(); } 8036: 8036: 8036: 8036: static constexpr _Tp 8036: signaling_NaN() noexcept { return _Tp(); } 8036: 8036: 8036: 8036: 8036: static constexpr _Tp 8036: denorm_min() noexcept { return _Tp(); } 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct numeric_limits 8036: : public numeric_limits<_Tp> { }; 8036: 8036: template 8036: struct numeric_limits 8036: : public numeric_limits<_Tp> { }; 8036: 8036: template 8036: struct numeric_limits 8036: : public numeric_limits<_Tp> { }; 8036: # 382 "/usr/include/c++/8/limits" 3 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr bool 8036: min() noexcept { return false; } 8036: 8036: static constexpr bool 8036: max() noexcept { return true; } 8036: 8036: 8036: static constexpr bool 8036: lowest() noexcept { return min(); } 8036: 8036: static constexpr int digits = 1; 8036: static constexpr int digits10 = 0; 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr bool 8036: epsilon() noexcept { return false; } 8036: 8036: static constexpr bool 8036: round_error() noexcept { return false; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr bool 8036: infinity() noexcept { return false; } 8036: 8036: static constexpr bool 8036: quiet_NaN() noexcept { return false; } 8036: 8036: static constexpr bool 8036: signaling_NaN() noexcept { return false; } 8036: 8036: static constexpr bool 8036: denorm_min() noexcept { return false; } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: 8036: 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr char 8036: 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); } 8036: 8036: static constexpr char 8036: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 8036: 8036: 8036: static constexpr char 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = ((char)(-1) < 0); 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr char 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr char 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr 8036: char infinity() noexcept { return char(); } 8036: 8036: static constexpr char 8036: quiet_NaN() noexcept { return char(); } 8036: 8036: static constexpr char 8036: signaling_NaN() noexcept { return char(); } 8036: 8036: static constexpr char 8036: denorm_min() noexcept { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = !is_signed; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr signed char 8036: min() noexcept { return -0x7f - 1; } 8036: 8036: static constexpr signed char 8036: max() noexcept { return 0x7f; } 8036: 8036: 8036: static constexpr signed char 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr signed char 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr signed char 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr signed char 8036: infinity() noexcept { return static_cast(0); } 8036: 8036: static constexpr signed char 8036: quiet_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr signed char 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr signed char 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr unsigned char 8036: min() noexcept { return 0; } 8036: 8036: static constexpr unsigned char 8036: max() noexcept { return 0x7f * 2U + 1; } 8036: 8036: 8036: static constexpr unsigned char 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr unsigned char 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr unsigned char 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr unsigned char 8036: infinity() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned char 8036: quiet_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned char 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned char 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = true; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr wchar_t 8036: 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); } 8036: 8036: static constexpr wchar_t 8036: 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); } 8036: 8036: 8036: static constexpr wchar_t 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr wchar_t 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr wchar_t 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr wchar_t 8036: infinity() noexcept { return wchar_t(); } 8036: 8036: static constexpr wchar_t 8036: quiet_NaN() noexcept { return wchar_t(); } 8036: 8036: static constexpr wchar_t 8036: signaling_NaN() noexcept { return wchar_t(); } 8036: 8036: static constexpr wchar_t 8036: denorm_min() noexcept { return wchar_t(); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = !is_signed; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr char16_t 8036: 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); } 8036: 8036: static constexpr char16_t 8036: 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); } 8036: 8036: static constexpr char16_t 8036: lowest() noexcept { return min(); } 8036: 8036: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 8036: static constexpr int max_digits10 = 0; 8036: static constexpr bool is_signed = ((char16_t)(-1) < 0); 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr char16_t 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr char16_t 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr char16_t 8036: infinity() noexcept { return char16_t(); } 8036: 8036: static constexpr char16_t 8036: quiet_NaN() noexcept { return char16_t(); } 8036: 8036: static constexpr char16_t 8036: signaling_NaN() noexcept { return char16_t(); } 8036: 8036: static constexpr char16_t 8036: denorm_min() noexcept { return char16_t(); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = !is_signed; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr char32_t 8036: 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); } 8036: 8036: static constexpr char32_t 8036: 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); } 8036: 8036: static constexpr char32_t 8036: lowest() noexcept { return min(); } 8036: 8036: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 8036: static constexpr int max_digits10 = 0; 8036: static constexpr bool is_signed = ((char32_t)(-1) < 0); 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr char32_t 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr char32_t 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr char32_t 8036: infinity() noexcept { return char32_t(); } 8036: 8036: static constexpr char32_t 8036: quiet_NaN() noexcept { return char32_t(); } 8036: 8036: static constexpr char32_t 8036: signaling_NaN() noexcept { return char32_t(); } 8036: 8036: static constexpr char32_t 8036: denorm_min() noexcept { return char32_t(); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = !is_signed; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style = round_toward_zero; 8036: }; 8036: 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr short 8036: min() noexcept { return -0x7fff - 1; } 8036: 8036: static constexpr short 8036: max() noexcept { return 0x7fff; } 8036: 8036: 8036: static constexpr short 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr short 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr short 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr short 8036: infinity() noexcept { return short(); } 8036: 8036: static constexpr short 8036: quiet_NaN() noexcept { return short(); } 8036: 8036: static constexpr short 8036: signaling_NaN() noexcept { return short(); } 8036: 8036: static constexpr short 8036: denorm_min() noexcept { return short(); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr unsigned short 8036: min() noexcept { return 0; } 8036: 8036: static constexpr unsigned short 8036: max() noexcept { return 0x7fff * 2U + 1; } 8036: 8036: 8036: static constexpr unsigned short 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr unsigned short 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr unsigned short 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr unsigned short 8036: infinity() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned short 8036: quiet_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned short 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned short 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = true; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr int 8036: min() noexcept { return -0x7fffffff - 1; } 8036: 8036: static constexpr int 8036: max() noexcept { return 0x7fffffff; } 8036: 8036: 8036: static constexpr int 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr int 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr int 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr int 8036: infinity() noexcept { return static_cast(0); } 8036: 8036: static constexpr int 8036: quiet_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr int 8036: signaling_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr int 8036: denorm_min() noexcept { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr unsigned int 8036: min() noexcept { return 0; } 8036: 8036: static constexpr unsigned int 8036: max() noexcept { return 0x7fffffff * 2U + 1; } 8036: 8036: 8036: static constexpr unsigned int 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr unsigned int 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr unsigned int 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr unsigned int 8036: infinity() noexcept { return static_cast(0); } 8036: 8036: static constexpr unsigned int 8036: quiet_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned int 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned int 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = true; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr long 8036: min() noexcept { return -0x7fffffffffffffffL - 1; } 8036: 8036: static constexpr long 8036: max() noexcept { return 0x7fffffffffffffffL; } 8036: 8036: 8036: static constexpr long 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 8036: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr long 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr long 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr long 8036: infinity() noexcept { return static_cast(0); } 8036: 8036: static constexpr long 8036: quiet_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr long 8036: signaling_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr long 8036: denorm_min() noexcept { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr unsigned long 8036: min() noexcept { return 0; } 8036: 8036: static constexpr unsigned long 8036: max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } 8036: 8036: 8036: static constexpr unsigned long 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr unsigned long 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr unsigned long 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr unsigned long 8036: infinity() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long 8036: quiet_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = true; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr long long 8036: min() noexcept { return -0x7fffffffffffffffLL - 1; } 8036: 8036: static constexpr long long 8036: max() noexcept { return 0x7fffffffffffffffLL; } 8036: 8036: 8036: static constexpr long long 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr long long 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr long long 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr long long 8036: infinity() noexcept { return static_cast(0); } 8036: 8036: static constexpr long long 8036: quiet_NaN() noexcept { return static_cast(0); } 8036: 8036: static constexpr long long 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr long long 8036: denorm_min() noexcept { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr unsigned long long 8036: min() noexcept { return 0; } 8036: 8036: static constexpr unsigned long long 8036: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 8036: 8036: 8036: static constexpr unsigned long long 8036: lowest() noexcept { return min(); } 8036: 8036: 8036: static constexpr int digits 8036: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 8036: static constexpr int digits10 8036: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 8036: 8036: static constexpr int max_digits10 = 0; 8036: 8036: static constexpr bool is_signed = false; 8036: static constexpr bool is_integer = true; 8036: static constexpr bool is_exact = true; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr unsigned long long 8036: epsilon() noexcept { return 0; } 8036: 8036: static constexpr unsigned long long 8036: round_error() noexcept { return 0; } 8036: 8036: static constexpr int min_exponent = 0; 8036: static constexpr int min_exponent10 = 0; 8036: static constexpr int max_exponent = 0; 8036: static constexpr int max_exponent10 = 0; 8036: 8036: static constexpr bool has_infinity = false; 8036: static constexpr bool has_quiet_NaN = false; 8036: static constexpr bool has_signaling_NaN = false; 8036: static constexpr float_denorm_style has_denorm 8036: = denorm_absent; 8036: static constexpr bool has_denorm_loss = false; 8036: 8036: static constexpr unsigned long long 8036: infinity() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long long 8036: quiet_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long long 8036: signaling_NaN() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr unsigned long long 8036: denorm_min() noexcept 8036: { return static_cast(0); } 8036: 8036: static constexpr bool is_iec559 = false; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = true; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = false; 8036: static constexpr float_round_style round_style 8036: = round_toward_zero; 8036: }; 8036: # 1570 "/usr/include/c++/8/limits" 3 8036: template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; 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_toward_zero; }; template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = false; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; 8036: # 1593 "/usr/include/c++/8/limits" 3 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr float 8036: min() noexcept { return 1.17549435082228750796873653722224568e-38F; } 8036: 8036: static constexpr float 8036: max() noexcept { return 3.40282346638528859811704183484516925e+38F; } 8036: 8036: 8036: static constexpr float 8036: lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } 8036: 8036: 8036: static constexpr int digits = 24; 8036: static constexpr int digits10 = 6; 8036: 8036: static constexpr int max_digits10 8036: = (2 + (24) * 643L / 2136); 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = false; 8036: static constexpr bool is_exact = false; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr float 8036: epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } 8036: 8036: static constexpr float 8036: round_error() noexcept { return 0.5F; } 8036: 8036: static constexpr int min_exponent = (-125); 8036: static constexpr int min_exponent10 = (-37); 8036: static constexpr int max_exponent = 128; 8036: static constexpr int max_exponent10 = 38; 8036: 8036: static constexpr bool has_infinity = 1; 8036: static constexpr bool has_quiet_NaN = 1; 8036: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8036: static constexpr float_denorm_style has_denorm 8036: = bool(1) ? denorm_present : denorm_absent; 8036: static constexpr bool has_denorm_loss 8036: = false; 8036: 8036: static constexpr float 8036: infinity() noexcept { return __builtin_huge_valf(); } 8036: 8036: static constexpr float 8036: quiet_NaN() noexcept { return __builtin_nanf(""); } 8036: 8036: static constexpr float 8036: signaling_NaN() noexcept { return __builtin_nansf(""); } 8036: 8036: static constexpr float 8036: denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } 8036: 8036: static constexpr bool is_iec559 8036: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before 8036: = false; 8036: static constexpr float_round_style round_style 8036: = round_to_nearest; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr double 8036: min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } 8036: 8036: static constexpr double 8036: max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } 8036: 8036: 8036: static constexpr double 8036: lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } 8036: 8036: 8036: static constexpr int digits = 53; 8036: static constexpr int digits10 = 15; 8036: 8036: static constexpr int max_digits10 8036: = (2 + (53) * 643L / 2136); 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = false; 8036: static constexpr bool is_exact = false; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr double 8036: epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } 8036: 8036: static constexpr double 8036: round_error() noexcept { return 0.5; } 8036: 8036: static constexpr int min_exponent = (-1021); 8036: static constexpr int min_exponent10 = (-307); 8036: static constexpr int max_exponent = 1024; 8036: static constexpr int max_exponent10 = 308; 8036: 8036: static constexpr bool has_infinity = 1; 8036: static constexpr bool has_quiet_NaN = 1; 8036: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8036: static constexpr float_denorm_style has_denorm 8036: = bool(1) ? denorm_present : denorm_absent; 8036: static constexpr bool has_denorm_loss 8036: = false; 8036: 8036: static constexpr double 8036: infinity() noexcept { return __builtin_huge_val(); } 8036: 8036: static constexpr double 8036: quiet_NaN() noexcept { return __builtin_nan(""); } 8036: 8036: static constexpr double 8036: signaling_NaN() noexcept { return __builtin_nans(""); } 8036: 8036: static constexpr double 8036: denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } 8036: 8036: static constexpr bool is_iec559 8036: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before 8036: = false; 8036: static constexpr float_round_style round_style 8036: = round_to_nearest; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct numeric_limits 8036: { 8036: static constexpr bool is_specialized = true; 8036: 8036: static constexpr long double 8036: min() noexcept { return 2.00416836000897277799610805135016205e-292L; } 8036: 8036: static constexpr long double 8036: max() noexcept { return 1.79769313486231580793728971405301199e+308L; } 8036: 8036: 8036: static constexpr long double 8036: lowest() noexcept { return -1.79769313486231580793728971405301199e+308L; } 8036: 8036: 8036: static constexpr int digits = 106; 8036: static constexpr int digits10 = 31; 8036: 8036: static constexpr int max_digits10 8036: = (2 + (106) * 643L / 2136); 8036: 8036: static constexpr bool is_signed = true; 8036: static constexpr bool is_integer = false; 8036: static constexpr bool is_exact = false; 8036: static constexpr int radix = 2; 8036: 8036: static constexpr long double 8036: epsilon() noexcept { return 4.94065645841246544176568792868221372e-324L; } 8036: 8036: static constexpr long double 8036: round_error() noexcept { return 0.5L; } 8036: 8036: static constexpr int min_exponent = (-968); 8036: static constexpr int min_exponent10 = (-291); 8036: static constexpr int max_exponent = 1024; 8036: static constexpr int max_exponent10 = 308; 8036: 8036: static constexpr bool has_infinity = 1; 8036: static constexpr bool has_quiet_NaN = 1; 8036: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8036: static constexpr float_denorm_style has_denorm 8036: = bool(1) ? denorm_present : denorm_absent; 8036: static constexpr bool has_denorm_loss 8036: = false; 8036: 8036: static constexpr long double 8036: infinity() noexcept { return __builtin_huge_vall(); } 8036: 8036: static constexpr long double 8036: quiet_NaN() noexcept { return __builtin_nanl(""); } 8036: 8036: static constexpr long double 8036: signaling_NaN() noexcept { return __builtin_nansl(""); } 8036: 8036: static constexpr long double 8036: denorm_min() noexcept { return 4.94065645841246544176568792868221372e-324L; } 8036: 8036: static constexpr bool is_iec559 8036: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8036: static constexpr bool is_bounded = true; 8036: static constexpr bool is_modulo = false; 8036: 8036: static constexpr bool traps = false; 8036: static constexpr bool tinyness_before = 8036: false; 8036: static constexpr float_round_style round_style = 8036: round_to_nearest; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 36 "/usr/include/c++/8/bits/uniform_int_dist.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: namespace __detail 8036: { 8036: 8036: template 8036: inline bool 8036: _Power_of_2(_Tp __x) 8036: { 8036: return ((__x - 1) & __x) == 0; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class uniform_int_distribution 8036: { 8036: static_assert(std::is_integral<_IntType>::value, 8036: "template argument must be an integral type"); 8036: 8036: public: 8036: 8036: typedef _IntType result_type; 8036: 8036: struct param_type 8036: { 8036: typedef uniform_int_distribution<_IntType> distribution_type; 8036: 8036: explicit 8036: param_type(_IntType __a = 0, 8036: _IntType __b = std::numeric_limits<_IntType>::max()) 8036: : _M_a(__a), _M_b(__b) 8036: { 8036: ; 8036: } 8036: 8036: result_type 8036: a() const 8036: { return _M_a; } 8036: 8036: result_type 8036: b() const 8036: { return _M_b; } 8036: 8036: friend bool 8036: operator==(const param_type& __p1, const param_type& __p2) 8036: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 8036: 8036: friend bool 8036: operator!=(const param_type& __p1, const param_type& __p2) 8036: { return !(__p1 == __p2); } 8036: 8036: private: 8036: _IntType _M_a; 8036: _IntType _M_b; 8036: }; 8036: 8036: public: 8036: 8036: 8036: 8036: explicit 8036: uniform_int_distribution(_IntType __a = 0, 8036: _IntType __b = std::numeric_limits<_IntType>::max()) 8036: : _M_param(__a, __b) 8036: { } 8036: 8036: explicit 8036: uniform_int_distribution(const param_type& __p) 8036: : _M_param(__p) 8036: { } 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: reset() { } 8036: 8036: result_type 8036: a() const 8036: { return _M_param.a(); } 8036: 8036: result_type 8036: b() const 8036: { return _M_param.b(); } 8036: 8036: 8036: 8036: 8036: param_type 8036: param() const 8036: { return _M_param; } 8036: 8036: 8036: 8036: 8036: 8036: void 8036: param(const param_type& __param) 8036: { _M_param = __param; } 8036: 8036: 8036: 8036: 8036: result_type 8036: min() const 8036: { return this->a(); } 8036: 8036: 8036: 8036: 8036: result_type 8036: max() const 8036: { return this->b(); } 8036: 8036: 8036: 8036: 8036: template 8036: result_type 8036: operator()(_UniformRandomNumberGenerator& __urng) 8036: { return this->operator()(__urng, _M_param); } 8036: 8036: template 8036: result_type 8036: operator()(_UniformRandomNumberGenerator& __urng, 8036: const param_type& __p); 8036: 8036: template 8036: void 8036: __generate(_ForwardIterator __f, _ForwardIterator __t, 8036: _UniformRandomNumberGenerator& __urng) 8036: { this->__generate(__f, __t, __urng, _M_param); } 8036: 8036: template 8036: void 8036: __generate(_ForwardIterator __f, _ForwardIterator __t, 8036: _UniformRandomNumberGenerator& __urng, 8036: const param_type& __p) 8036: { this->__generate_impl(__f, __t, __urng, __p); } 8036: 8036: template 8036: void 8036: __generate(result_type* __f, result_type* __t, 8036: _UniformRandomNumberGenerator& __urng, 8036: const param_type& __p) 8036: { this->__generate_impl(__f, __t, __urng, __p); } 8036: 8036: 8036: 8036: 8036: 8036: friend bool 8036: operator==(const uniform_int_distribution& __d1, 8036: const uniform_int_distribution& __d2) 8036: { return __d1._M_param == __d2._M_param; } 8036: 8036: private: 8036: template 8036: void 8036: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8036: _UniformRandomNumberGenerator& __urng, 8036: const param_type& __p); 8036: 8036: param_type _M_param; 8036: }; 8036: 8036: template 8036: template 8036: typename uniform_int_distribution<_IntType>::result_type 8036: uniform_int_distribution<_IntType>:: 8036: operator()(_UniformRandomNumberGenerator& __urng, 8036: const param_type& __param) 8036: { 8036: typedef typename _UniformRandomNumberGenerator::result_type 8036: _Gresult_type; 8036: typedef typename std::make_unsigned::type __utype; 8036: typedef typename std::common_type<_Gresult_type, __utype>::type 8036: __uctype; 8036: 8036: const __uctype __urngmin = __urng.min(); 8036: const __uctype __urngmax = __urng.max(); 8036: const __uctype __urngrange = __urngmax - __urngmin; 8036: const __uctype __urange 8036: = __uctype(__param.b()) - __uctype(__param.a()); 8036: 8036: __uctype __ret; 8036: 8036: if (__urngrange > __urange) 8036: { 8036: 8036: const __uctype __uerange = __urange + 1; 8036: const __uctype __scaling = __urngrange / __uerange; 8036: const __uctype __past = __uerange * __scaling; 8036: do 8036: __ret = __uctype(__urng()) - __urngmin; 8036: while (__ret >= __past); 8036: __ret /= __scaling; 8036: } 8036: else if (__urngrange < __urange) 8036: { 8036: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8036: __uctype __tmp; 8036: do 8036: { 8036: const __uctype __uerngrange = __urngrange + 1; 8036: __tmp = (__uerngrange * operator() 8036: (__urng, param_type(0, __urange / __uerngrange))); 8036: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8036: } 8036: while (__ret > __urange || __ret < __tmp); 8036: } 8036: else 8036: __ret = __uctype(__urng()) - __urngmin; 8036: 8036: return __ret + __param.a(); 8036: } 8036: 8036: 8036: template 8036: template 8036: void 8036: uniform_int_distribution<_IntType>:: 8036: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8036: _UniformRandomNumberGenerator& __urng, 8036: const param_type& __param) 8036: { 8036: 8036: typedef typename _UniformRandomNumberGenerator::result_type 8036: _Gresult_type; 8036: typedef typename std::make_unsigned::type __utype; 8036: typedef typename std::common_type<_Gresult_type, __utype>::type 8036: __uctype; 8036: 8036: const __uctype __urngmin = __urng.min(); 8036: const __uctype __urngmax = __urng.max(); 8036: const __uctype __urngrange = __urngmax - __urngmin; 8036: const __uctype __urange 8036: = __uctype(__param.b()) - __uctype(__param.a()); 8036: 8036: __uctype __ret; 8036: 8036: if (__urngrange > __urange) 8036: { 8036: if (__detail::_Power_of_2(__urngrange + 1) 8036: && __detail::_Power_of_2(__urange + 1)) 8036: { 8036: while (__f != __t) 8036: { 8036: __ret = __uctype(__urng()) - __urngmin; 8036: *__f++ = (__ret & __urange) + __param.a(); 8036: } 8036: } 8036: else 8036: { 8036: 8036: const __uctype __uerange = __urange + 1; 8036: const __uctype __scaling = __urngrange / __uerange; 8036: const __uctype __past = __uerange * __scaling; 8036: while (__f != __t) 8036: { 8036: do 8036: __ret = __uctype(__urng()) - __urngmin; 8036: while (__ret >= __past); 8036: *__f++ = __ret / __scaling + __param.a(); 8036: } 8036: } 8036: } 8036: else if (__urngrange < __urange) 8036: { 8036: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8036: __uctype __tmp; 8036: while (__f != __t) 8036: { 8036: do 8036: { 8036: const __uctype __uerngrange = __urngrange + 1; 8036: __tmp = (__uerngrange * operator() 8036: (__urng, param_type(0, __urange / __uerngrange))); 8036: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8036: } 8036: while (__ret > __urange || __ret < __tmp); 8036: *__f++ = __ret; 8036: } 8036: } 8036: else 8036: while (__f != __t) 8036: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: void 8036: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 8036: _Iterator __c, _Compare __comp) 8036: { 8036: if (__comp(__a, __b)) 8036: { 8036: if (__comp(__b, __c)) 8036: std::iter_swap(__result, __b); 8036: else if (__comp(__a, __c)) 8036: std::iter_swap(__result, __c); 8036: else 8036: std::iter_swap(__result, __a); 8036: } 8036: else if (__comp(__a, __c)) 8036: std::iter_swap(__result, __a); 8036: else if (__comp(__b, __c)) 8036: std::iter_swap(__result, __c); 8036: else 8036: std::iter_swap(__result, __b); 8036: } 8036: 8036: 8036: template 8036: inline _InputIterator 8036: __find_if(_InputIterator __first, _InputIterator __last, 8036: _Predicate __pred, input_iterator_tag) 8036: { 8036: while (__first != __last && !__pred(__first)) 8036: ++__first; 8036: return __first; 8036: } 8036: 8036: 8036: template 8036: _RandomAccessIterator 8036: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Predicate __pred, random_access_iterator_tag) 8036: { 8036: typename iterator_traits<_RandomAccessIterator>::difference_type 8036: __trip_count = (__last - __first) >> 2; 8036: 8036: for (; __trip_count > 0; --__trip_count) 8036: { 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: } 8036: 8036: switch (__last - __first) 8036: { 8036: case 3: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: case 2: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: case 1: 8036: if (__pred(__first)) 8036: return __first; 8036: ++__first; 8036: case 0: 8036: default: 8036: return __last; 8036: } 8036: } 8036: 8036: template 8036: inline _Iterator 8036: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 8036: { 8036: return __find_if(__first, __last, __pred, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: 8036: template 8036: inline _InputIterator 8036: __find_if_not(_InputIterator __first, _InputIterator __last, 8036: _Predicate __pred) 8036: { 8036: return std::__find_if(__first, __last, 8036: __gnu_cxx::__ops::__negate(__pred), 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: _InputIterator 8036: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 8036: { 8036: for (; __len; --__len, (void) ++__first) 8036: if (!__pred(__first)) 8036: break; 8036: return __first; 8036: } 8036: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _ForwardIterator1 8036: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8036: _BinaryPredicate __predicate) 8036: { 8036: 8036: if (__first1 == __last1 || __first2 == __last2) 8036: return __first1; 8036: 8036: 8036: _ForwardIterator2 __p1(__first2); 8036: if (++__p1 == __last2) 8036: return std::__find_if(__first1, __last1, 8036: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8036: 8036: 8036: _ForwardIterator2 __p; 8036: _ForwardIterator1 __current = __first1; 8036: 8036: for (;;) 8036: { 8036: __first1 = 8036: std::__find_if(__first1, __last1, 8036: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8036: 8036: if (__first1 == __last1) 8036: return __last1; 8036: 8036: __p = __p1; 8036: __current = __first1; 8036: if (++__current == __last1) 8036: return __last1; 8036: 8036: while (__predicate(__current, __p)) 8036: { 8036: if (++__p == __last2) 8036: return __first1; 8036: if (++__current == __last1) 8036: return __last1; 8036: } 8036: ++__first1; 8036: } 8036: return __first1; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 8036: _Integer __count, _UnaryPredicate __unary_pred, 8036: std::forward_iterator_tag) 8036: { 8036: __first = std::__find_if(__first, __last, __unary_pred); 8036: while (__first != __last) 8036: { 8036: typename iterator_traits<_ForwardIterator>::difference_type 8036: __n = __count; 8036: _ForwardIterator __i = __first; 8036: ++__i; 8036: while (__i != __last && __n != 1 && __unary_pred(__i)) 8036: { 8036: ++__i; 8036: --__n; 8036: } 8036: if (__n == 1) 8036: return __first; 8036: if (__i == __last) 8036: return __last; 8036: __first = std::__find_if(++__i, __last, __unary_pred); 8036: } 8036: return __last; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _RandomAccessIter 8036: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 8036: _Integer __count, _UnaryPredicate __unary_pred, 8036: std::random_access_iterator_tag) 8036: { 8036: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 8036: _DistanceType; 8036: 8036: _DistanceType __tailSize = __last - __first; 8036: _DistanceType __remainder = __count; 8036: 8036: while (__remainder <= __tailSize) 8036: { 8036: __first += __remainder; 8036: __tailSize -= __remainder; 8036: 8036: 8036: _RandomAccessIter __backTrack = __first; 8036: while (__unary_pred(--__backTrack)) 8036: { 8036: if (--__remainder == 0) 8036: return (__first - __count); 8036: } 8036: __remainder = __count + 1 - (__first - __backTrack); 8036: } 8036: return __last; 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __search_n(_ForwardIterator __first, _ForwardIterator __last, 8036: _Integer __count, 8036: _UnaryPredicate __unary_pred) 8036: { 8036: if (__count <= 0) 8036: return __first; 8036: 8036: if (__count == 1) 8036: return std::__find_if(__first, __last, __unary_pred); 8036: 8036: return std::__search_n_aux(__first, __last, __count, __unary_pred, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: 8036: template 8036: _ForwardIterator1 8036: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8036: forward_iterator_tag, forward_iterator_tag, 8036: _BinaryPredicate __comp) 8036: { 8036: if (__first2 == __last2) 8036: return __last1; 8036: 8036: _ForwardIterator1 __result = __last1; 8036: while (1) 8036: { 8036: _ForwardIterator1 __new_result 8036: = std::__search(__first1, __last1, __first2, __last2, __comp); 8036: if (__new_result == __last1) 8036: return __result; 8036: else 8036: { 8036: __result = __new_result; 8036: __first1 = __new_result; 8036: ++__first1; 8036: } 8036: } 8036: } 8036: 8036: 8036: template 8036: _BidirectionalIterator1 8036: __find_end(_BidirectionalIterator1 __first1, 8036: _BidirectionalIterator1 __last1, 8036: _BidirectionalIterator2 __first2, 8036: _BidirectionalIterator2 __last2, 8036: bidirectional_iterator_tag, bidirectional_iterator_tag, 8036: _BinaryPredicate __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 8036: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 8036: 8036: _RevIterator1 __rlast1(__first1); 8036: _RevIterator2 __rlast2(__first2); 8036: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 8036: _RevIterator2(__last2), __rlast2, 8036: __comp); 8036: 8036: if (__rresult == __rlast1) 8036: return __last1; 8036: else 8036: { 8036: _BidirectionalIterator1 __result = __rresult.base(); 8036: std::advance(__result, -std::distance(__first2, __last2)); 8036: return __result; 8036: } 8036: } 8036: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator1 8036: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__find_end(__first1, __last1, __first2, __last2, 8036: std::__iterator_category(__first1), 8036: std::__iterator_category(__first2), 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator1 8036: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8036: _BinaryPredicate __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__find_end(__first1, __last1, __first2, __last2, 8036: std::__iterator_category(__first1), 8036: std::__iterator_category(__first2), 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8036: { return __last == std::find_if_not(__first, __last, __pred); } 8036: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8036: { return __last == std::find_if(__first, __last, __pred); } 8036: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8036: { return !std::none_of(__first, __last, __pred); } 8036: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _InputIterator 8036: find_if_not(_InputIterator __first, _InputIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: return std::__find_if_not(__first, __last, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: is_partitioned(_InputIterator __first, _InputIterator __last, 8036: _Predicate __pred) 8036: { 8036: __first = std::find_if_not(__first, __last, __pred); 8036: if (__first == __last) 8036: return true; 8036: ++__first; 8036: return std::none_of(__first, __last, __pred); 8036: } 8036: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _ForwardIterator 8036: partition_point(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: typedef typename iterator_traits<_ForwardIterator>::difference_type 8036: _DistanceType; 8036: 8036: _DistanceType __len = std::distance(__first, __last); 8036: _DistanceType __half; 8036: _ForwardIterator __middle; 8036: 8036: while (__len > 0) 8036: { 8036: __half = __len >> 1; 8036: __middle = __first; 8036: std::advance(__middle, __half); 8036: if (__pred(*__middle)) 8036: { 8036: __first = __middle; 8036: ++__first; 8036: __len = __len - __half - 1; 8036: } 8036: else 8036: __len = __half; 8036: } 8036: return __first; 8036: } 8036: 8036: 8036: template 8036: _OutputIterator 8036: __remove_copy_if(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _Predicate __pred) 8036: { 8036: for (; __first != __last; ++__first) 8036: if (!__pred(__first)) 8036: { 8036: *__result = *__first; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: remove_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, const _Tp& __value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__remove_copy_if(__first, __last, __result, 8036: __gnu_cxx::__ops::__iter_equals_val(__value)); 8036: } 8036: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: remove_copy_if(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__remove_copy_if(__first, __last, __result, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _OutputIterator 8036: copy_if(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: if (__pred(*__first)) 8036: { 8036: *__result = *__first; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __copy_n(_InputIterator __first, _Size __n, 8036: _OutputIterator __result, input_iterator_tag) 8036: { 8036: if (__n > 0) 8036: { 8036: while (true) 8036: { 8036: *__result = *__first; 8036: ++__result; 8036: if (--__n > 0) 8036: ++__first; 8036: else 8036: break; 8036: } 8036: } 8036: return __result; 8036: } 8036: 8036: template 8036: inline _OutputIterator 8036: __copy_n(_RandomAccessIterator __first, _Size __n, 8036: _OutputIterator __result, random_access_iterator_tag) 8036: { return std::copy(__first, __first + __n, __result); } 8036: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: return std::__copy_n(__first, __n, __result, 8036: std::__iterator_category(__first)); 8036: } 8036: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: pair<_OutputIterator1, _OutputIterator2> 8036: partition_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: if (__pred(*__first)) 8036: { 8036: *__out_true = *__first; 8036: ++__out_true; 8036: } 8036: else 8036: { 8036: *__out_false = *__first; 8036: ++__out_false; 8036: } 8036: 8036: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 8036: } 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: __first = std::__find_if(__first, __last, __pred); 8036: if (__first == __last) 8036: return __first; 8036: _ForwardIterator __result = __first; 8036: ++__first; 8036: for (; __first != __last; ++__first) 8036: if (!__pred(__first)) 8036: { 8036: *__result = std::move(*__first); 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: remove(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__remove_if(__first, __last, 8036: __gnu_cxx::__ops::__iter_equals_val(__value)); 8036: } 8036: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: remove_if(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__remove_if(__first, __last, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: if (__first == __last) 8036: return __last; 8036: _ForwardIterator __next = __first; 8036: while (++__next != __last) 8036: { 8036: if (__binary_pred(__first, __next)) 8036: return __first; 8036: __first = __next; 8036: } 8036: return __last; 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __unique(_ForwardIterator __first, _ForwardIterator __last, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: 8036: __first = std::__adjacent_find(__first, __last, __binary_pred); 8036: if (__first == __last) 8036: return __last; 8036: 8036: 8036: _ForwardIterator __dest = __first; 8036: ++__first; 8036: while (++__first != __last) 8036: if (!__binary_pred(__dest, __first)) 8036: *++__dest = std::move(*__first); 8036: return ++__dest; 8036: } 8036: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: unique(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__unique(__first, __last, 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: unique(_ForwardIterator __first, _ForwardIterator __last, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__unique(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _OutputIterator 8036: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 8036: _OutputIterator __result, _BinaryPredicate __binary_pred, 8036: forward_iterator_tag, output_iterator_tag) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: _ForwardIterator __next = __first; 8036: *__result = *__first; 8036: while (++__next != __last) 8036: if (!__binary_pred(__first, __next)) 8036: { 8036: __first = __next; 8036: *++__result = *__first; 8036: } 8036: return ++__result; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _OutputIterator 8036: __unique_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _BinaryPredicate __binary_pred, 8036: input_iterator_tag, output_iterator_tag) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: typename iterator_traits<_InputIterator>::value_type __value = *__first; 8036: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 8036: __rebound_pred 8036: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 8036: *__result = __value; 8036: while (++__first != __last) 8036: if (!__rebound_pred(__first, __value)) 8036: { 8036: __value = *__first; 8036: *++__result = __value; 8036: } 8036: return ++__result; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __unique_copy(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result, _BinaryPredicate __binary_pred, 8036: input_iterator_tag, forward_iterator_tag) 8036: { 8036: 8036: 8036: 8036: 8036: *__result = *__first; 8036: while (++__first != __last) 8036: if (!__binary_pred(__result, __first)) 8036: *++__result = *__first; 8036: return ++__result; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 8036: bidirectional_iterator_tag) 8036: { 8036: while (true) 8036: if (__first == __last || __first == --__last) 8036: return; 8036: else 8036: { 8036: std::iter_swap(__first, __last); 8036: ++__first; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: random_access_iterator_tag) 8036: { 8036: if (__first == __last) 8036: return; 8036: --__last; 8036: while (__first < __last) 8036: { 8036: std::iter_swap(__first, __last); 8036: ++__first; 8036: --__last; 8036: } 8036: } 8036: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 8036: { 8036: 8036: 8036: 8036: ; 8036: std::__reverse(__first, __last, std::__iterator_category(__first)); 8036: } 8036: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _OutputIterator 8036: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: while (__first != __last) 8036: { 8036: --__last; 8036: *__result = *__last; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _EuclideanRingElement 8036: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 8036: { 8036: while (__n != 0) 8036: { 8036: _EuclideanRingElement __t = __m % __n; 8036: __m = __n; 8036: __n = __t; 8036: } 8036: return __m; 8036: } 8036: 8036: inline namespace _V2 8036: { 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __rotate(_ForwardIterator __first, 8036: _ForwardIterator __middle, 8036: _ForwardIterator __last, 8036: forward_iterator_tag) 8036: { 8036: if (__first == __middle) 8036: return __last; 8036: else if (__last == __middle) 8036: return __first; 8036: 8036: _ForwardIterator __first2 = __middle; 8036: do 8036: { 8036: std::iter_swap(__first, __first2); 8036: ++__first; 8036: ++__first2; 8036: if (__first == __middle) 8036: __middle = __first2; 8036: } 8036: while (__first2 != __last); 8036: 8036: _ForwardIterator __ret = __first; 8036: 8036: __first2 = __middle; 8036: 8036: while (__first2 != __last) 8036: { 8036: std::iter_swap(__first, __first2); 8036: ++__first; 8036: ++__first2; 8036: if (__first == __middle) 8036: __middle = __first2; 8036: else if (__first2 == __last) 8036: __first2 = __middle; 8036: } 8036: return __ret; 8036: } 8036: 8036: 8036: template 8036: _BidirectionalIterator 8036: __rotate(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last, 8036: bidirectional_iterator_tag) 8036: { 8036: 8036: 8036: 8036: 8036: if (__first == __middle) 8036: return __last; 8036: else if (__last == __middle) 8036: return __first; 8036: 8036: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8036: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8036: 8036: while (__first != __middle && __middle != __last) 8036: { 8036: std::iter_swap(__first, --__last); 8036: ++__first; 8036: } 8036: 8036: if (__first == __middle) 8036: { 8036: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8036: return __last; 8036: } 8036: else 8036: { 8036: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8036: return __first; 8036: } 8036: } 8036: 8036: 8036: template 8036: _RandomAccessIterator 8036: __rotate(_RandomAccessIterator __first, 8036: _RandomAccessIterator __middle, 8036: _RandomAccessIterator __last, 8036: random_access_iterator_tag) 8036: { 8036: 8036: 8036: 8036: 8036: if (__first == __middle) 8036: return __last; 8036: else if (__last == __middle) 8036: return __first; 8036: 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _Distance; 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: 8036: _Distance __n = __last - __first; 8036: _Distance __k = __middle - __first; 8036: 8036: if (__k == __n - __k) 8036: { 8036: std::swap_ranges(__first, __middle, __middle); 8036: return __middle; 8036: } 8036: 8036: _RandomAccessIterator __p = __first; 8036: _RandomAccessIterator __ret = __first + (__last - __middle); 8036: 8036: for (;;) 8036: { 8036: if (__k < __n - __k) 8036: { 8036: if (__is_pod(_ValueType) && __k == 1) 8036: { 8036: _ValueType __t = std::move(*__p); 8036: std::move(__p + 1, __p + __n, __p); 8036: *(__p + __n - 1) = std::move(__t); 8036: return __ret; 8036: } 8036: _RandomAccessIterator __q = __p + __k; 8036: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8036: { 8036: std::iter_swap(__p, __q); 8036: ++__p; 8036: ++__q; 8036: } 8036: __n %= __k; 8036: if (__n == 0) 8036: return __ret; 8036: std::swap(__n, __k); 8036: __k = __n - __k; 8036: } 8036: else 8036: { 8036: __k = __n - __k; 8036: if (__is_pod(_ValueType) && __k == 1) 8036: { 8036: _ValueType __t = std::move(*(__p + __n - 1)); 8036: std::move_backward(__p, __p + __n - 1, __p + __n); 8036: *__p = std::move(__t); 8036: return __ret; 8036: } 8036: _RandomAccessIterator __q = __p + __n; 8036: __p = __q - __k; 8036: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8036: { 8036: --__p; 8036: --__q; 8036: std::iter_swap(__p, __q); 8036: } 8036: __n %= __k; 8036: if (__n == 0) 8036: return __ret; 8036: std::swap(__n, __k); 8036: } 8036: } 8036: } 8036: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: rotate(_ForwardIterator __first, _ForwardIterator __middle, 8036: _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__rotate(__first, __middle, __last, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: } 8036: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 8036: _ForwardIterator __last, _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::copy(__first, __middle, 8036: std::copy(__middle, __last, __result)); 8036: } 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __partition(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred, forward_iterator_tag) 8036: { 8036: if (__first == __last) 8036: return __first; 8036: 8036: while (__pred(*__first)) 8036: if (++__first == __last) 8036: return __first; 8036: 8036: _ForwardIterator __next = __first; 8036: 8036: while (++__next != __last) 8036: if (__pred(*__next)) 8036: { 8036: std::iter_swap(__first, __next); 8036: ++__first; 8036: } 8036: 8036: return __first; 8036: } 8036: 8036: 8036: template 8036: _BidirectionalIterator 8036: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 8036: _Predicate __pred, bidirectional_iterator_tag) 8036: { 8036: while (true) 8036: { 8036: while (true) 8036: if (__first == __last) 8036: return __first; 8036: else if (__pred(*__first)) 8036: ++__first; 8036: else 8036: break; 8036: --__last; 8036: while (true) 8036: if (__first == __last) 8036: return __first; 8036: else if (!bool(__pred(*__last))) 8036: --__last; 8036: else 8036: break; 8036: std::iter_swap(__first, __last); 8036: ++__first; 8036: } 8036: } 8036: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _ForwardIterator 8036: __stable_partition_adaptive(_ForwardIterator __first, 8036: _ForwardIterator __last, 8036: _Predicate __pred, _Distance __len, 8036: _Pointer __buffer, 8036: _Distance __buffer_size) 8036: { 8036: if (__len == 1) 8036: return __first; 8036: 8036: if (__len <= __buffer_size) 8036: { 8036: _ForwardIterator __result1 = __first; 8036: _Pointer __result2 = __buffer; 8036: 8036: 8036: 8036: 8036: *__result2 = std::move(*__first); 8036: ++__result2; 8036: ++__first; 8036: for (; __first != __last; ++__first) 8036: if (__pred(__first)) 8036: { 8036: *__result1 = std::move(*__first); 8036: ++__result1; 8036: } 8036: else 8036: { 8036: *__result2 = std::move(*__first); 8036: ++__result2; 8036: } 8036: 8036: std::move(__buffer, __result2, __result1); 8036: return __result1; 8036: } 8036: 8036: _ForwardIterator __middle = __first; 8036: std::advance(__middle, __len / 2); 8036: _ForwardIterator __left_split = 8036: std::__stable_partition_adaptive(__first, __middle, __pred, 8036: __len / 2, __buffer, 8036: __buffer_size); 8036: 8036: 8036: 8036: _Distance __right_len = __len - __len / 2; 8036: _ForwardIterator __right_split = 8036: std::__find_if_not_n(__middle, __right_len, __pred); 8036: 8036: if (__right_len) 8036: __right_split = 8036: std::__stable_partition_adaptive(__right_split, __last, __pred, 8036: __right_len, 8036: __buffer, __buffer_size); 8036: 8036: std::rotate(__left_split, __middle, __right_split); 8036: std::advance(__left_split, std::distance(__middle, __right_split)); 8036: return __left_split; 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: __first = std::__find_if_not(__first, __last, __pred); 8036: 8036: if (__first == __last) 8036: return __first; 8036: 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_ForwardIterator>::difference_type 8036: _DistanceType; 8036: 8036: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 8036: return 8036: std::__stable_partition_adaptive(__first, __last, __pred, 8036: _DistanceType(__buf.requested_size()), 8036: __buf.begin(), 8036: _DistanceType(__buf.size())); 8036: } 8036: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__stable_partition(__first, __last, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: 8036: 8036: template 8036: void 8036: __heap_select(_RandomAccessIterator __first, 8036: _RandomAccessIterator __middle, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: std::__make_heap(__first, __middle, __comp); 8036: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 8036: if (__comp(__i, __first)) 8036: std::__pop_heap(__first, __middle, __i, __comp); 8036: } 8036: 8036: 8036: 8036: template 8036: _RandomAccessIterator 8036: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 8036: _RandomAccessIterator __result_first, 8036: _RandomAccessIterator __result_last, 8036: _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type 8036: _InputValueType; 8036: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 8036: typedef typename _RItTraits::difference_type _DistanceType; 8036: 8036: if (__result_first == __result_last) 8036: return __result_last; 8036: _RandomAccessIterator __result_real_last = __result_first; 8036: while (__first != __last && __result_real_last != __result_last) 8036: { 8036: *__result_real_last = *__first; 8036: ++__result_real_last; 8036: ++__first; 8036: } 8036: 8036: std::__make_heap(__result_first, __result_real_last, __comp); 8036: while (__first != __last) 8036: { 8036: if (__comp(__first, __result_first)) 8036: std::__adjust_heap(__result_first, _DistanceType(0), 8036: _DistanceType(__result_real_last 8036: - __result_first), 8036: _InputValueType(*__first), __comp); 8036: ++__first; 8036: } 8036: std::__sort_heap(__result_first, __result_real_last, __comp); 8036: return __result_real_last; 8036: } 8036: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _RandomAccessIterator 8036: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8036: _RandomAccessIterator __result_first, 8036: _RandomAccessIterator __result_last) 8036: { 8036: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__partial_sort_copy(__first, __last, 8036: __result_first, __result_last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _RandomAccessIterator 8036: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8036: _RandomAccessIterator __result_first, 8036: _RandomAccessIterator __result_last, 8036: _Compare __comp) 8036: { 8036: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__partial_sort_copy(__first, __last, 8036: __result_first, __result_last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: 8036: template 8036: void 8036: __unguarded_linear_insert(_RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: typename iterator_traits<_RandomAccessIterator>::value_type 8036: __val = std::move(*__last); 8036: _RandomAccessIterator __next = __last; 8036: --__next; 8036: while (__comp(__val, __next)) 8036: { 8036: *__last = std::move(*__next); 8036: __last = __next; 8036: --__next; 8036: } 8036: *__last = std::move(__val); 8036: } 8036: 8036: 8036: template 8036: void 8036: __insertion_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: if (__first == __last) return; 8036: 8036: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8036: { 8036: if (__comp(__i, __first)) 8036: { 8036: typename iterator_traits<_RandomAccessIterator>::value_type 8036: __val = std::move(*__i); 8036: std::move_backward(__first, __i, __i + 1); 8036: *__first = std::move(__val); 8036: } 8036: else 8036: std::__unguarded_linear_insert(__i, 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: } 8036: } 8036: 8036: 8036: template 8036: inline void 8036: __unguarded_insertion_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 8036: std::__unguarded_linear_insert(__i, 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: enum { _S_threshold = 16 }; 8036: 8036: 8036: template 8036: void 8036: __final_insertion_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: if (__last - __first > int(_S_threshold)) 8036: { 8036: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 8036: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 8036: __comp); 8036: } 8036: else 8036: std::__insertion_sort(__first, __last, __comp); 8036: } 8036: 8036: 8036: template 8036: _RandomAccessIterator 8036: __unguarded_partition(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, 8036: _RandomAccessIterator __pivot, _Compare __comp) 8036: { 8036: while (true) 8036: { 8036: while (__comp(__first, __pivot)) 8036: ++__first; 8036: --__last; 8036: while (__comp(__pivot, __last)) 8036: --__last; 8036: if (!(__first < __last)) 8036: return __first; 8036: std::iter_swap(__first, __last); 8036: ++__first; 8036: } 8036: } 8036: 8036: 8036: template 8036: inline _RandomAccessIterator 8036: __unguarded_partition_pivot(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 8036: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 8036: __comp); 8036: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 8036: } 8036: 8036: template 8036: inline void 8036: __partial_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __middle, 8036: _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: std::__heap_select(__first, __middle, __last, __comp); 8036: std::__sort_heap(__first, __middle, __comp); 8036: } 8036: 8036: 8036: template 8036: void 8036: __introsort_loop(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, 8036: _Size __depth_limit, _Compare __comp) 8036: { 8036: while (__last - __first > int(_S_threshold)) 8036: { 8036: if (__depth_limit == 0) 8036: { 8036: std::__partial_sort(__first, __last, __last, __comp); 8036: return; 8036: } 8036: --__depth_limit; 8036: _RandomAccessIterator __cut = 8036: std::__unguarded_partition_pivot(__first, __last, __comp); 8036: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 8036: __last = __cut; 8036: } 8036: } 8036: 8036: 8036: 8036: template 8036: inline void 8036: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: if (__first != __last) 8036: { 8036: std::__introsort_loop(__first, __last, 8036: std::__lg(__last - __first) * 2, 8036: __comp); 8036: std::__final_insertion_sort(__first, __last, __comp); 8036: } 8036: } 8036: 8036: template 8036: void 8036: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8036: _RandomAccessIterator __last, _Size __depth_limit, 8036: _Compare __comp) 8036: { 8036: while (__last - __first > 3) 8036: { 8036: if (__depth_limit == 0) 8036: { 8036: std::__heap_select(__first, __nth + 1, __last, __comp); 8036: 8036: std::iter_swap(__first, __nth); 8036: return; 8036: } 8036: --__depth_limit; 8036: _RandomAccessIterator __cut = 8036: std::__unguarded_partition_pivot(__first, __last, __comp); 8036: if (__cut <= __nth) 8036: __first = __cut; 8036: else 8036: __last = __cut; 8036: } 8036: std::__insertion_sort(__first, __last, __comp); 8036: } 8036: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__lower_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::difference_type 8036: _DistanceType; 8036: 8036: _DistanceType __len = std::distance(__first, __last); 8036: 8036: while (__len > 0) 8036: { 8036: _DistanceType __half = __len >> 1; 8036: _ForwardIterator __middle = __first; 8036: std::advance(__middle, __half); 8036: if (__comp(__val, __middle)) 8036: __len = __half; 8036: else 8036: { 8036: __first = __middle; 8036: ++__first; 8036: __len = __len - __half - 1; 8036: } 8036: } 8036: return __first; 8036: } 8036: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__upper_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__val_less_iter()); 8036: } 8036: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__upper_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: pair<_ForwardIterator, _ForwardIterator> 8036: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, 8036: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::difference_type 8036: _DistanceType; 8036: 8036: _DistanceType __len = std::distance(__first, __last); 8036: 8036: while (__len > 0) 8036: { 8036: _DistanceType __half = __len >> 1; 8036: _ForwardIterator __middle = __first; 8036: std::advance(__middle, __half); 8036: if (__comp_it_val(__middle, __val)) 8036: { 8036: __first = __middle; 8036: ++__first; 8036: __len = __len - __half - 1; 8036: } 8036: else if (__comp_val_it(__val, __middle)) 8036: __len = __half; 8036: else 8036: { 8036: _ForwardIterator __left 8036: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 8036: std::advance(__first, __len); 8036: _ForwardIterator __right 8036: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 8036: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 8036: } 8036: } 8036: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 8036: } 8036: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline pair<_ForwardIterator, _ForwardIterator> 8036: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__equal_range(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_less_val(), 8036: __gnu_cxx::__ops::__val_less_iter()); 8036: } 8036: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline pair<_ForwardIterator, _ForwardIterator> 8036: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: ; 8036: 8036: return std::__equal_range(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_comp_val(__comp), 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: } 8036: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: bool 8036: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: _ForwardIterator __i 8036: = std::__lower_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_less_val()); 8036: return __i != __last && !(__val < *__i); 8036: } 8036: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: bool 8036: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __val, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: ; 8036: 8036: _ForwardIterator __i 8036: = std::__lower_bound(__first, __last, __val, 8036: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8036: return __i != __last && !bool(__comp(__val, *__i)); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: { 8036: if (__comp(__first2, __first1)) 8036: { 8036: *__result = std::move(*__first2); 8036: ++__first2; 8036: } 8036: else 8036: { 8036: *__result = std::move(*__first1); 8036: ++__first1; 8036: } 8036: ++__result; 8036: } 8036: if (__first1 != __last1) 8036: std::move(__first1, __last1, __result); 8036: } 8036: 8036: 8036: template 8036: void 8036: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 8036: _BidirectionalIterator1 __last1, 8036: _BidirectionalIterator2 __first2, 8036: _BidirectionalIterator2 __last2, 8036: _BidirectionalIterator3 __result, 8036: _Compare __comp) 8036: { 8036: if (__first1 == __last1) 8036: { 8036: std::move_backward(__first2, __last2, __result); 8036: return; 8036: } 8036: else if (__first2 == __last2) 8036: return; 8036: 8036: --__last1; 8036: --__last2; 8036: while (true) 8036: { 8036: if (__comp(__last2, __last1)) 8036: { 8036: *--__result = std::move(*__last1); 8036: if (__first1 == __last1) 8036: { 8036: std::move_backward(__first2, ++__last2, __result); 8036: return; 8036: } 8036: --__last1; 8036: } 8036: else 8036: { 8036: *--__result = std::move(*__last2); 8036: if (__first2 == __last2) 8036: return; 8036: --__last2; 8036: } 8036: } 8036: } 8036: 8036: 8036: template 8036: _BidirectionalIterator1 8036: __rotate_adaptive(_BidirectionalIterator1 __first, 8036: _BidirectionalIterator1 __middle, 8036: _BidirectionalIterator1 __last, 8036: _Distance __len1, _Distance __len2, 8036: _BidirectionalIterator2 __buffer, 8036: _Distance __buffer_size) 8036: { 8036: _BidirectionalIterator2 __buffer_end; 8036: if (__len1 > __len2 && __len2 <= __buffer_size) 8036: { 8036: if (__len2) 8036: { 8036: __buffer_end = std::move(__middle, __last, __buffer); 8036: std::move_backward(__first, __middle, __last); 8036: return std::move(__buffer, __buffer_end, __first); 8036: } 8036: else 8036: return __first; 8036: } 8036: else if (__len1 <= __buffer_size) 8036: { 8036: if (__len1) 8036: { 8036: __buffer_end = std::move(__first, __middle, __buffer); 8036: std::move(__middle, __last, __first); 8036: return std::move_backward(__buffer, __buffer_end, __last); 8036: } 8036: else 8036: return __last; 8036: } 8036: else 8036: { 8036: std::rotate(__first, __middle, __last); 8036: std::advance(__first, std::distance(__middle, __last)); 8036: return __first; 8036: } 8036: } 8036: 8036: 8036: template 8036: void 8036: __merge_adaptive(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last, 8036: _Distance __len1, _Distance __len2, 8036: _Pointer __buffer, _Distance __buffer_size, 8036: _Compare __comp) 8036: { 8036: if (__len1 <= __len2 && __len1 <= __buffer_size) 8036: { 8036: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 8036: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 8036: __first, __comp); 8036: } 8036: else if (__len2 <= __buffer_size) 8036: { 8036: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 8036: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 8036: __buffer_end, __last, __comp); 8036: } 8036: else 8036: { 8036: _BidirectionalIterator __first_cut = __first; 8036: _BidirectionalIterator __second_cut = __middle; 8036: _Distance __len11 = 0; 8036: _Distance __len22 = 0; 8036: if (__len1 > __len2) 8036: { 8036: __len11 = __len1 / 2; 8036: std::advance(__first_cut, __len11); 8036: __second_cut 8036: = std::__lower_bound(__middle, __last, *__first_cut, 8036: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8036: __len22 = std::distance(__middle, __second_cut); 8036: } 8036: else 8036: { 8036: __len22 = __len2 / 2; 8036: std::advance(__second_cut, __len22); 8036: __first_cut 8036: = std::__upper_bound(__first, __middle, *__second_cut, 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: __len11 = std::distance(__first, __first_cut); 8036: } 8036: 8036: _BidirectionalIterator __new_middle 8036: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 8036: __len1 - __len11, __len22, __buffer, 8036: __buffer_size); 8036: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 8036: __len22, __buffer, __buffer_size, __comp); 8036: std::__merge_adaptive(__new_middle, __second_cut, __last, 8036: __len1 - __len11, 8036: __len2 - __len22, __buffer, 8036: __buffer_size, __comp); 8036: } 8036: } 8036: 8036: 8036: template 8036: void 8036: __merge_without_buffer(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last, 8036: _Distance __len1, _Distance __len2, 8036: _Compare __comp) 8036: { 8036: if (__len1 == 0 || __len2 == 0) 8036: return; 8036: 8036: if (__len1 + __len2 == 2) 8036: { 8036: if (__comp(__middle, __first)) 8036: std::iter_swap(__first, __middle); 8036: return; 8036: } 8036: 8036: _BidirectionalIterator __first_cut = __first; 8036: _BidirectionalIterator __second_cut = __middle; 8036: _Distance __len11 = 0; 8036: _Distance __len22 = 0; 8036: if (__len1 > __len2) 8036: { 8036: __len11 = __len1 / 2; 8036: std::advance(__first_cut, __len11); 8036: __second_cut 8036: = std::__lower_bound(__middle, __last, *__first_cut, 8036: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8036: __len22 = std::distance(__middle, __second_cut); 8036: } 8036: else 8036: { 8036: __len22 = __len2 / 2; 8036: std::advance(__second_cut, __len22); 8036: __first_cut 8036: = std::__upper_bound(__first, __middle, *__second_cut, 8036: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8036: __len11 = std::distance(__first, __first_cut); 8036: } 8036: 8036: std::rotate(__first_cut, __middle, __second_cut); 8036: _BidirectionalIterator __new_middle = __first_cut; 8036: std::advance(__new_middle, std::distance(__middle, __second_cut)); 8036: std::__merge_without_buffer(__first, __first_cut, __new_middle, 8036: __len11, __len22, __comp); 8036: std::__merge_without_buffer(__new_middle, __second_cut, __last, 8036: __len1 - __len11, __len2 - __len22, __comp); 8036: } 8036: 8036: template 8036: void 8036: __inplace_merge(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last, 8036: _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_BidirectionalIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 8036: _DistanceType; 8036: 8036: if (__first == __middle || __middle == __last) 8036: return; 8036: 8036: const _DistanceType __len1 = std::distance(__first, __middle); 8036: const _DistanceType __len2 = std::distance(__middle, __last); 8036: 8036: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 8036: _TmpBuf __buf(__first, __last); 8036: 8036: if (__buf.begin() == 0) 8036: std::__merge_without_buffer 8036: (__first, __middle, __last, __len1, __len2, __comp); 8036: else 8036: std::__merge_adaptive 8036: (__first, __middle, __last, __len1, __len2, __buf.begin(), 8036: _DistanceType(__buf.size()), __comp); 8036: } 8036: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: inplace_merge(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: std::__inplace_merge(__first, __middle, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: inplace_merge(_BidirectionalIterator __first, 8036: _BidirectionalIterator __middle, 8036: _BidirectionalIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: std::__inplace_merge(__first, __middle, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: 8036: 8036: template 8036: _OutputIterator 8036: __move_merge(_InputIterator __first1, _InputIterator __last1, 8036: _InputIterator __first2, _InputIterator __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: { 8036: if (__comp(__first2, __first1)) 8036: { 8036: *__result = std::move(*__first2); 8036: ++__first2; 8036: } 8036: else 8036: { 8036: *__result = std::move(*__first1); 8036: ++__first1; 8036: } 8036: ++__result; 8036: } 8036: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 8036: 8036: ; 8036: } 8036: 8036: template 8036: void 8036: __merge_sort_loop(_RandomAccessIterator1 __first, 8036: _RandomAccessIterator1 __last, 8036: _RandomAccessIterator2 __result, _Distance __step_size, 8036: _Compare __comp) 8036: { 8036: const _Distance __two_step = 2 * __step_size; 8036: 8036: while (__last - __first >= __two_step) 8036: { 8036: __result = std::__move_merge(__first, __first + __step_size, 8036: __first + __step_size, 8036: __first + __two_step, 8036: __result, __comp); 8036: __first += __two_step; 8036: } 8036: __step_size = std::min(_Distance(__last - __first), __step_size); 8036: 8036: std::__move_merge(__first, __first + __step_size, 8036: __first + __step_size, __last, __result, __comp); 8036: } 8036: 8036: template 8036: void 8036: __chunk_insertion_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, 8036: _Distance __chunk_size, _Compare __comp) 8036: { 8036: while (__last - __first >= __chunk_size) 8036: { 8036: std::__insertion_sort(__first, __first + __chunk_size, __comp); 8036: __first += __chunk_size; 8036: } 8036: std::__insertion_sort(__first, __last, __comp); 8036: } 8036: 8036: enum { _S_chunk_size = 7 }; 8036: 8036: template 8036: void 8036: __merge_sort_with_buffer(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, 8036: _Pointer __buffer, _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _Distance; 8036: 8036: const _Distance __len = __last - __first; 8036: const _Pointer __buffer_last = __buffer + __len; 8036: 8036: _Distance __step_size = _S_chunk_size; 8036: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 8036: 8036: while (__step_size < __len) 8036: { 8036: std::__merge_sort_loop(__first, __last, __buffer, 8036: __step_size, __comp); 8036: __step_size *= 2; 8036: std::__merge_sort_loop(__buffer, __buffer_last, __first, 8036: __step_size, __comp); 8036: __step_size *= 2; 8036: } 8036: } 8036: 8036: template 8036: void 8036: __stable_sort_adaptive(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, 8036: _Pointer __buffer, _Distance __buffer_size, 8036: _Compare __comp) 8036: { 8036: const _Distance __len = (__last - __first + 1) / 2; 8036: const _RandomAccessIterator __middle = __first + __len; 8036: if (__len > __buffer_size) 8036: { 8036: std::__stable_sort_adaptive(__first, __middle, __buffer, 8036: __buffer_size, __comp); 8036: std::__stable_sort_adaptive(__middle, __last, __buffer, 8036: __buffer_size, __comp); 8036: } 8036: else 8036: { 8036: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 8036: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 8036: } 8036: std::__merge_adaptive(__first, __middle, __last, 8036: _Distance(__middle - __first), 8036: _Distance(__last - __middle), 8036: __buffer, __buffer_size, 8036: __comp); 8036: } 8036: 8036: 8036: template 8036: void 8036: __inplace_stable_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: if (__last - __first < 15) 8036: { 8036: std::__insertion_sort(__first, __last, __comp); 8036: return; 8036: } 8036: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 8036: std::__inplace_stable_sort(__first, __middle, __comp); 8036: std::__inplace_stable_sort(__middle, __last, __comp); 8036: std::__merge_without_buffer(__first, __middle, __last, 8036: __middle - __first, 8036: __last - __middle, 8036: __comp); 8036: } 8036: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: bool 8036: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (__comp(__first2, __first1)) 8036: return false; 8036: else if (__comp(__first1, __first2)) 8036: ++__first1; 8036: else 8036: { 8036: ++__first1; 8036: ++__first2; 8036: } 8036: 8036: return __first2 == __last2; 8036: } 8036: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__includes(__first1, __last1, __first2, __last2, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__includes(__first1, __last1, __first2, __last2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: bool 8036: __next_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last, _Compare __comp) 8036: { 8036: if (__first == __last) 8036: return false; 8036: _BidirectionalIterator __i = __first; 8036: ++__i; 8036: if (__i == __last) 8036: return false; 8036: __i = __last; 8036: --__i; 8036: 8036: for(;;) 8036: { 8036: _BidirectionalIterator __ii = __i; 8036: --__i; 8036: if (__comp(__i, __ii)) 8036: { 8036: _BidirectionalIterator __j = __last; 8036: while (!__comp(__i, --__j)) 8036: {} 8036: std::iter_swap(__i, __j); 8036: std::__reverse(__ii, __last, 8036: std::__iterator_category(__first)); 8036: return true; 8036: } 8036: if (__i == __first) 8036: { 8036: std::__reverse(__first, __last, 8036: std::__iterator_category(__first)); 8036: return false; 8036: } 8036: } 8036: } 8036: # 2952 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: next_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__next_permutation 8036: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: next_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__next_permutation 8036: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: bool 8036: __prev_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last, _Compare __comp) 8036: { 8036: if (__first == __last) 8036: return false; 8036: _BidirectionalIterator __i = __first; 8036: ++__i; 8036: if (__i == __last) 8036: return false; 8036: __i = __last; 8036: --__i; 8036: 8036: for(;;) 8036: { 8036: _BidirectionalIterator __ii = __i; 8036: --__i; 8036: if (__comp(__ii, __i)) 8036: { 8036: _BidirectionalIterator __j = __last; 8036: while (!__comp(--__j, __i)) 8036: {} 8036: std::iter_swap(__i, __j); 8036: std::__reverse(__ii, __last, 8036: std::__iterator_category(__first)); 8036: return true; 8036: } 8036: if (__i == __first) 8036: { 8036: std::__reverse(__first, __last, 8036: std::__iterator_category(__first)); 8036: return false; 8036: } 8036: } 8036: } 8036: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: prev_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__prev_permutation(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: prev_permutation(_BidirectionalIterator __first, 8036: _BidirectionalIterator __last, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__prev_permutation(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: _OutputIterator 8036: __replace_copy_if(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, 8036: _Predicate __pred, const _Tp& __new_value) 8036: { 8036: for (; __first != __last; ++__first, (void)++__result) 8036: if (__pred(__first)) 8036: *__result = __new_value; 8036: else 8036: *__result = *__first; 8036: return __result; 8036: } 8036: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: replace_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, 8036: const _Tp& __old_value, const _Tp& __new_value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__replace_copy_if(__first, __last, __result, 8036: __gnu_cxx::__ops::__iter_equals_val(__old_value), 8036: __new_value); 8036: } 8036: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: replace_copy_if(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, 8036: _Predicate __pred, const _Tp& __new_value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__replace_copy_if(__first, __last, __result, 8036: __gnu_cxx::__ops::__pred_iter(__pred), 8036: __new_value); 8036: } 8036: 8036: template 8036: typename iterator_traits<_InputIterator>::difference_type 8036: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8036: { 8036: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8036: for (; __first != __last; ++__first) 8036: if (__pred(__first)) 8036: ++__n; 8036: return __n; 8036: } 8036: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 8036: { return std::is_sorted_until(__first, __last) == __last; } 8036: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { return std::is_sorted_until(__first, __last, __comp) == __last; } 8036: 8036: template 8036: _ForwardIterator 8036: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: if (__first == __last) 8036: return __last; 8036: 8036: _ForwardIterator __next = __first; 8036: for (++__next; __next != __last; __first = __next, (void)++__next) 8036: if (__comp(__next, __first)) 8036: return __next; 8036: return __next; 8036: } 8036: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__is_sorted_until(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__is_sorted_until(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline pair 8036: minmax(const _Tp& __a, const _Tp& __b) 8036: { 8036: 8036: 8036: 8036: return __b < __a ? pair(__b, __a) 8036: : pair(__a, __b); 8036: } 8036: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline pair 8036: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 8036: { 8036: return __comp(__b, __a) ? pair(__b, __a) 8036: : pair(__a, __b); 8036: } 8036: 8036: template 8036: 8036: pair<_ForwardIterator, _ForwardIterator> 8036: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: _ForwardIterator __next = __first; 8036: if (__first == __last 8036: || ++__next == __last) 8036: return std::make_pair(__first, __first); 8036: 8036: _ForwardIterator __min{}, __max{}; 8036: if (__comp(__next, __first)) 8036: { 8036: __min = __next; 8036: __max = __first; 8036: } 8036: else 8036: { 8036: __min = __first; 8036: __max = __next; 8036: } 8036: 8036: __first = __next; 8036: ++__first; 8036: 8036: while (__first != __last) 8036: { 8036: __next = __first; 8036: if (++__next == __last) 8036: { 8036: if (__comp(__first, __min)) 8036: __min = __first; 8036: else if (!__comp(__first, __max)) 8036: __max = __first; 8036: break; 8036: } 8036: 8036: if (__comp(__next, __first)) 8036: { 8036: if (__comp(__next, __min)) 8036: __min = __next; 8036: if (!__comp(__first, __max)) 8036: __max = __first; 8036: } 8036: else 8036: { 8036: if (__comp(__first, __min)) 8036: __min = __first; 8036: if (!__comp(__next, __max)) 8036: __max = __next; 8036: } 8036: 8036: __first = __next; 8036: ++__first; 8036: } 8036: 8036: return std::make_pair(__min, __max); 8036: } 8036: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline pair<_ForwardIterator, _ForwardIterator> 8036: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__minmax_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline pair<_ForwardIterator, _ForwardIterator> 8036: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__minmax_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: 8036: template 8036: 8036: inline _Tp 8036: min(initializer_list<_Tp> __l) 8036: { return *std::min_element(__l.begin(), __l.end()); } 8036: 8036: template 8036: 8036: inline _Tp 8036: min(initializer_list<_Tp> __l, _Compare __comp) 8036: { return *std::min_element(__l.begin(), __l.end(), __comp); } 8036: 8036: template 8036: 8036: inline _Tp 8036: max(initializer_list<_Tp> __l) 8036: { return *std::max_element(__l.begin(), __l.end()); } 8036: 8036: template 8036: 8036: inline _Tp 8036: max(initializer_list<_Tp> __l, _Compare __comp) 8036: { return *std::max_element(__l.begin(), __l.end(), __comp); } 8036: 8036: template 8036: 8036: inline pair<_Tp, _Tp> 8036: minmax(initializer_list<_Tp> __l) 8036: { 8036: pair __p = 8036: std::minmax_element(__l.begin(), __l.end()); 8036: return std::make_pair(*__p.first, *__p.second); 8036: } 8036: 8036: template 8036: 8036: inline pair<_Tp, _Tp> 8036: minmax(initializer_list<_Tp> __l, _Compare __comp) 8036: { 8036: pair __p = 8036: std::minmax_element(__l.begin(), __l.end(), __comp); 8036: return std::make_pair(*__p.first, *__p.second); 8036: } 8036: 8036: template 8036: bool 8036: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8036: { 8036: 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2) 8036: if (!__pred(__first1, __first2)) 8036: break; 8036: 8036: if (__first1 == __last1) 8036: return true; 8036: 8036: 8036: 8036: _ForwardIterator2 __last2 = __first2; 8036: std::advance(__last2, std::distance(__first1, __last1)); 8036: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 8036: { 8036: if (__scan != std::__find_if(__first1, __scan, 8036: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 8036: continue; 8036: 8036: auto __matches 8036: = std::__count_if(__first2, __last2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 8036: if (0 == __matches || 8036: std::__count_if(__scan, __last1, 8036: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 8036: != __matches) 8036: return false; 8036: } 8036: return true; 8036: } 8036: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__is_permutation(__first1, __last1, __first2, 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline bool 8036: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__is_permutation(__first1, __last1, __first2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 8036: } 8036: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: pair<_IntType, _IntType> 8036: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 8036: _UniformRandomBitGenerator&& __g) 8036: { 8036: _IntType __x 8036: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 8036: return std::make_pair(__x / __b1, __x % __b1); 8036: } 8036: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: void 8036: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _UniformRandomNumberGenerator&& __g) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return; 8036: 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 8036: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 8036: typedef typename __distr_type::param_type __p_type; 8036: 8036: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 8036: _Gen; 8036: typedef typename common_type::type 8036: __uc_type; 8036: 8036: const __uc_type __urngrange = __g.max() - __g.min(); 8036: const __uc_type __urange = __uc_type(__last - __first); 8036: 8036: if (__urngrange / __urange >= __urange) 8036: 8036: { 8036: _RandomAccessIterator __i = __first + 1; 8036: 8036: 8036: 8036: 8036: 8036: if ((__urange % 2) == 0) 8036: { 8036: __distr_type __d{0, 1}; 8036: std::iter_swap(__i++, __first + __d(__g)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: while (__i != __last) 8036: { 8036: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 8036: 8036: const pair<__uc_type, __uc_type> __pospos = 8036: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 8036: 8036: std::iter_swap(__i++, __first + __pospos.first); 8036: std::iter_swap(__i++, __first + __pospos.second); 8036: } 8036: 8036: return; 8036: } 8036: 8036: __distr_type __d; 8036: 8036: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8036: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _Function 8036: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 8036: { 8036: 8036: 8036: ; 8036: for (; __first != __last; ++__first) 8036: __f(*__first); 8036: return __f; 8036: } 8036: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _InputIterator 8036: find(_InputIterator __first, _InputIterator __last, 8036: const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: return std::__find_if(__first, __last, 8036: __gnu_cxx::__ops::__iter_equals_val(__val)); 8036: } 8036: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _InputIterator 8036: find_if(_InputIterator __first, _InputIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__find_if(__first, __last, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _InputIterator 8036: find_first_of(_InputIterator __first1, _InputIterator __last1, 8036: _ForwardIterator __first2, _ForwardIterator __last2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1) 8036: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8036: if (*__first1 == *__iter) 8036: return __first1; 8036: return __last1; 8036: } 8036: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _InputIterator 8036: find_first_of(_InputIterator __first1, _InputIterator __last1, 8036: _ForwardIterator __first2, _ForwardIterator __last2, 8036: _BinaryPredicate __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1) 8036: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8036: if (__comp(*__first1, *__iter)) 8036: return __first1; 8036: return __last1; 8036: } 8036: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__adjacent_find(__first, __last, 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__adjacent_find(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8036: } 8036: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline typename iterator_traits<_InputIterator>::difference_type 8036: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__count_if(__first, __last, 8036: __gnu_cxx::__ops::__iter_equals_val(__value)); 8036: } 8036: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline typename iterator_traits<_InputIterator>::difference_type 8036: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__count_if(__first, __last, 8036: __gnu_cxx::__ops::__pred_iter(__pred)); 8036: } 8036: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator1 8036: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__search(__first1, __last1, __first2, __last2, 8036: __gnu_cxx::__ops::__iter_equal_to_iter()); 8036: } 8036: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator1 8036: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8036: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8036: _BinaryPredicate __predicate) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__search(__first1, __last1, __first2, __last2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 8036: } 8036: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: search_n(_ForwardIterator __first, _ForwardIterator __last, 8036: _Integer __count, const _Tp& __val) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__search_n(__first, __last, __count, 8036: __gnu_cxx::__ops::__iter_equals_val(__val)); 8036: } 8036: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: search_n(_ForwardIterator __first, _ForwardIterator __last, 8036: _Integer __count, const _Tp& __val, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__search_n(__first, __last, __count, 8036: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 8036: } 8036: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _OutputIterator 8036: transform(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _UnaryOperation __unary_op) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first, (void)++__result) 8036: *__result = __unary_op(*__first); 8036: return __result; 8036: } 8036: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _OutputIterator 8036: transform(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _OutputIterator __result, 8036: _BinaryOperation __binary_op) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 8036: *__result = __binary_op(*__first1, *__first2); 8036: return __result; 8036: } 8036: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: void 8036: replace(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __old_value, const _Tp& __new_value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: if (*__first == __old_value) 8036: *__first = __new_value; 8036: } 8036: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: void 8036: replace_if(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred, const _Tp& __new_value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: if (__pred(*__first)) 8036: *__first = __new_value; 8036: } 8036: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: void 8036: generate(_ForwardIterator __first, _ForwardIterator __last, 8036: _Generator __gen) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: *__first = __gen(); 8036: } 8036: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: _OutputIterator 8036: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: for (__decltype(__n + 0) __niter = __n; 8036: __niter > 0; --__niter, (void) ++__first) 8036: *__first = __gen(); 8036: return __first; 8036: } 8036: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: unique_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: return std::__unique_copy(__first, __last, __result, 8036: __gnu_cxx::__ops::__iter_equal_to_iter(), 8036: std::__iterator_category(__first), 8036: std::__iterator_category(__result)); 8036: } 8036: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: unique_copy(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, 8036: _BinaryPredicate __binary_pred) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: return std::__unique_copy(__first, __last, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 8036: std::__iterator_category(__first), 8036: std::__iterator_category(__result)); 8036: } 8036: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first != __last) 8036: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8036: { 8036: 8036: _RandomAccessIterator __j = __first 8036: + std::rand() % ((__i - __first) + 1); 8036: if (__i != __j) 8036: std::iter_swap(__i, __j); 8036: } 8036: } 8036: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: void 8036: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: 8036: _RandomNumberGenerator&& __rand) 8036: 8036: 8036: 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return; 8036: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8036: { 8036: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 8036: if (__i != __j) 8036: std::iter_swap(__i, __j); 8036: } 8036: } 8036: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _ForwardIterator 8036: partition(_ForwardIterator __first, _ForwardIterator __last, 8036: _Predicate __pred) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: return std::__partition(__first, __last, __pred, 8036: std::__iterator_category(__first)); 8036: } 8036: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: partial_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __middle, 8036: _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: std::__partial_sort(__first, __middle, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: partial_sort(_RandomAccessIterator __first, 8036: _RandomAccessIterator __middle, 8036: _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: std::__partial_sort(__first, __middle, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8036: _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: if (__first == __last || __nth == __last) 8036: return; 8036: 8036: std::__introselect(__first, __nth, __last, 8036: std::__lg(__last - __first) * 2, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8036: _RandomAccessIterator __last, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: if (__first == __last || __nth == __last) 8036: return; 8036: 8036: std::__introselect(__first, __nth, __last, 8036: std::__lg(__last - __first) * 2, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: { 8036: if (__comp(__first2, __first1)) 8036: { 8036: *__result = *__first2; 8036: ++__first2; 8036: } 8036: else 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: } 8036: ++__result; 8036: } 8036: return std::copy(__first2, __last2, 8036: std::copy(__first1, __last1, __result)); 8036: } 8036: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__merge(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__merge(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: inline void 8036: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8036: _ValueType; 8036: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8036: _DistanceType; 8036: 8036: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 8036: _TmpBuf __buf(__first, __last); 8036: 8036: if (__buf.begin() == 0) 8036: std::__inplace_stable_sort(__first, __last, __comp); 8036: else 8036: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 8036: _DistanceType(__buf.size()), __comp); 8036: } 8036: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: std::__stable_sort(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline void 8036: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: std::__stable_sort(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: { 8036: if (__comp(__first1, __first2)) 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: } 8036: else if (__comp(__first2, __first1)) 8036: { 8036: *__result = *__first2; 8036: ++__first2; 8036: } 8036: else 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: ++__first2; 8036: } 8036: ++__result; 8036: } 8036: return std::copy(__first2, __last2, 8036: std::copy(__first1, __last1, __result)); 8036: } 8036: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_union(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_union(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (__comp(__first1, __first2)) 8036: ++__first1; 8036: else if (__comp(__first2, __first1)) 8036: ++__first2; 8036: else 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: ++__first2; 8036: ++__result; 8036: } 8036: return __result; 8036: } 8036: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_intersection(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_intersection(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (__comp(__first1, __first2)) 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: ++__result; 8036: } 8036: else if (__comp(__first2, __first1)) 8036: ++__first2; 8036: else 8036: { 8036: ++__first1; 8036: ++__first2; 8036: } 8036: return std::copy(__first1, __last1, __result); 8036: } 8036: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_difference(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_difference(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: _OutputIterator 8036: __set_symmetric_difference(_InputIterator1 __first1, 8036: _InputIterator1 __last1, 8036: _InputIterator2 __first2, 8036: _InputIterator2 __last2, 8036: _OutputIterator __result, 8036: _Compare __comp) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (__comp(__first1, __first2)) 8036: { 8036: *__result = *__first1; 8036: ++__first1; 8036: ++__result; 8036: } 8036: else if (__comp(__first2, __first1)) 8036: { 8036: *__result = *__first2; 8036: ++__first2; 8036: ++__result; 8036: } 8036: else 8036: { 8036: ++__first1; 8036: ++__first2; 8036: } 8036: return std::copy(__first2, __last2, 8036: std::copy(__first1, __last1, __result)); 8036: } 8036: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_symmetric_difference(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: inline _OutputIterator 8036: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _InputIterator2 __last2, 8036: _OutputIterator __result, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: ; 8036: ; 8036: 8036: return std::__set_symmetric_difference(__first1, __last1, 8036: __first2, __last2, __result, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: 8036: _ForwardIterator 8036: __min_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: if (__first == __last) 8036: return __first; 8036: _ForwardIterator __result = __first; 8036: while (++__first != __last) 8036: if (__comp(__first, __result)) 8036: __result = __first; 8036: return __result; 8036: } 8036: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: _ForwardIterator 8036: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__min_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline _ForwardIterator 8036: min_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__min_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: 8036: template 8036: 8036: _ForwardIterator 8036: __max_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: if (__first == __last) return __first; 8036: _ForwardIterator __result = __first; 8036: while (++__first != __last) 8036: if (__comp(__result, __first)) 8036: __result = __first; 8036: return __result; 8036: } 8036: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline _ForwardIterator 8036: max_element(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__max_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_less_iter()); 8036: } 8036: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: template 8036: 8036: inline _ForwardIterator 8036: max_element(_ForwardIterator __first, _ForwardIterator __last, 8036: _Compare __comp) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: ; 8036: 8036: return std::__max_element(__first, __last, 8036: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8036: } 8036: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 8036: 8036: 8036: } 8036: # 63 "/usr/include/c++/8/algorithm" 2 3 8036: # 110 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 191 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef signed char qint8; 8036: typedef unsigned char quint8; 8036: typedef short qint16; 8036: typedef unsigned short quint16; 8036: typedef int qint32; 8036: typedef unsigned int quint32; 8036: # 213 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: typedef long long qint64; 8036: typedef unsigned long long quint64; 8036: 8036: 8036: typedef qint64 qlonglong; 8036: typedef quint64 qulonglong; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef unsigned char uchar; 8036: typedef unsigned short ushort; 8036: typedef unsigned int uint; 8036: typedef unsigned long ulong; 8036: 8036: 8036: 8036: 8036: 8036: typedef double qreal; 8036: # 356 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: extern "C" 8036: 8036: __attribute__((visibility("default"))) const char *qVersion(void) noexcept; 8036: # 384 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: namespace QtPrivate { 8036: template 8036: struct AlignOfHelper 8036: { 8036: char c; 8036: T type; 8036: 8036: AlignOfHelper(); 8036: ~AlignOfHelper(); 8036: }; 8036: 8036: template 8036: struct AlignOf_Default 8036: { 8036: enum { Value = sizeof(AlignOfHelper) - sizeof(T) }; 8036: }; 8036: 8036: template struct AlignOf : AlignOf_Default { }; 8036: template struct AlignOf : AlignOf {}; 8036: template struct AlignOf : AlignOf {}; 8036: 8036: 8036: template struct AlignOf : AlignOf {}; 8036: # 424 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: } 8036: # 440 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: template struct QIntegerForSize; 8036: template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; 8036: template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; 8036: template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; 8036: template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; 8036: 8036: template <> struct QIntegerForSize<16> { __extension__ typedef unsigned __int128 Unsigned; __extension__ typedef __int128 Signed; }; 8036: 8036: template struct QIntegerForSizeof: QIntegerForSize { }; 8036: typedef QIntegerForSize<8>::Signed qregisterint; 8036: typedef QIntegerForSize<8>::Unsigned qregisteruint; 8036: typedef QIntegerForSizeof::Unsigned quintptr; 8036: typedef QIntegerForSizeof::Signed qptrdiff; 8036: typedef qptrdiff qintptr; 8036: # 516 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: typedef int QNoImplicitBoolCast; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } 8036: 8036: constexpr inline int qRound(double d) 8036: { return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); } 8036: constexpr inline int qRound(float d) 8036: { return d >= 0.0f ? int(d + 0.5f) : int(d - float(int(d-1)) + 0.5f) + int(d-1); } 8036: 8036: constexpr inline qint64 qRound64(double d) 8036: { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - double(qint64(d-1)) + 0.5) + qint64(d-1); } 8036: constexpr inline qint64 qRound64(float d) 8036: { return d >= 0.0f ? qint64(d + 0.5f) : qint64(d - float(qint64(d-1)) + 0.5f) + qint64(d-1); } 8036: 8036: template 8036: constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } 8036: template 8036: constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } 8036: template 8036: constexpr inline const T &qBound(const T &min, const T &val, const T &max) 8036: { return qMax(min, qMin(max, val)); } 8036: # 621 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: class QDataStream; 8036: 8036: inline void qt_noop(void) {} 8036: # 663 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: __attribute__((visibility("default"))) bool qSharedBuild() noexcept; 8036: # 702 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: class QString; 8036: __attribute__((visibility("default"))) QString qt_error_string(int errorCode = -1); 8036: 8036: 8036: __attribute__((__noreturn__)) 8036: 8036: __attribute__((visibility("default"))) void qt_assert(const char *assertion, const char *file, int line) noexcept; 8036: # 723 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: __attribute__((__noreturn__)) 8036: 8036: __attribute__((visibility("default"))) void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept; 8036: # 756 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qt_check_pointer(const char *, int) noexcept; 8036: __attribute__((visibility("default"))) void qBadAlloc(); 8036: # 769 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: template 8036: inline T *q_check_ptr(T *p) { qt_noop(); return p; } 8036: 8036: typedef void (*QFunctionPointer)(); 8036: 8036: 8036: 8036: 8036: 8036: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(double p1, double p2) 8036: { 8036: return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2))); 8036: } 8036: 8036: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(float p1, float p2) 8036: { 8036: return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); 8036: } 8036: 8036: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(double d) 8036: { 8036: return qAbs(d) <= 0.000000000001; 8036: } 8036: 8036: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(float f) 8036: { 8036: return qAbs(f) <= 0.00001f; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(double d) 8036: { 8036: union U { 8036: double d; 8036: quint64 u; 8036: }; 8036: U val; 8036: val.d = d; 8036: return (val.u & static_cast(0x7fffffffffffffffULL)) == 0; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(float f) 8036: { 8036: union U { 8036: float f; 8036: quint32 u; 8036: }; 8036: U val; 8036: val.f = f; 8036: return (val.u & 0x7fffffff) == 0; 8036: } 8036: # 850 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: namespace QtPrivate 8036: { 8036: namespace SwapExceptionTester { 8036: using std::swap; 8036: template 8036: void checkSwap(T &t) 8036: noexcept(noexcept(swap(t, t))); 8036: 8036: } 8036: } 8036: 8036: template 8036: inline void qSwap(T &value1, T &value2) 8036: noexcept(noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))) 8036: { 8036: using std::swap; 8036: swap(value1, value2); 8036: } 8036: # 876 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: __attribute__((visibility("default"))) void *qMallocAligned(size_t size, size_t alignment) __attribute__((alloc_size(1))); 8036: __attribute__((visibility("default"))) void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) __attribute__((alloc_size(2))); 8036: __attribute__((visibility("default"))) void qFreeAligned(void *ptr); 8036: # 918 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: namespace QtPrivate { 8036: template struct QAddConst { typedef const T Type; }; 8036: } 8036: 8036: 8036: template 8036: constexpr typename QtPrivate::QAddConst::Type &qAsConst(T &t) noexcept { return t; } 8036: 8036: template 8036: void qAsConst(const T &&) = delete; 8036: 8036: 8036: 8036: namespace QtPrivate { 8036: 8036: template 8036: class QForeachContainer { 8036: QForeachContainer(const QForeachContainer &) = delete; QForeachContainer &operator=(const QForeachContainer &) = delete; 8036: public: 8036: QForeachContainer(const T &t) : c(t), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8036: QForeachContainer(T &&t) : c(std::move(t)), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8036: 8036: QForeachContainer(QForeachContainer &&other) 8036: : c(std::move(other.c)), 8036: i(qAsConst(c).begin()), 8036: e(qAsConst(c).end()), 8036: control(std::move(other.control)) 8036: { 8036: } 8036: 8036: QForeachContainer &operator=(QForeachContainer &&other) 8036: { 8036: c = std::move(other.c); 8036: i = qAsConst(c).begin(); 8036: e = qAsConst(c).end(); 8036: control = std::move(other.control); 8036: return *this; 8036: } 8036: 8036: T c; 8036: typename T::const_iterator i, e; 8036: int control = 1; 8036: }; 8036: 8036: template 8036: QForeachContainer::type> qMakeForeachContainer(T &&t) 8036: { 8036: return QForeachContainer::type>(std::forward(t)); 8036: } 8036: 8036: } 8036: # 998 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: template static inline T *qGetPtrHelper(T *ptr) { return ptr; } 8036: template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } 8036: # 1031 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: __attribute__((visibility("default"))) QString qtTrId(const char *id, int n = -1); 8036: # 1063 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: template 8036: struct QNonConstOverload 8036: { 8036: template 8036: constexpr auto operator()(R (T::*ptr)(Args...)) const noexcept -> decltype(ptr) 8036: { return ptr; } 8036: 8036: template 8036: static constexpr auto of(R (T::*ptr)(Args...)) noexcept -> decltype(ptr) 8036: { return ptr; } 8036: }; 8036: 8036: template 8036: struct QConstOverload 8036: { 8036: template 8036: constexpr auto operator()(R (T::*ptr)(Args...) const) const noexcept -> decltype(ptr) 8036: { return ptr; } 8036: 8036: template 8036: static constexpr auto of(R (T::*ptr)(Args...) const) noexcept -> decltype(ptr) 8036: { return ptr; } 8036: }; 8036: 8036: template 8036: struct QOverload : QConstOverload, QNonConstOverload 8036: { 8036: using QConstOverload::of; 8036: using QConstOverload::operator(); 8036: using QNonConstOverload::of; 8036: using QNonConstOverload::operator(); 8036: 8036: template 8036: constexpr auto operator()(R (*ptr)(Args...)) const noexcept -> decltype(ptr) 8036: { return ptr; } 8036: 8036: template 8036: static constexpr auto of(R (*ptr)(Args...)) noexcept -> decltype(ptr) 8036: { return ptr; } 8036: }; 8036: # 1113 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: class QByteArray; 8036: __attribute__((visibility("default"))) QByteArray qgetenv(const char *varName); 8036: __attribute__((visibility("default"))) bool qputenv(const char *varName, const QByteArray& value); 8036: __attribute__((visibility("default"))) bool qunsetenv(const char *varName); 8036: 8036: __attribute__((visibility("default"))) bool qEnvironmentVariableIsEmpty(const char *varName) noexcept; 8036: __attribute__((visibility("default"))) bool qEnvironmentVariableIsSet(const char *varName) noexcept; 8036: __attribute__((visibility("default"))) int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept; 8036: 8036: inline int qIntCast(double f) { return int(f); } 8036: inline int qIntCast(float f) { return int(f); } 8036: 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) void qsrand(uint seed); 8036: __attribute__((visibility("default"))) int qrand(); 8036: # 1139 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8036: namespace QtPrivate { 8036: 8036: template struct QEnableIf; 8036: template struct QEnableIf { typedef T Type; }; 8036: 8036: template struct QConditional { typedef T Type; }; 8036: template struct QConditional { typedef F Type; }; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8036: # 41 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8036: # 42 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 56 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template 8036: class QTypeInfo 8036: { 8036: public: 8036: enum { 8036: isSpecialized = std::is_enum::value, 8036: isPointer = false, 8036: isIntegral = std::is_integral::value, 8036: isComplex = !isIntegral && !std::is_enum::value, 8036: isStatic = true, 8036: isRelocatable = std::is_enum::value, 8036: isLarge = (sizeof(T)>sizeof(void*)), 8036: isDummy = false, 8036: sizeOf = sizeof(T) 8036: }; 8036: }; 8036: 8036: template<> 8036: class QTypeInfo 8036: { 8036: public: 8036: enum { 8036: isSpecialized = true, 8036: isPointer = false, 8036: isIntegral = false, 8036: isComplex = false, 8036: isStatic = false, 8036: isRelocatable = false, 8036: isLarge = false, 8036: isDummy = false, 8036: sizeOf = 0 8036: }; 8036: }; 8036: 8036: template 8036: class QTypeInfo 8036: { 8036: public: 8036: enum { 8036: isSpecialized = true, 8036: isPointer = true, 8036: isIntegral = false, 8036: isComplex = false, 8036: isStatic = false, 8036: isRelocatable = true, 8036: isLarge = false, 8036: isDummy = false, 8036: sizeOf = sizeof(T*) 8036: }; 8036: }; 8036: # 122 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template 8036: struct QTypeInfoQuery : public QTypeInfo 8036: { 8036: enum { isRelocatable = !QTypeInfo::isStatic }; 8036: }; 8036: 8036: 8036: template 8036: struct QTypeInfoQuery::isRelocatable || true>::type> : public QTypeInfo 8036: {}; 8036: # 153 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template 8036: class QTypeInfoMerger 8036: { 8036: public: 8036: enum { 8036: isSpecialized = true, 8036: isComplex = QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex 8036: || QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex, 8036: isStatic = QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic 8036: || QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic, 8036: isRelocatable = QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable 8036: && QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable, 8036: isLarge = sizeof(T) > sizeof(void*), 8036: isPointer = false, 8036: isIntegral = false, 8036: isDummy = false, 8036: sizeOf = sizeof(T) 8036: }; 8036: }; 8036: # 192 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template class QList; template class QTypeInfo< QList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QList) }; }; 8036: template class QVector; template class QTypeInfo< QVector > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QVector) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QVector) }; }; 8036: template class QQueue; template class QTypeInfo< QQueue > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QQueue) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QQueue) }; }; 8036: template class QStack; template class QTypeInfo< QStack > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QStack) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QStack) }; }; 8036: template class QLinkedList; template class QTypeInfo< QLinkedList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QLinkedList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QLinkedList) }; }; 8036: template class QSet; template class QTypeInfo< QSet > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QSet) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QSet) }; }; 8036: # 221 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template class QMap; template class QTypeInfo< QMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMap) }; }; 8036: template class QMultiMap; template class QTypeInfo< QMultiMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiMap) }; }; 8036: template class QHash; template class QTypeInfo< QHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QHash) }; }; 8036: template class QMultiHash; template class QTypeInfo< QMultiHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiHash) }; }; 8036: # 236 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: enum { 8036: Q_COMPLEX_TYPE = 0, 8036: Q_PRIMITIVE_TYPE = 0x1, 8036: Q_STATIC_TYPE = 0, 8036: Q_MOVABLE_TYPE = 0x2, 8036: Q_DUMMY_TYPE = 0x4, 8036: Q_RELOCATABLE_TYPE = 0x8 8036: }; 8036: # 268 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template class QFlags; 8036: template 8036: class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlags)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlags >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlags) }; static inline const char *name() { return "QFlags"; } }; 8036: # 300 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(bool)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< bool >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(bool) }; static inline const char *name() { return "bool"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char) }; static inline const char *name() { return "char"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(signed char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< signed char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(signed char) }; static inline const char *name() { return "signed char"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uchar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uchar >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uchar) }; static inline const char *name() { return "uchar"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(short)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< short >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(short) }; static inline const char *name() { return "short"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ushort)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ushort >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ushort) }; static inline const char *name() { return "ushort"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(int)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< int >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(int) }; static inline const char *name() { return "int"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uint)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uint >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uint) }; static inline const char *name() { return "uint"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long) }; static inline const char *name() { return "long"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ulong)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ulong >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ulong) }; static inline const char *name() { return "ulong"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(qint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< qint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(qint64) }; static inline const char *name() { return "qint64"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(quint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< quint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(quint64) }; static inline const char *name() { return "quint64"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(float)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< float >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(float) }; static inline const char *name() { return "float"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(double) }; static inline const char *name() { return "double"; } }; 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long double) }; static inline const char *name() { return "long double"; } }; 8036: # 331 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char16_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char16_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char16_t) }; static inline const char *name() { return "char16_t"; } }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char32_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char32_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char32_t) }; static inline const char *name() { return "char32_t"; } }; 8036: 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(wchar_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< wchar_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(wchar_t) }; static inline const char *name() { return "wchar_t"; } }; 8036: 8036: 8036: 8036: 8036: # 1153 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: 8036: # 69 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: class QString; 8036: class __attribute__((visibility("default"))) QSysInfo { 8036: public: 8036: enum Sizes { 8036: WordSize = (sizeof(void *)<<3) 8036: }; 8036: # 84 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: enum Endian { 8036: BigEndian, 8036: LittleEndian 8036: 8036: 8036: 8036: 8036: 8036: 8036: , ByteOrder = LittleEndian 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: enum WinVersion { 8036: WV_None = 0x0000, 8036: 8036: WV_32s = 0x0001, 8036: WV_95 = 0x0002, 8036: WV_98 = 0x0003, 8036: WV_Me = 0x0004, 8036: WV_DOS_based= 0x000f, 8036: 8036: 8036: WV_NT = 0x0010, 8036: WV_2000 = 0x0020, 8036: WV_XP = 0x0030, 8036: WV_2003 = 0x0040, 8036: WV_VISTA = 0x0080, 8036: WV_WINDOWS7 = 0x0090, 8036: WV_WINDOWS8 = 0x00a0, 8036: WV_WINDOWS8_1 = 0x00b0, 8036: WV_WINDOWS10 = 0x00c0, 8036: WV_NT_based = 0x00f0, 8036: 8036: 8036: WV_4_0 = WV_NT, 8036: WV_5_0 = WV_2000, 8036: WV_5_1 = WV_XP, 8036: WV_5_2 = WV_2003, 8036: WV_6_0 = WV_VISTA, 8036: WV_6_1 = WV_WINDOWS7, 8036: WV_6_2 = WV_WINDOWS8, 8036: WV_6_3 = WV_WINDOWS8_1, 8036: WV_10_0 = WV_WINDOWS10, 8036: 8036: WV_CE = 0x0100, 8036: WV_CENET = 0x0200, 8036: WV_CE_5 = 0x0300, 8036: WV_CE_6 = 0x0400, 8036: WV_CE_based = 0x0f00 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: enum MacVersion { 8036: MV_None = 0xffff, 8036: MV_Unknown = 0x0000, 8036: 8036: 8036: MV_9 = (9 == 10 ? 0 + 2 : (9 == 9 ? 1 : 0)), 8036: MV_10_0 = (10 == 10 ? 0 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_1 = (10 == 10 ? 1 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_2 = (10 == 10 ? 2 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_3 = (10 == 10 ? 3 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_4 = (10 == 10 ? 4 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_5 = (10 == 10 ? 5 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_6 = (10 == 10 ? 6 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_7 = (10 == 10 ? 7 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_8 = (10 == 10 ? 8 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_9 = (10 == 10 ? 9 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_10 = (10 == 10 ? 10 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_11 = (10 == 10 ? 11 + 2 : (10 == 9 ? 1 : 0)), 8036: MV_10_12 = (10 == 10 ? 12 + 2 : (10 == 9 ? 1 : 0)), 8036: 8036: 8036: MV_CHEETAH = MV_10_0, 8036: MV_PUMA = MV_10_1, 8036: MV_JAGUAR = MV_10_2, 8036: MV_PANTHER = MV_10_3, 8036: MV_TIGER = MV_10_4, 8036: MV_LEOPARD = MV_10_5, 8036: MV_SNOWLEOPARD = MV_10_6, 8036: MV_LION = MV_10_7, 8036: MV_MOUNTAINLION = MV_10_8, 8036: MV_MAVERICKS = MV_10_9, 8036: MV_YOSEMITE = MV_10_10, 8036: MV_ELCAPITAN = MV_10_11, 8036: MV_SIERRA = MV_10_12, 8036: 8036: 8036: MV_IOS = 1 << 8, 8036: MV_IOS_4_3 = (QSysInfo::MV_IOS | 4 << 4 | 3), 8036: MV_IOS_5_0 = (QSysInfo::MV_IOS | 5 << 4 | 0), 8036: MV_IOS_5_1 = (QSysInfo::MV_IOS | 5 << 4 | 1), 8036: MV_IOS_6_0 = (QSysInfo::MV_IOS | 6 << 4 | 0), 8036: MV_IOS_6_1 = (QSysInfo::MV_IOS | 6 << 4 | 1), 8036: MV_IOS_7_0 = (QSysInfo::MV_IOS | 7 << 4 | 0), 8036: MV_IOS_7_1 = (QSysInfo::MV_IOS | 7 << 4 | 1), 8036: MV_IOS_8_0 = (QSysInfo::MV_IOS | 8 << 4 | 0), 8036: MV_IOS_8_1 = (QSysInfo::MV_IOS | 8 << 4 | 1), 8036: MV_IOS_8_2 = (QSysInfo::MV_IOS | 8 << 4 | 2), 8036: MV_IOS_8_3 = (QSysInfo::MV_IOS | 8 << 4 | 3), 8036: MV_IOS_8_4 = (QSysInfo::MV_IOS | 8 << 4 | 4), 8036: MV_IOS_9_0 = (QSysInfo::MV_IOS | 9 << 4 | 0), 8036: MV_IOS_9_1 = (QSysInfo::MV_IOS | 9 << 4 | 1), 8036: MV_IOS_9_2 = (QSysInfo::MV_IOS | 9 << 4 | 2), 8036: MV_IOS_9_3 = (QSysInfo::MV_IOS | 9 << 4 | 3), 8036: MV_IOS_10_0 = (QSysInfo::MV_IOS | 10 << 4 | 0), 8036: 8036: 8036: MV_TVOS = 1 << 9, 8036: MV_TVOS_9_0 = (QSysInfo::MV_TVOS | 9 << 4 | 0), 8036: MV_TVOS_9_1 = (QSysInfo::MV_TVOS | 9 << 4 | 1), 8036: MV_TVOS_9_2 = (QSysInfo::MV_TVOS | 9 << 4 | 2), 8036: MV_TVOS_10_0 = (QSysInfo::MV_TVOS | 10 << 4 | 0), 8036: 8036: 8036: MV_WATCHOS = 1 << 10, 8036: MV_WATCHOS_2_0 = (QSysInfo::MV_WATCHOS | 2 << 4 | 0), 8036: MV_WATCHOS_2_1 = (QSysInfo::MV_WATCHOS | 2 << 4 | 1), 8036: MV_WATCHOS_2_2 = (QSysInfo::MV_WATCHOS | 2 << 4 | 2), 8036: MV_WATCHOS_3_0 = (QSysInfo::MV_WATCHOS | 3 << 4 | 0) 8036: }; 8036: 8036: 8036: # 213 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 213 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: 8036: 8036: # 214 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8036: # 214 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: static const WinVersion WindowsVersion = WV_None; 8036: static WinVersion windowsVersion() { return WV_None; } 8036: 8036: 8036: 8036: 8036: 8036: static const MacVersion MacintoshVersion = MV_None; 8036: static MacVersion macVersion() { return MV_None; } 8036: 8036: 8036: # 229 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 229 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8036: 8036: 8036: 8036: static QString buildCpuArchitecture(); 8036: static QString currentCpuArchitecture(); 8036: static QString buildAbi(); 8036: 8036: static QString kernelType(); 8036: static QString kernelVersion(); 8036: static QString productType(); 8036: static QString productVersion(); 8036: static QString prettyProductName(); 8036: 8036: static QString machineHostName(); 8036: }; 8036: 8036: 8036: 8036: 8036: # 1154 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlogging.h" 1 3 4 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class QDebug; 8036: class QNoDebug; 8036: 8036: enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg }; 8036: 8036: class QMessageLogContext 8036: { 8036: QMessageLogContext(const QMessageLogContext &) = delete; QMessageLogContext &operator=(const QMessageLogContext &) = delete; 8036: public: 8036: constexpr QMessageLogContext() 8036: : version(2), line(0), file(nullptr), function(nullptr), category(nullptr) {} 8036: constexpr QMessageLogContext(const char *fileName, int lineNumber, const char *functionName, const char *categoryName) 8036: : version(2), line(lineNumber), file(fileName), function(functionName), category(categoryName) {} 8036: 8036: void copy(const QMessageLogContext &logContext); 8036: 8036: int version; 8036: int line; 8036: const char *file; 8036: const char *function; 8036: const char *category; 8036: 8036: private: 8036: friend class QMessageLogger; 8036: friend class QDebug; 8036: }; 8036: 8036: class QLoggingCategory; 8036: 8036: class __attribute__((visibility("default"))) QMessageLogger 8036: { 8036: QMessageLogger(const QMessageLogger &) = delete; QMessageLogger &operator=(const QMessageLogger &) = delete; 8036: public: 8036: constexpr QMessageLogger() : context() {} 8036: constexpr QMessageLogger(const char *file, int line, const char *function) 8036: : context(file, line, function, "default") {} 8036: constexpr QMessageLogger(const char *file, int line, const char *function, const char *category) 8036: : context(file, line, function, category) {} 8036: 8036: void debug(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8036: void noDebug(const char *, ...) const __attribute__((format(printf, (2), (3)))) 8036: {} 8036: void info(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8036: void warning(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8036: void critical(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8036: 8036: typedef const QLoggingCategory &(*CategoryFunction)(); 8036: 8036: void debug(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void debug(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void info(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void info(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void warning(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void warning(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void critical(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: void critical(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8036: 8036: 8036: __attribute__((__noreturn__)) 8036: 8036: void fatal(const char *msg, ...) const noexcept __attribute__((format(printf, (2), (3)))); 8036: 8036: 8036: QDebug debug() const; 8036: QDebug debug(const QLoggingCategory &cat) const; 8036: QDebug debug(CategoryFunction catFunc) const; 8036: QDebug info() const; 8036: QDebug info(const QLoggingCategory &cat) const; 8036: QDebug info(CategoryFunction catFunc) const; 8036: QDebug warning() const; 8036: QDebug warning(const QLoggingCategory &cat) const; 8036: QDebug warning(CategoryFunction catFunc) const; 8036: QDebug critical() const; 8036: QDebug critical(const QLoggingCategory &cat) const; 8036: QDebug critical(CategoryFunction catFunc) const; 8036: 8036: QNoDebug noDebug() const noexcept; 8036: 8036: 8036: private: 8036: QMessageLogContext context; 8036: }; 8036: # 179 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8036: __attribute__((visibility("default"))) void qt_message_output(QtMsgType, const QMessageLogContext &context, 8036: const QString &message); 8036: 8036: __attribute__((visibility("default"))) void qErrnoWarning(int code, const char *msg, ...); 8036: __attribute__((visibility("default"))) void qErrnoWarning(const char *msg, ...); 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); 8036: __attribute__((visibility("default"))) QtMessageHandler qInstallMessageHandler(QtMessageHandler); 8036: 8036: __attribute__((visibility("default"))) void qSetMessagePattern(const QString &messagePattern); 8036: __attribute__((visibility("default"))) QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, 8036: const QString &buf); 8036: 8036: 8036: # 1155 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qflags.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qflags.h" 3 4 8036: 8036: 8036: class QDataStream; 8036: 8036: class QFlag 8036: { 8036: int i; 8036: public: 8036: constexpr inline QFlag(int ai) noexcept : i(ai) {} 8036: constexpr inline operator int() const noexcept { return i; } 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qflags.h" 3 4 8036: constexpr inline QFlag(uint ai) noexcept : i(int(ai)) {} 8036: constexpr inline QFlag(short ai) noexcept : i(int(ai)) {} 8036: constexpr inline QFlag(ushort ai) noexcept : i(int(uint(ai))) {} 8036: constexpr inline operator uint() const noexcept { return uint(i); } 8036: 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlag) }; static inline const char *name() { return "QFlag"; } }; 8036: 8036: class QIncompatibleFlag 8036: { 8036: int i; 8036: public: 8036: constexpr inline explicit QIncompatibleFlag(int i) noexcept; 8036: constexpr inline operator int() const noexcept { return i; } 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QIncompatibleFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QIncompatibleFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QIncompatibleFlag) }; static inline const char *name() { return "QIncompatibleFlag"; } }; 8036: 8036: constexpr inline QIncompatibleFlag::QIncompatibleFlag(int ai) noexcept : i(ai) {} 8036: 8036: 8036: 8036: 8036: template 8036: class QFlags 8036: { 8036: static_assert(bool((sizeof(Enum) <= sizeof(int))), "QFlags uses an int as storage, so an enum with underlying " "long long will overflow.") 8036: 8036: ; 8036: static_assert(bool((std::is_enum::value)), "QFlags is only usable on enumeration types."); 8036: 8036: struct Private; 8036: typedef int (Private::*Zero); 8036: template friend QDataStream &operator>>(QDataStream &, QFlags &); 8036: template friend QDataStream &operator<<(QDataStream &, QFlags); 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: typedef typename std::conditional< 8036: std::is_unsigned::type>::value, 8036: unsigned int, 8036: signed int 8036: >::type Int; 8036: 8036: typedef Enum enum_type; 8036: 8036: 8036: 8036: 8036: 8036: constexpr inline QFlags(Enum f) noexcept : i(Int(f)) {} 8036: constexpr inline QFlags(Zero = nullptr) noexcept : i(0) {} 8036: constexpr inline QFlags(QFlag f) noexcept : i(f) {} 8036: 8036: 8036: constexpr inline QFlags(std::initializer_list flags) noexcept 8036: : i(initializer_list_helper(flags.begin(), flags.end())) {} 8036: 8036: 8036: inline QFlags &operator&=(int mask) noexcept { i &= mask; return *this; } 8036: inline QFlags &operator&=(uint mask) noexcept { i &= mask; return *this; } 8036: inline QFlags &operator&=(Enum mask) noexcept { i &= Int(mask); return *this; } 8036: inline QFlags &operator|=(QFlags f) noexcept { i |= f.i; return *this; } 8036: inline QFlags &operator|=(Enum f) noexcept { i |= Int(f); return *this; } 8036: inline QFlags &operator^=(QFlags f) noexcept { i ^= f.i; return *this; } 8036: inline QFlags &operator^=(Enum f) noexcept { i ^= Int(f); return *this; } 8036: 8036: constexpr inline operator Int() const noexcept { return i; } 8036: 8036: constexpr inline QFlags operator|(QFlags f) const noexcept { return QFlags(QFlag(i | f.i)); } 8036: constexpr inline QFlags operator|(Enum f) const noexcept { return QFlags(QFlag(i | Int(f))); } 8036: constexpr inline QFlags operator^(QFlags f) const noexcept { return QFlags(QFlag(i ^ f.i)); } 8036: constexpr inline QFlags operator^(Enum f) const noexcept { return QFlags(QFlag(i ^ Int(f))); } 8036: constexpr inline QFlags operator&(int mask) const noexcept { return QFlags(QFlag(i & mask)); } 8036: constexpr inline QFlags operator&(uint mask) const noexcept { return QFlags(QFlag(i & mask)); } 8036: constexpr inline QFlags operator&(Enum f) const noexcept { return QFlags(QFlag(i & Int(f))); } 8036: constexpr inline QFlags operator~() const noexcept { return QFlags(QFlag(~i)); } 8036: 8036: constexpr inline bool operator!() const noexcept { return !i; } 8036: 8036: constexpr inline bool testFlag(Enum f) const noexcept { return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f) ); } 8036: inline QFlags &setFlag(Enum f, bool on = true) noexcept 8036: { 8036: return on ? (*this |= f) : (*this &= ~f); 8036: } 8036: 8036: private: 8036: 8036: constexpr static inline Int initializer_list_helper(typename std::initializer_list::const_iterator it, 8036: typename std::initializer_list::const_iterator end) 8036: noexcept 8036: { 8036: return (it == end ? Int(0) : (Int(*it) | initializer_list_helper(it + 1, end))); 8036: } 8036: 8036: 8036: Int i; 8036: }; 8036: # 196 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qflags.h" 3 4 8036: 8036: # 1157 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 1 3 4 8036: # 41 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 42 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qgenericatomic.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qgenericatomic.h" 2 3 4 8036: 8036: 8036: # 56 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8036: template struct QAtomicOpsSupport { enum { IsSupported = 0 }; }; 8036: template<> struct QAtomicOpsSupport<4> { enum { IsSupported = 1 }; }; 8036: 8036: template struct QAtomicAdditiveType 8036: { 8036: typedef T AdditiveT; 8036: static const int AddScale = 1; 8036: }; 8036: template struct QAtomicAdditiveType 8036: { 8036: typedef qptrdiff AdditiveT; 8036: static const int AddScale = sizeof(T); 8036: }; 8036: 8036: 8036: template struct QGenericAtomicOps 8036: { 8036: template struct AtomicType { typedef T Type; typedef T *PointerType; }; 8036: 8036: template static void acquireMemoryFence(const T &_q_value) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: } 8036: template static void releaseMemoryFence(const T &_q_value) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: } 8036: template static void orderedMemoryFence(const T &) noexcept 8036: { 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T load(const T &_q_value) noexcept 8036: { 8036: return _q_value; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: void store(T &_q_value, X newValue) noexcept 8036: { 8036: _q_value = newValue; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T loadAcquire(const T &_q_value) noexcept 8036: { 8036: T tmp = *static_cast(&_q_value); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: void storeRelease(T &_q_value, X newValue) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: *static_cast(&_q_value) = newValue; 8036: } 8036: 8036: static inline constexpr bool isReferenceCountingNative() noexcept 8036: { return BaseClass::isFetchAndAddNative(); } 8036: static inline constexpr bool isReferenceCountingWaitFree() noexcept 8036: { return BaseClass::isFetchAndAddWaitFree(); } 8036: template static inline __attribute__((always_inline)) 8036: bool ref(T &_q_value) noexcept 8036: { 8036: return BaseClass::fetchAndAddRelaxed(_q_value, 1) != T(-1); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool deref(T &_q_value) noexcept 8036: { 8036: return BaseClass::fetchAndAddRelaxed(_q_value, -1) != 1; 8036: } 8036: # 141 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue) noexcept 8036: { 8036: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8036: { 8036: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8036: } 8036: 8036: static inline constexpr bool isFetchAndStoreNative() noexcept { return false; } 8036: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndStoreRelaxed(T &_q_value, X newValue) noexcept 8036: { 8036: 8036: for(;;) { 8036: T tmp = load(_q_value); 8036: if (BaseClass::testAndSetRelaxed(_q_value, tmp, newValue)) 8036: return tmp; 8036: } 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndStoreAcquire(T &_q_value, X newValue) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndStoreRelease(T &_q_value, X newValue) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndStoreOrdered(T &_q_value, X newValue) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8036: } 8036: 8036: static inline constexpr bool isFetchAndAddNative() noexcept { return false; } 8036: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: 8036: for(;;) { 8036: T tmp = BaseClass::load(_q_value); 8036: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp + valueToAdd))) 8036: return tmp; 8036: } 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAddRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndSubRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8036: { 8036: 8036: return fetchAndAddRelaxed(_q_value, -operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndSubAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndSubRelaxed(_q_value, operand); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndSubRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndSubOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAndRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: 8036: T tmp = BaseClass::load(_q_value); 8036: for(;;) { 8036: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp & operand), &tmp)) 8036: return tmp; 8036: } 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAndAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndAndRelaxed(_q_value, operand); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAndRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndAndOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndOrRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: 8036: T tmp = BaseClass::load(_q_value); 8036: for(;;) { 8036: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp | operand), &tmp)) 8036: return tmp; 8036: } 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndOrAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndOrRelaxed(_q_value, operand); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndOrRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndOrOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndXorRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: 8036: T tmp = BaseClass::load(_q_value); 8036: for(;;) { 8036: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp ^ operand), &tmp)) 8036: return tmp; 8036: } 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndXorAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: T tmp = BaseClass::fetchAndXorRelaxed(_q_value, operand); 8036: BaseClass::acquireMemoryFence(_q_value); 8036: return tmp; 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndXorRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::releaseMemoryFence(_q_value); 8036: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8036: } 8036: 8036: template static inline __attribute__((always_inline)) 8036: T fetchAndXorOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8036: { 8036: BaseClass::orderedMemoryFence(_q_value); 8036: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8036: } 8036: }; 8036: 8036: 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8036: # 1 "/usr/include/c++/8/atomic" 1 3 4 8036: # 35 "/usr/include/c++/8/atomic" 3 4 8036: 8036: # 36 "/usr/include/c++/8/atomic" 3 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdint.h" 1 3 4 8036: # 9 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdint.h" 3 4 8036: # 1 "/usr/include/stdint.h" 1 3 4 8036: # 26 "/usr/include/stdint.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 27 "/usr/include/stdint.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wchar.h" 1 3 4 8036: # 29 "/usr/include/stdint.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 30 "/usr/include/stdint.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdint-uintn.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/stdint-uintn.h" 3 4 8036: typedef __uint8_t uint8_t; 8036: typedef __uint16_t uint16_t; 8036: typedef __uint32_t uint32_t; 8036: typedef __uint64_t uint64_t; 8036: # 38 "/usr/include/stdint.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: typedef signed char int_least8_t; 8036: typedef short int int_least16_t; 8036: typedef int int_least32_t; 8036: 8036: typedef long int int_least64_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef unsigned char uint_least8_t; 8036: typedef unsigned short int uint_least16_t; 8036: typedef unsigned int uint_least32_t; 8036: 8036: typedef unsigned long int uint_least64_t; 8036: # 68 "/usr/include/stdint.h" 3 4 8036: typedef signed char int_fast8_t; 8036: 8036: typedef long int int_fast16_t; 8036: typedef long int int_fast32_t; 8036: typedef long int int_fast64_t; 8036: # 81 "/usr/include/stdint.h" 3 4 8036: typedef unsigned char uint_fast8_t; 8036: 8036: typedef unsigned long int uint_fast16_t; 8036: typedef unsigned long int uint_fast32_t; 8036: typedef unsigned long int uint_fast64_t; 8036: # 97 "/usr/include/stdint.h" 3 4 8036: typedef long int intptr_t; 8036: 8036: 8036: typedef unsigned long int uintptr_t; 8036: # 111 "/usr/include/stdint.h" 3 4 8036: typedef __intmax_t intmax_t; 8036: typedef __uintmax_t uintmax_t; 8036: # 10 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdint.h" 2 3 4 8036: # 37 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8036: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8036: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 8036: typedef enum memory_order 8036: { 8036: memory_order_relaxed, 8036: memory_order_consume, 8036: memory_order_acquire, 8036: memory_order_release, 8036: memory_order_acq_rel, 8036: memory_order_seq_cst 8036: } memory_order; 8036: 8036: enum __memory_order_modifier 8036: { 8036: __memory_order_mask = 0x0ffff, 8036: __memory_order_modifier_mask = 0xffff0000, 8036: __memory_order_hle_acquire = 0x10000, 8036: __memory_order_hle_release = 0x20000 8036: }; 8036: 8036: constexpr memory_order 8036: operator|(memory_order __m, __memory_order_modifier __mod) 8036: { 8036: return memory_order(__m | int(__mod)); 8036: } 8036: 8036: constexpr memory_order 8036: operator&(memory_order __m, __memory_order_modifier __mod) 8036: { 8036: return memory_order(__m & int(__mod)); 8036: } 8036: 8036: 8036: constexpr memory_order 8036: __cmpexch_failure_order2(memory_order __m) noexcept 8036: { 8036: return __m == memory_order_acq_rel ? memory_order_acquire 8036: : __m == memory_order_release ? memory_order_relaxed : __m; 8036: } 8036: 8036: constexpr memory_order 8036: __cmpexch_failure_order(memory_order __m) noexcept 8036: { 8036: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 8036: | (__m & __memory_order_modifier_mask)); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: atomic_thread_fence(memory_order __m) noexcept 8036: { __atomic_thread_fence(__m); } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: atomic_signal_fence(memory_order __m) noexcept 8036: { __atomic_signal_fence(__m); } 8036: 8036: 8036: template 8036: inline _Tp 8036: kill_dependency(_Tp __y) noexcept 8036: { 8036: _Tp __ret(__y); 8036: return __ret; 8036: } 8036: 8036: 8036: 8036: template 8036: struct __atomic_base; 8036: 8036: 8036: 8036: 8036: template 8036: struct atomic; 8036: 8036: template 8036: struct atomic<_Tp*>; 8036: 8036: 8036: 8036: typedef bool __atomic_flag_data_type; 8036: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 8036: extern "C" { 8036: 8036: struct __atomic_flag_base 8036: { 8036: __atomic_flag_data_type _M_i; 8036: }; 8036: 8036: } 8036: 8036: 8036: 8036: 8036: struct atomic_flag : public __atomic_flag_base 8036: { 8036: atomic_flag() noexcept = default; 8036: ~atomic_flag() noexcept = default; 8036: atomic_flag(const atomic_flag&) = delete; 8036: atomic_flag& operator=(const atomic_flag&) = delete; 8036: atomic_flag& operator=(const atomic_flag&) volatile = delete; 8036: 8036: 8036: constexpr atomic_flag(bool __i) noexcept 8036: : __atomic_flag_base{ _S_init(__i) } 8036: { } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return __atomic_test_and_set (&_M_i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return __atomic_test_and_set (&_M_i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: clear(memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_clear (&_M_i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_clear (&_M_i, __m); 8036: } 8036: 8036: private: 8036: static constexpr __atomic_flag_data_type 8036: _S_init(bool __i) 8036: { return __i ? 1 : 0; } 8036: }; 8036: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 8036: template 8036: struct __atomic_base 8036: { 8036: private: 8036: typedef _ITp __int_type; 8036: 8036: static constexpr int _S_alignment = 8036: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 8036: 8036: alignas(_S_alignment) __int_type _M_i; 8036: 8036: public: 8036: __atomic_base() noexcept = default; 8036: ~__atomic_base() noexcept = default; 8036: __atomic_base(const __atomic_base&) = delete; 8036: __atomic_base& operator=(const __atomic_base&) = delete; 8036: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8036: 8036: 8036: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 8036: 8036: operator __int_type() const noexcept 8036: { return load(); } 8036: 8036: operator __int_type() const volatile noexcept 8036: { return load(); } 8036: 8036: __int_type 8036: operator=(__int_type __i) noexcept 8036: { 8036: store(__i); 8036: return __i; 8036: } 8036: 8036: __int_type 8036: operator=(__int_type __i) volatile noexcept 8036: { 8036: store(__i); 8036: return __i; 8036: } 8036: 8036: __int_type 8036: operator++(int) noexcept 8036: { return fetch_add(1); } 8036: 8036: __int_type 8036: operator++(int) volatile noexcept 8036: { return fetch_add(1); } 8036: 8036: __int_type 8036: operator--(int) noexcept 8036: { return fetch_sub(1); } 8036: 8036: __int_type 8036: operator--(int) volatile noexcept 8036: { return fetch_sub(1); } 8036: 8036: __int_type 8036: operator++() noexcept 8036: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator++() volatile noexcept 8036: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator--() noexcept 8036: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator--() volatile noexcept 8036: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator+=(__int_type __i) noexcept 8036: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator+=(__int_type __i) volatile noexcept 8036: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator-=(__int_type __i) noexcept 8036: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator-=(__int_type __i) volatile noexcept 8036: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator&=(__int_type __i) noexcept 8036: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator&=(__int_type __i) volatile noexcept 8036: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator|=(__int_type __i) noexcept 8036: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator|=(__int_type __i) volatile noexcept 8036: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator^=(__int_type __i) noexcept 8036: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: __int_type 8036: operator^=(__int_type __i) volatile noexcept 8036: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8036: 8036: bool 8036: is_lock_free() const noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_i), 8036: reinterpret_cast(-__alignof(_M_i))); 8036: } 8036: 8036: bool 8036: is_lock_free() const volatile noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_i), 8036: reinterpret_cast(-__alignof(_M_i))); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_store_n(&_M_i, __i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: store(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_store_n(&_M_i, __i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: load(memory_order __m = memory_order_seq_cst) const noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: 8036: return __atomic_load_n(&_M_i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: 8036: return __atomic_load_n(&_M_i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: exchange(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return __atomic_exchange_n(&_M_i, __i, __m); 8036: } 8036: 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: exchange(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return __atomic_exchange_n(&_M_i, __i, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8036: memory_order __m1, memory_order __m2) noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8036: memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return compare_exchange_weak(__i1, __i2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return compare_exchange_weak(__i1, __i2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8036: memory_order __m1, memory_order __m2) noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8036: memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return compare_exchange_strong(__i1, __i2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return compare_exchange_strong(__i1, __i2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_add(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_add(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_add(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_add(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_sub(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_sub(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_and(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_and(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_and(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_and(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_or(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_or(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_or(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_or(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_xor(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8036: 8036: inline __attribute__((__always_inline__)) __int_type 8036: fetch_xor(__int_type __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8036: }; 8036: 8036: 8036: 8036: template 8036: struct __atomic_base<_PTp*> 8036: { 8036: private: 8036: typedef _PTp* __pointer_type; 8036: 8036: __pointer_type _M_p; 8036: 8036: 8036: constexpr ptrdiff_t 8036: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 8036: 8036: constexpr ptrdiff_t 8036: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 8036: 8036: public: 8036: __atomic_base() noexcept = default; 8036: ~__atomic_base() noexcept = default; 8036: __atomic_base(const __atomic_base&) = delete; 8036: __atomic_base& operator=(const __atomic_base&) = delete; 8036: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8036: 8036: 8036: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 8036: 8036: operator __pointer_type() const noexcept 8036: { return load(); } 8036: 8036: operator __pointer_type() const volatile noexcept 8036: { return load(); } 8036: 8036: __pointer_type 8036: operator=(__pointer_type __p) noexcept 8036: { 8036: store(__p); 8036: return __p; 8036: } 8036: 8036: __pointer_type 8036: operator=(__pointer_type __p) volatile noexcept 8036: { 8036: store(__p); 8036: return __p; 8036: } 8036: 8036: __pointer_type 8036: operator++(int) noexcept 8036: { return fetch_add(1); } 8036: 8036: __pointer_type 8036: operator++(int) volatile noexcept 8036: { return fetch_add(1); } 8036: 8036: __pointer_type 8036: operator--(int) noexcept 8036: { return fetch_sub(1); } 8036: 8036: __pointer_type 8036: operator--(int) volatile noexcept 8036: { return fetch_sub(1); } 8036: 8036: __pointer_type 8036: operator++() noexcept 8036: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator++() volatile noexcept 8036: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator--() noexcept 8036: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator--() volatile noexcept 8036: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator+=(ptrdiff_t __d) noexcept 8036: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator+=(ptrdiff_t __d) volatile noexcept 8036: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator-=(ptrdiff_t __d) noexcept 8036: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8036: memory_order_seq_cst); } 8036: 8036: __pointer_type 8036: operator-=(ptrdiff_t __d) volatile noexcept 8036: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8036: memory_order_seq_cst); } 8036: 8036: bool 8036: is_lock_free() const noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_p), 8036: reinterpret_cast(-__alignof(_M_p))); 8036: } 8036: 8036: bool 8036: is_lock_free() const volatile noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_p), 8036: reinterpret_cast(-__alignof(_M_p))); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: store(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_store_n(&_M_p, __p, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) void 8036: store(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: __atomic_store_n(&_M_p, __p, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: load(memory_order __m = memory_order_seq_cst) const noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: 8036: return __atomic_load_n(&_M_p, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8036: { 8036: memory_order __b = __m & __memory_order_mask; 8036: ; 8036: ; 8036: 8036: return __atomic_load_n(&_M_p, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: exchange(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return __atomic_exchange_n(&_M_p, __p, __m); 8036: } 8036: 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: exchange(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return __atomic_exchange_n(&_M_p, __p, __m); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, 8036: memory_order __m2) noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { 8036: memory_order __b2 = __m2 & __memory_order_mask; 8036: memory_order __b1 = __m1 & __memory_order_mask; 8036: 8036: ; 8036: ; 8036: ; 8036: 8036: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8036: } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: fetch_add(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: fetch_add(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: fetch_sub(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8036: 8036: inline __attribute__((__always_inline__)) __pointer_type 8036: fetch_sub(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8036: }; 8036: 8036: 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/atomic" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 57 "/usr/include/c++/8/atomic" 3 8036: template 8036: struct atomic; 8036: 8036: 8036: 8036: template<> 8036: struct atomic 8036: { 8036: private: 8036: __atomic_base _M_base; 8036: 8036: public: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 8036: 8036: bool 8036: operator=(bool __i) noexcept 8036: { return _M_base.operator=(__i); } 8036: 8036: bool 8036: operator=(bool __i) volatile noexcept 8036: { return _M_base.operator=(__i); } 8036: 8036: operator bool() const noexcept 8036: { return _M_base.load(); } 8036: 8036: operator bool() const volatile noexcept 8036: { return _M_base.load(); } 8036: 8036: bool 8036: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 8036: 8036: bool 8036: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 8036: 8036: 8036: 8036: 8036: 8036: void 8036: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8036: { _M_base.store(__i, __m); } 8036: 8036: void 8036: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { _M_base.store(__i, __m); } 8036: 8036: bool 8036: load(memory_order __m = memory_order_seq_cst) const noexcept 8036: { return _M_base.load(__m); } 8036: 8036: bool 8036: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8036: { return _M_base.load(__m); } 8036: 8036: bool 8036: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_base.exchange(__i, __m); } 8036: 8036: bool 8036: exchange(bool __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_base.exchange(__i, __m); } 8036: 8036: bool 8036: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_weak(bool& __i1, bool __i2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8036: 8036: bool 8036: compare_exchange_weak(bool& __i1, bool __i2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8036: 8036: bool 8036: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_strong(bool& __i1, bool __i2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8036: 8036: bool 8036: compare_exchange_strong(bool& __i1, bool __i2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct atomic 8036: { 8036: private: 8036: 8036: static constexpr int _S_min_alignment 8036: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 8036: ? 0 : sizeof(_Tp); 8036: 8036: static constexpr int _S_alignment 8036: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 8036: 8036: alignas(_S_alignment) _Tp _M_i; 8036: 8036: static_assert(__is_trivially_copyable(_Tp), 8036: "std::atomic requires a trivially copyable type"); 8036: 8036: static_assert(sizeof(_Tp) > 0, 8036: "Incomplete or zero-sized types are not supported"); 8036: 8036: public: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(_Tp __i) noexcept : _M_i(__i) { } 8036: 8036: operator _Tp() const noexcept 8036: { return load(); } 8036: 8036: operator _Tp() const volatile noexcept 8036: { return load(); } 8036: 8036: _Tp 8036: operator=(_Tp __i) noexcept 8036: { store(__i); return __i; } 8036: 8036: _Tp 8036: operator=(_Tp __i) volatile noexcept 8036: { store(__i); return __i; } 8036: 8036: bool 8036: is_lock_free() const noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_i), 8036: reinterpret_cast(-__alignof(_M_i))); 8036: } 8036: 8036: bool 8036: is_lock_free() const volatile noexcept 8036: { 8036: 8036: return __atomic_is_lock_free(sizeof(_M_i), 8036: reinterpret_cast(-__alignof(_M_i))); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8036: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8036: 8036: void 8036: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8036: 8036: _Tp 8036: load(memory_order __m = memory_order_seq_cst) const noexcept 8036: { 8036: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8036: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8036: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8036: return *__ptr; 8036: } 8036: 8036: _Tp 8036: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8036: { 8036: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8036: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8036: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8036: return *__ptr; 8036: } 8036: 8036: _Tp 8036: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8036: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8036: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8036: __ptr, __m); 8036: return *__ptr; 8036: } 8036: 8036: _Tp 8036: exchange(_Tp __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8036: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8036: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8036: __ptr, __m); 8036: return *__ptr; 8036: } 8036: 8036: bool 8036: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8036: memory_order __f) noexcept 8036: { 8036: return __atomic_compare_exchange(std::__addressof(_M_i), 8036: std::__addressof(__e), 8036: std::__addressof(__i), 8036: true, __s, __f); 8036: } 8036: 8036: bool 8036: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8036: memory_order __f) volatile noexcept 8036: { 8036: return __atomic_compare_exchange(std::__addressof(_M_i), 8036: std::__addressof(__e), 8036: std::__addressof(__i), 8036: true, __s, __f); 8036: } 8036: 8036: bool 8036: compare_exchange_weak(_Tp& __e, _Tp __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return compare_exchange_weak(__e, __i, __m, 8036: __cmpexch_failure_order(__m)); } 8036: 8036: bool 8036: compare_exchange_weak(_Tp& __e, _Tp __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return compare_exchange_weak(__e, __i, __m, 8036: __cmpexch_failure_order(__m)); } 8036: 8036: bool 8036: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8036: memory_order __f) noexcept 8036: { 8036: return __atomic_compare_exchange(std::__addressof(_M_i), 8036: std::__addressof(__e), 8036: std::__addressof(__i), 8036: false, __s, __f); 8036: } 8036: 8036: bool 8036: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8036: memory_order __f) volatile noexcept 8036: { 8036: return __atomic_compare_exchange(std::__addressof(_M_i), 8036: std::__addressof(__e), 8036: std::__addressof(__i), 8036: false, __s, __f); 8036: } 8036: 8036: bool 8036: compare_exchange_strong(_Tp& __e, _Tp __i, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return compare_exchange_strong(__e, __i, __m, 8036: __cmpexch_failure_order(__m)); } 8036: 8036: bool 8036: compare_exchange_strong(_Tp& __e, _Tp __i, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return compare_exchange_strong(__e, __i, __m, 8036: __cmpexch_failure_order(__m)); } 8036: }; 8036: 8036: 8036: 8036: template 8036: struct atomic<_Tp*> 8036: { 8036: typedef _Tp* __pointer_type; 8036: typedef __atomic_base<_Tp*> __base_type; 8036: __base_type _M_b; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 8036: 8036: operator __pointer_type() const noexcept 8036: { return __pointer_type(_M_b); } 8036: 8036: operator __pointer_type() const volatile noexcept 8036: { return __pointer_type(_M_b); } 8036: 8036: __pointer_type 8036: operator=(__pointer_type __p) noexcept 8036: { return _M_b.operator=(__p); } 8036: 8036: __pointer_type 8036: operator=(__pointer_type __p) volatile noexcept 8036: { return _M_b.operator=(__p); } 8036: 8036: __pointer_type 8036: operator++(int) noexcept 8036: { return _M_b++; } 8036: 8036: __pointer_type 8036: operator++(int) volatile noexcept 8036: { return _M_b++; } 8036: 8036: __pointer_type 8036: operator--(int) noexcept 8036: { return _M_b--; } 8036: 8036: __pointer_type 8036: operator--(int) volatile noexcept 8036: { return _M_b--; } 8036: 8036: __pointer_type 8036: operator++() noexcept 8036: { return ++_M_b; } 8036: 8036: __pointer_type 8036: operator++() volatile noexcept 8036: { return ++_M_b; } 8036: 8036: __pointer_type 8036: operator--() noexcept 8036: { return --_M_b; } 8036: 8036: __pointer_type 8036: operator--() volatile noexcept 8036: { return --_M_b; } 8036: 8036: __pointer_type 8036: operator+=(ptrdiff_t __d) noexcept 8036: { return _M_b.operator+=(__d); } 8036: 8036: __pointer_type 8036: operator+=(ptrdiff_t __d) volatile noexcept 8036: { return _M_b.operator+=(__d); } 8036: 8036: __pointer_type 8036: operator-=(ptrdiff_t __d) noexcept 8036: { return _M_b.operator-=(__d); } 8036: 8036: __pointer_type 8036: operator-=(ptrdiff_t __d) volatile noexcept 8036: { return _M_b.operator-=(__d); } 8036: 8036: bool 8036: is_lock_free() const noexcept 8036: { return _M_b.is_lock_free(); } 8036: 8036: bool 8036: is_lock_free() const volatile noexcept 8036: { return _M_b.is_lock_free(); } 8036: 8036: 8036: 8036: 8036: 8036: void 8036: store(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_b.store(__p, __m); } 8036: 8036: void 8036: store(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_b.store(__p, __m); } 8036: 8036: __pointer_type 8036: load(memory_order __m = memory_order_seq_cst) const noexcept 8036: { return _M_b.load(__m); } 8036: 8036: __pointer_type 8036: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8036: { return _M_b.load(__m); } 8036: 8036: __pointer_type 8036: exchange(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_b.exchange(__p, __m); } 8036: 8036: __pointer_type 8036: exchange(__pointer_type __p, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_b.exchange(__p, __m); } 8036: 8036: bool 8036: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, memory_order __m2) noexcept 8036: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return compare_exchange_weak(__p1, __p2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: bool 8036: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return compare_exchange_weak(__p1, __p2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, memory_order __m2) noexcept 8036: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m1, 8036: memory_order __m2) volatile noexcept 8036: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8036: 8036: bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { 8036: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: bool 8036: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { 8036: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8036: __cmpexch_failure_order(__m)); 8036: } 8036: 8036: __pointer_type 8036: fetch_add(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_b.fetch_add(__d, __m); } 8036: 8036: __pointer_type 8036: fetch_add(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_b.fetch_add(__d, __m); } 8036: 8036: __pointer_type 8036: fetch_sub(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) noexcept 8036: { return _M_b.fetch_sub(__d, __m); } 8036: 8036: __pointer_type 8036: fetch_sub(ptrdiff_t __d, 8036: memory_order __m = memory_order_seq_cst) volatile noexcept 8036: { return _M_b.fetch_sub(__d, __m); } 8036: }; 8036: 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef char __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef signed char __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept= default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef unsigned char __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept= default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef short __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef unsigned short __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef int __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef unsigned int __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef long __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef unsigned long __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef long long __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef unsigned long long __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef wchar_t __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef char16_t __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: template<> 8036: struct atomic : __atomic_base 8036: { 8036: typedef char32_t __integral_type; 8036: typedef __atomic_base __base_type; 8036: 8036: atomic() noexcept = default; 8036: ~atomic() noexcept = default; 8036: atomic(const atomic&) = delete; 8036: atomic& operator=(const atomic&) = delete; 8036: atomic& operator=(const atomic&) volatile = delete; 8036: 8036: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8036: 8036: using __base_type::operator __integral_type; 8036: using __base_type::operator=; 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: 8036: typedef atomic atomic_bool; 8036: 8036: 8036: typedef atomic atomic_char; 8036: 8036: 8036: typedef atomic atomic_schar; 8036: 8036: 8036: typedef atomic atomic_uchar; 8036: 8036: 8036: typedef atomic atomic_short; 8036: 8036: 8036: typedef atomic atomic_ushort; 8036: 8036: 8036: typedef atomic atomic_int; 8036: 8036: 8036: typedef atomic atomic_uint; 8036: 8036: 8036: typedef atomic atomic_long; 8036: 8036: 8036: typedef atomic atomic_ulong; 8036: 8036: 8036: typedef atomic atomic_llong; 8036: 8036: 8036: typedef atomic atomic_ullong; 8036: 8036: 8036: typedef atomic atomic_wchar_t; 8036: 8036: 8036: typedef atomic atomic_char16_t; 8036: 8036: 8036: typedef atomic atomic_char32_t; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef atomic atomic_int8_t; 8036: 8036: 8036: typedef atomic atomic_uint8_t; 8036: 8036: 8036: typedef atomic atomic_int16_t; 8036: 8036: 8036: typedef atomic atomic_uint16_t; 8036: 8036: 8036: typedef atomic atomic_int32_t; 8036: 8036: 8036: typedef atomic atomic_uint32_t; 8036: 8036: 8036: typedef atomic atomic_int64_t; 8036: 8036: 8036: typedef atomic atomic_uint64_t; 8036: 8036: 8036: 8036: typedef atomic atomic_int_least8_t; 8036: 8036: 8036: typedef atomic atomic_uint_least8_t; 8036: 8036: 8036: typedef atomic atomic_int_least16_t; 8036: 8036: 8036: typedef atomic atomic_uint_least16_t; 8036: 8036: 8036: typedef atomic atomic_int_least32_t; 8036: 8036: 8036: typedef atomic atomic_uint_least32_t; 8036: 8036: 8036: typedef atomic atomic_int_least64_t; 8036: 8036: 8036: typedef atomic atomic_uint_least64_t; 8036: 8036: 8036: 8036: typedef atomic atomic_int_fast8_t; 8036: 8036: 8036: typedef atomic atomic_uint_fast8_t; 8036: 8036: 8036: typedef atomic atomic_int_fast16_t; 8036: 8036: 8036: typedef atomic atomic_uint_fast16_t; 8036: 8036: 8036: typedef atomic atomic_int_fast32_t; 8036: 8036: 8036: typedef atomic atomic_uint_fast32_t; 8036: 8036: 8036: typedef atomic atomic_int_fast64_t; 8036: 8036: 8036: typedef atomic atomic_uint_fast64_t; 8036: 8036: 8036: 8036: 8036: typedef atomic atomic_intptr_t; 8036: 8036: 8036: typedef atomic atomic_uintptr_t; 8036: 8036: 8036: typedef atomic atomic_size_t; 8036: 8036: 8036: typedef atomic atomic_ptrdiff_t; 8036: 8036: 8036: 8036: typedef atomic atomic_intmax_t; 8036: 8036: 8036: typedef atomic atomic_uintmax_t; 8036: 8036: 8036: 8036: inline bool 8036: atomic_flag_test_and_set_explicit(atomic_flag* __a, 8036: memory_order __m) noexcept 8036: { return __a->test_and_set(__m); } 8036: 8036: inline bool 8036: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 8036: memory_order __m) noexcept 8036: { return __a->test_and_set(__m); } 8036: 8036: inline void 8036: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 8036: { __a->clear(__m); } 8036: 8036: inline void 8036: atomic_flag_clear_explicit(volatile atomic_flag* __a, 8036: memory_order __m) noexcept 8036: { __a->clear(__m); } 8036: 8036: inline bool 8036: atomic_flag_test_and_set(atomic_flag* __a) noexcept 8036: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8036: 8036: inline bool 8036: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 8036: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8036: 8036: inline void 8036: atomic_flag_clear(atomic_flag* __a) noexcept 8036: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8036: 8036: inline void 8036: atomic_flag_clear(volatile atomic_flag* __a) noexcept 8036: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8036: 8036: 8036: 8036: template 8036: inline bool 8036: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 8036: { return __a->is_lock_free(); } 8036: 8036: template 8036: inline bool 8036: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 8036: { return __a->is_lock_free(); } 8036: 8036: template 8036: inline void 8036: atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept 8036: { __a->store(__i, memory_order_relaxed); } 8036: 8036: template 8036: inline void 8036: atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8036: { __a->store(__i, memory_order_relaxed); } 8036: 8036: template 8036: inline void 8036: atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { __a->store(__i, __m); } 8036: 8036: template 8036: inline void 8036: atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { __a->store(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 8036: { return __a->load(__m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_load_explicit(const volatile atomic<_ITp>* __a, 8036: memory_order __m) noexcept 8036: { return __a->load(__m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->exchange(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->exchange(__i, __m); } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2, 8036: memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2, 8036: memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2, 8036: memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2, 8036: memory_order __m1, 8036: memory_order __m2) noexcept 8036: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8036: 8036: 8036: template 8036: inline void 8036: atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept 8036: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline void 8036: atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8036: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_load(const atomic<_ITp>* __a) noexcept 8036: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_load(const volatile atomic<_ITp>* __a) noexcept 8036: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_weak(atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2) noexcept 8036: { 8036: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8036: memory_order_seq_cst, 8036: memory_order_seq_cst); 8036: } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2) noexcept 8036: { 8036: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8036: memory_order_seq_cst, 8036: memory_order_seq_cst); 8036: } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_strong(atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2) noexcept 8036: { 8036: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8036: memory_order_seq_cst, 8036: memory_order_seq_cst); 8036: } 8036: 8036: template 8036: inline bool 8036: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 8036: _ITp* __i1, _ITp __i2) noexcept 8036: { 8036: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8036: memory_order_seq_cst, 8036: memory_order_seq_cst); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_add(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_add(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_sub(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_sub(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_and(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_and(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_or(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_or(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_xor(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8036: memory_order __m) noexcept 8036: { return __a->fetch_xor(__i, __m); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: template 8036: inline _ITp 8036: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8036: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8036: 8036: 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8036: memory_order __m) noexcept 8036: { return __a->fetch_add(__d, __m); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d, 8036: memory_order __m) noexcept 8036: { return __a->fetch_add(__d, __m); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8036: { return __a->fetch_add(__d); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8036: { return __a->fetch_add(__d); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a, 8036: ptrdiff_t __d, memory_order __m) noexcept 8036: { return __a->fetch_sub(__d, __m); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8036: memory_order __m) noexcept 8036: { return __a->fetch_sub(__d, __m); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8036: { return __a->fetch_sub(__d); } 8036: 8036: template 8036: inline _ITp* 8036: atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8036: { return __a->fetch_sub(__d); } 8036: 8036: 8036: 8036: } 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8036: 8036: 8036: # 75 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template struct QAtomicTraits 8036: { static constexpr inline bool isLockFree(); }; 8036: # 89 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template <> constexpr inline bool QAtomicTraits<4>::isLockFree() 8036: { return true; } 8036: # 134 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template<> struct QAtomicOpsSupport<1> { enum { IsSupported = 1 }; }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template <> constexpr inline bool QAtomicTraits<1>::isLockFree() 8036: { return true; } 8036: # 162 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template<> struct QAtomicOpsSupport<2> { enum { IsSupported = 1 }; }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template <> constexpr inline bool QAtomicTraits<2>::isLockFree() 8036: { return false; } 8036: # 191 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template<> struct QAtomicOpsSupport<8> { enum { IsSupported = 1 }; }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template <> constexpr inline bool QAtomicTraits<8>::isLockFree() 8036: { return true; } 8036: # 220 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8036: template struct QAtomicOps 8036: { 8036: typedef std::atomic Type; 8036: 8036: template static inline 8036: T load(const std::atomic &_q_value) noexcept 8036: { 8036: return _q_value.load(std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T load(const volatile std::atomic &_q_value) noexcept 8036: { 8036: return _q_value.load(std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T loadAcquire(const std::atomic &_q_value) noexcept 8036: { 8036: return _q_value.load(std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T loadAcquire(const volatile std::atomic &_q_value) noexcept 8036: { 8036: return _q_value.load(std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: void store(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: _q_value.store(newValue, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: void storeRelease(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: _q_value.store(newValue, std::memory_order_release); 8036: } 8036: 8036: static inline constexpr bool isReferenceCountingNative() noexcept { return isTestAndSetNative(); } 8036: static inline constexpr bool isReferenceCountingWaitFree() noexcept { return false; } 8036: template 8036: static inline bool ref(std::atomic &_q_value) 8036: { 8036: return ++_q_value != 0; 8036: } 8036: 8036: template 8036: static inline bool deref(std::atomic &_q_value) noexcept 8036: { 8036: return --_q_value != 0; 8036: } 8036: 8036: static inline constexpr bool isTestAndSetNative() noexcept 8036: { return QAtomicTraits::isLockFree(); } 8036: static inline constexpr bool isTestAndSetWaitFree() noexcept { return false; } 8036: 8036: template 8036: static bool testAndSetRelaxed(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8036: { 8036: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed); 8036: if (currentValue) 8036: *currentValue = expectedValue; 8036: return tmp; 8036: } 8036: 8036: template 8036: static bool testAndSetAcquire(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8036: { 8036: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire); 8036: if (currentValue) 8036: *currentValue = expectedValue; 8036: return tmp; 8036: } 8036: 8036: template 8036: static bool testAndSetRelease(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8036: { 8036: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed); 8036: if (currentValue) 8036: *currentValue = expectedValue; 8036: return tmp; 8036: } 8036: 8036: template 8036: static bool testAndSetOrdered(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8036: { 8036: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire); 8036: if (currentValue) 8036: *currentValue = expectedValue; 8036: return tmp; 8036: } 8036: 8036: static inline constexpr bool isFetchAndStoreNative() noexcept { return isTestAndSetNative(); } 8036: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8036: 8036: template 8036: static T fetchAndStoreRelaxed(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: return _q_value.exchange(newValue, std::memory_order_relaxed); 8036: } 8036: 8036: template 8036: static T fetchAndStoreAcquire(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: return _q_value.exchange(newValue, std::memory_order_acquire); 8036: } 8036: 8036: template 8036: static T fetchAndStoreRelease(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: return _q_value.exchange(newValue, std::memory_order_release); 8036: } 8036: 8036: template 8036: static T fetchAndStoreOrdered(std::atomic &_q_value, T newValue) noexcept 8036: { 8036: return _q_value.exchange(newValue, std::memory_order_acq_rel); 8036: } 8036: 8036: static inline constexpr bool isFetchAndAddNative() noexcept { return isTestAndSetNative(); } 8036: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8036: 8036: template static inline 8036: T fetchAndAddRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_add(valueToAdd, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T fetchAndAddAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_add(valueToAdd, std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T fetchAndAddRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_add(valueToAdd, std::memory_order_release); 8036: } 8036: 8036: template static inline 8036: T fetchAndAddOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_add(valueToAdd, std::memory_order_acq_rel); 8036: } 8036: 8036: template static inline 8036: T fetchAndSubRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_sub(valueToAdd, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T fetchAndSubAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_sub(valueToAdd, std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T fetchAndSubRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_sub(valueToAdd, std::memory_order_release); 8036: } 8036: 8036: template static inline 8036: T fetchAndSubOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_sub(valueToAdd, std::memory_order_acq_rel); 8036: } 8036: 8036: template static inline 8036: T fetchAndAndRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_and(valueToAdd, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T fetchAndAndAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_and(valueToAdd, std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T fetchAndAndRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_and(valueToAdd, std::memory_order_release); 8036: } 8036: 8036: template static inline 8036: T fetchAndAndOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_and(valueToAdd, std::memory_order_acq_rel); 8036: } 8036: 8036: template static inline 8036: T fetchAndOrRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_or(valueToAdd, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T fetchAndOrAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_or(valueToAdd, std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T fetchAndOrRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_or(valueToAdd, std::memory_order_release); 8036: } 8036: 8036: template static inline 8036: T fetchAndOrOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_or(valueToAdd, std::memory_order_acq_rel); 8036: } 8036: 8036: template static inline 8036: T fetchAndXorRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_xor(valueToAdd, std::memory_order_relaxed); 8036: } 8036: 8036: template static inline 8036: T fetchAndXorAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_xor(valueToAdd, std::memory_order_acquire); 8036: } 8036: 8036: template static inline 8036: T fetchAndXorRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_xor(valueToAdd, std::memory_order_release); 8036: } 8036: 8036: template static inline 8036: T fetchAndXorOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8036: { 8036: return _q_value.fetch_xor(valueToAdd, std::memory_order_acq_rel); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: 8036: 8036: 8036: 8036: # 89 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: template 8036: class QBasicAtomicInteger 8036: { 8036: public: 8036: typedef QAtomicOps Ops; 8036: 8036: static_assert(bool(QTypeInfo::isIntegral), "template parameter is not an integral type"); 8036: static_assert(bool(QAtomicOpsSupport::IsSupported), "template parameter is an integral of a size not supported on this platform"); 8036: 8036: typename Ops::Type _q_value; 8036: 8036: 8036: 8036: T load() const noexcept { return Ops::load(_q_value); } 8036: void store(T newValue) noexcept { Ops::store(_q_value, newValue); } 8036: 8036: T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8036: void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8036: operator T() const noexcept { return loadAcquire(); } 8036: T operator=(T newValue) noexcept { storeRelease(newValue); return newValue; } 8036: 8036: static constexpr bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); } 8036: static constexpr bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); } 8036: 8036: bool ref() noexcept { return Ops::ref(_q_value); } 8036: bool deref() noexcept { return Ops::deref(_q_value); } 8036: 8036: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8036: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8036: 8036: bool testAndSetRelaxed(T expectedValue, T newValue) noexcept 8036: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8036: bool testAndSetAcquire(T expectedValue, T newValue) noexcept 8036: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8036: bool testAndSetRelease(T expectedValue, T newValue) noexcept 8036: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8036: bool testAndSetOrdered(T expectedValue, T newValue) noexcept 8036: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8036: 8036: bool testAndSetRelaxed(T expectedValue, T newValue, T ¤tValue) noexcept 8036: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetAcquire(T expectedValue, T newValue, T ¤tValue) noexcept 8036: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetRelease(T expectedValue, T newValue, T ¤tValue) noexcept 8036: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetOrdered(T expectedValue, T newValue, T ¤tValue) noexcept 8036: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8036: 8036: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8036: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8036: 8036: T fetchAndStoreRelaxed(T newValue) noexcept 8036: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8036: T fetchAndStoreAcquire(T newValue) noexcept 8036: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8036: T fetchAndStoreRelease(T newValue) noexcept 8036: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8036: T fetchAndStoreOrdered(T newValue) noexcept 8036: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8036: 8036: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8036: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8036: 8036: T fetchAndAddRelaxed(T valueToAdd) noexcept 8036: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8036: T fetchAndAddAcquire(T valueToAdd) noexcept 8036: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8036: T fetchAndAddRelease(T valueToAdd) noexcept 8036: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8036: T fetchAndAddOrdered(T valueToAdd) noexcept 8036: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8036: 8036: T fetchAndSubRelaxed(T valueToAdd) noexcept 8036: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8036: T fetchAndSubAcquire(T valueToAdd) noexcept 8036: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8036: T fetchAndSubRelease(T valueToAdd) noexcept 8036: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8036: T fetchAndSubOrdered(T valueToAdd) noexcept 8036: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8036: 8036: T fetchAndAndRelaxed(T valueToAdd) noexcept 8036: { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); } 8036: T fetchAndAndAcquire(T valueToAdd) noexcept 8036: { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); } 8036: T fetchAndAndRelease(T valueToAdd) noexcept 8036: { return Ops::fetchAndAndRelease(_q_value, valueToAdd); } 8036: T fetchAndAndOrdered(T valueToAdd) noexcept 8036: { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); } 8036: 8036: T fetchAndOrRelaxed(T valueToAdd) noexcept 8036: { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); } 8036: T fetchAndOrAcquire(T valueToAdd) noexcept 8036: { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); } 8036: T fetchAndOrRelease(T valueToAdd) noexcept 8036: { return Ops::fetchAndOrRelease(_q_value, valueToAdd); } 8036: T fetchAndOrOrdered(T valueToAdd) noexcept 8036: { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); } 8036: 8036: T fetchAndXorRelaxed(T valueToAdd) noexcept 8036: { return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); } 8036: T fetchAndXorAcquire(T valueToAdd) noexcept 8036: { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); } 8036: T fetchAndXorRelease(T valueToAdd) noexcept 8036: { return Ops::fetchAndXorRelease(_q_value, valueToAdd); } 8036: T fetchAndXorOrdered(T valueToAdd) noexcept 8036: { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); } 8036: 8036: T operator++() noexcept 8036: { return fetchAndAddOrdered(1) + 1; } 8036: T operator++(int) noexcept 8036: { return fetchAndAddOrdered(1); } 8036: T operator--() noexcept 8036: { return fetchAndSubOrdered(1) - 1; } 8036: T operator--(int) noexcept 8036: { return fetchAndSubOrdered(1); } 8036: 8036: T operator+=(T v) noexcept 8036: { return fetchAndAddOrdered(v) + v; } 8036: T operator-=(T v) noexcept 8036: { return fetchAndSubOrdered(v) - v; } 8036: T operator&=(T v) noexcept 8036: { return fetchAndAndOrdered(v) & v; } 8036: T operator|=(T v) noexcept 8036: { return fetchAndOrOrdered(v) | v; } 8036: T operator^=(T v) noexcept 8036: { return fetchAndXorOrdered(v) ^ v; } 8036: 8036: 8036: 8036: QBasicAtomicInteger() = default; 8036: constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} 8036: QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; 8036: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; 8036: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; 8036: 8036: }; 8036: typedef QBasicAtomicInteger QBasicAtomicInt; 8036: 8036: template 8036: class QBasicAtomicPointer 8036: { 8036: public: 8036: typedef X *Type; 8036: typedef QAtomicOps Ops; 8036: typedef typename Ops::Type AtomicType; 8036: 8036: AtomicType _q_value; 8036: 8036: Type load() const noexcept { return Ops::load(_q_value); } 8036: void store(Type newValue) noexcept { Ops::store(_q_value, newValue); } 8036: operator Type() const noexcept { return loadAcquire(); } 8036: Type operator=(Type newValue) noexcept { storeRelease(newValue); return newValue; } 8036: 8036: 8036: Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8036: void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8036: 8036: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8036: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8036: 8036: bool testAndSetRelaxed(Type expectedValue, Type newValue) noexcept 8036: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8036: bool testAndSetAcquire(Type expectedValue, Type newValue) noexcept 8036: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8036: bool testAndSetRelease(Type expectedValue, Type newValue) noexcept 8036: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8036: bool testAndSetOrdered(Type expectedValue, Type newValue) noexcept 8036: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8036: 8036: bool testAndSetRelaxed(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8036: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetAcquire(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8036: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetRelease(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8036: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8036: bool testAndSetOrdered(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8036: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8036: 8036: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8036: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8036: 8036: Type fetchAndStoreRelaxed(Type newValue) noexcept 8036: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8036: Type fetchAndStoreAcquire(Type newValue) noexcept 8036: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8036: Type fetchAndStoreRelease(Type newValue) noexcept 8036: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8036: Type fetchAndStoreOrdered(Type newValue) noexcept 8036: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8036: 8036: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8036: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8036: 8036: Type fetchAndAddRelaxed(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8036: Type fetchAndAddAcquire(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8036: Type fetchAndAddRelease(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8036: Type fetchAndAddOrdered(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8036: 8036: Type fetchAndSubRelaxed(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8036: Type fetchAndSubAcquire(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8036: Type fetchAndSubRelease(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8036: Type fetchAndSubOrdered(qptrdiff valueToAdd) noexcept 8036: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8036: 8036: Type operator++() noexcept 8036: { return fetchAndAddOrdered(1) + 1; } 8036: Type operator++(int) noexcept 8036: { return fetchAndAddOrdered(1); } 8036: Type operator--() noexcept 8036: { return fetchAndSubOrdered(1) - 1; } 8036: Type operator--(int) noexcept 8036: { return fetchAndSubOrdered(1); } 8036: Type operator+=(qptrdiff valueToAdd) noexcept 8036: { return fetchAndAddOrdered(valueToAdd) + valueToAdd; } 8036: Type operator-=(qptrdiff valueToSub) noexcept 8036: { return fetchAndSubOrdered(valueToSub) - valueToSub; } 8036: 8036: 8036: QBasicAtomicPointer() = default; 8036: constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} 8036: QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; 8036: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; 8036: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 329 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 329 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 2 3 4 8036: 8036: 8036: 8036: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: 8036: 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wextra" 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: 8036: 8036: 8036: template 8036: class QAtomicInteger : public QBasicAtomicInteger 8036: { 8036: public: 8036: 8036: 8036: constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline QAtomicInteger(const QAtomicInteger &other) noexcept 8036: 8036: : QBasicAtomicInteger() 8036: 8036: { 8036: this->storeRelease(other.loadAcquire()); 8036: } 8036: 8036: inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept 8036: { 8036: this->storeRelease(other.loadAcquire()); 8036: return *this; 8036: } 8036: # 151 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: }; 8036: 8036: class QAtomicInt : public QAtomicInteger 8036: { 8036: public: 8036: 8036: 8036: 8036: 8036: constexpr 8036: 8036: QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} 8036: }; 8036: 8036: 8036: template 8036: class QAtomicPointer : public QBasicAtomicPointer 8036: { 8036: public: 8036: 8036: constexpr QAtomicPointer(T *value = 0) noexcept : QBasicAtomicPointer(value) {} 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline QAtomicPointer(const QAtomicPointer &other) noexcept 8036: 8036: : QBasicAtomicPointer() 8036: 8036: { 8036: this->storeRelease(other.loadAcquire()); 8036: } 8036: 8036: inline QAtomicPointer &operator=(const QAtomicPointer &other) noexcept 8036: { 8036: this->storeRelease(other.loadAcquire()); 8036: return *this; 8036: } 8036: # 222 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: }; 8036: 8036: 8036: # 224 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 224 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: 8036: # 236 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: template 8036: inline void qAtomicAssign(T *&d, T *x) 8036: { 8036: if (d == x) 8036: return; 8036: x->ref.ref(); 8036: if (!d->ref.deref()) 8036: delete d; 8036: d = x; 8036: } 8036: # 255 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8036: template 8036: inline void qAtomicDetach(T *&d) 8036: { 8036: if (d->ref.load() == 1) 8036: return; 8036: T *x = d; 8036: d = new T(*d); 8036: if (!x->ref.deref()) 8036: delete x; 8036: } 8036: 8036: 8036: # 1159 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobalstatic.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobalstatic.h" 2 3 4 8036: 8036: 8036: 8036: namespace QtGlobalStatic { 8036: enum GuardValues { 8036: Destroyed = -2, 8036: Initialized = -1, 8036: Uninitialized = 0, 8036: Initializing = 1 8036: }; 8036: } 8036: # 127 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8036: template 8036: struct QGlobalStatic 8036: { 8036: typedef T Type; 8036: 8036: bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } 8036: bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } 8036: operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } 8036: Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } 8036: Type *operator->() 8036: { 8036: do { } while ((false) && (!isDestroyed())); 8036: return innerFunction(); 8036: } 8036: Type &operator*() 8036: { 8036: do { } while ((false) && (!isDestroyed())); 8036: return *innerFunction(); 8036: } 8036: }; 8036: # 161 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8036: 8036: # 1160 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnumeric.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnumeric.h" 3 4 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) bool qIsInf(double d); 8036: __attribute__((visibility("default"))) bool qIsNaN(double d); 8036: __attribute__((visibility("default"))) bool qIsFinite(double d); 8036: __attribute__((visibility("default"))) bool qIsInf(float f); 8036: __attribute__((visibility("default"))) bool qIsNaN(float f); 8036: __attribute__((visibility("default"))) bool qIsFinite(float f); 8036: __attribute__((visibility("default"))) double qSNaN(); 8036: __attribute__((visibility("default"))) double qQNaN(); 8036: __attribute__((visibility("default"))) double qInf(); 8036: 8036: __attribute__((visibility("default"))) quint32 qFloatDistance(float a, float b); 8036: __attribute__((visibility("default"))) quint64 qFloatDistance(double a, double b); 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1161 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qversiontagging.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8036: 8036: # 88 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8036: 8036: # 1162 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qchar.h" 2 3 4 8036: 8036: 8036: 8036: 8036: class QString; 8036: 8036: struct QLatin1Char 8036: { 8036: public: 8036: constexpr inline explicit QLatin1Char(char c) noexcept : ch(c) {} 8036: constexpr inline char toLatin1() const noexcept { return ch; } 8036: constexpr inline ushort unicode() const noexcept { return ushort(uchar(ch)); } 8036: 8036: private: 8036: char ch; 8036: }; 8036: 8036: 8036: class __attribute__((visibility("default"))) QChar { 8036: public: 8036: enum SpecialCharacter { 8036: Null = 0x0000, 8036: Tabulation = 0x0009, 8036: LineFeed = 0x000a, 8036: CarriageReturn = 0x000d, 8036: Space = 0x0020, 8036: Nbsp = 0x00a0, 8036: SoftHyphen = 0x00ad, 8036: ReplacementCharacter = 0xfffd, 8036: ObjectReplacementCharacter = 0xfffc, 8036: ByteOrderMark = 0xfeff, 8036: ByteOrderSwapped = 0xfffe, 8036: ParagraphSeparator = 0x2029, 8036: LineSeparator = 0x2028, 8036: LastValidCodePoint = 0x10ffff 8036: }; 8036: 8036: constexpr QChar() noexcept : ucs(0) {} 8036: constexpr QChar(ushort rc) noexcept : ucs(rc) {} 8036: constexpr QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {} 8036: constexpr QChar(short rc) noexcept : ucs(ushort(rc)) {} 8036: constexpr QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8036: constexpr QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8036: constexpr QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} 8036: constexpr QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} 8036: # 98 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qchar.h" 3 4 8036: enum Category 8036: { 8036: Mark_NonSpacing, 8036: Mark_SpacingCombining, 8036: Mark_Enclosing, 8036: 8036: Number_DecimalDigit, 8036: Number_Letter, 8036: Number_Other, 8036: 8036: Separator_Space, 8036: Separator_Line, 8036: Separator_Paragraph, 8036: 8036: Other_Control, 8036: Other_Format, 8036: Other_Surrogate, 8036: Other_PrivateUse, 8036: Other_NotAssigned, 8036: 8036: Letter_Uppercase, 8036: Letter_Lowercase, 8036: Letter_Titlecase, 8036: Letter_Modifier, 8036: Letter_Other, 8036: 8036: Punctuation_Connector, 8036: Punctuation_Dash, 8036: Punctuation_Open, 8036: Punctuation_Close, 8036: Punctuation_InitialQuote, 8036: Punctuation_FinalQuote, 8036: Punctuation_Other, 8036: 8036: Symbol_Math, 8036: Symbol_Currency, 8036: Symbol_Modifier, 8036: Symbol_Other 8036: }; 8036: 8036: enum Script 8036: { 8036: Script_Unknown, 8036: Script_Inherited, 8036: Script_Common, 8036: 8036: Script_Latin, 8036: Script_Greek, 8036: Script_Cyrillic, 8036: Script_Armenian, 8036: Script_Hebrew, 8036: Script_Arabic, 8036: Script_Syriac, 8036: Script_Thaana, 8036: Script_Devanagari, 8036: Script_Bengali, 8036: Script_Gurmukhi, 8036: Script_Gujarati, 8036: Script_Oriya, 8036: Script_Tamil, 8036: Script_Telugu, 8036: Script_Kannada, 8036: Script_Malayalam, 8036: Script_Sinhala, 8036: Script_Thai, 8036: Script_Lao, 8036: Script_Tibetan, 8036: Script_Myanmar, 8036: Script_Georgian, 8036: Script_Hangul, 8036: Script_Ethiopic, 8036: Script_Cherokee, 8036: Script_CanadianAboriginal, 8036: Script_Ogham, 8036: Script_Runic, 8036: Script_Khmer, 8036: Script_Mongolian, 8036: Script_Hiragana, 8036: Script_Katakana, 8036: Script_Bopomofo, 8036: Script_Han, 8036: Script_Yi, 8036: Script_OldItalic, 8036: Script_Gothic, 8036: Script_Deseret, 8036: Script_Tagalog, 8036: Script_Hanunoo, 8036: Script_Buhid, 8036: Script_Tagbanwa, 8036: Script_Coptic, 8036: 8036: 8036: Script_Limbu, 8036: Script_TaiLe, 8036: Script_LinearB, 8036: Script_Ugaritic, 8036: Script_Shavian, 8036: Script_Osmanya, 8036: Script_Cypriot, 8036: Script_Braille, 8036: 8036: 8036: Script_Buginese, 8036: Script_NewTaiLue, 8036: Script_Glagolitic, 8036: Script_Tifinagh, 8036: Script_SylotiNagri, 8036: Script_OldPersian, 8036: Script_Kharoshthi, 8036: 8036: 8036: Script_Balinese, 8036: Script_Cuneiform, 8036: Script_Phoenician, 8036: Script_PhagsPa, 8036: Script_Nko, 8036: 8036: 8036: Script_Sundanese, 8036: Script_Lepcha, 8036: Script_OlChiki, 8036: Script_Vai, 8036: Script_Saurashtra, 8036: Script_KayahLi, 8036: Script_Rejang, 8036: Script_Lycian, 8036: Script_Carian, 8036: Script_Lydian, 8036: Script_Cham, 8036: 8036: 8036: Script_TaiTham, 8036: Script_TaiViet, 8036: Script_Avestan, 8036: Script_EgyptianHieroglyphs, 8036: Script_Samaritan, 8036: Script_Lisu, 8036: Script_Bamum, 8036: Script_Javanese, 8036: Script_MeeteiMayek, 8036: Script_ImperialAramaic, 8036: Script_OldSouthArabian, 8036: Script_InscriptionalParthian, 8036: Script_InscriptionalPahlavi, 8036: Script_OldTurkic, 8036: Script_Kaithi, 8036: 8036: 8036: Script_Batak, 8036: Script_Brahmi, 8036: Script_Mandaic, 8036: 8036: 8036: Script_Chakma, 8036: Script_MeroiticCursive, 8036: Script_MeroiticHieroglyphs, 8036: Script_Miao, 8036: Script_Sharada, 8036: Script_SoraSompeng, 8036: Script_Takri, 8036: 8036: 8036: Script_CaucasianAlbanian, 8036: Script_BassaVah, 8036: Script_Duployan, 8036: Script_Elbasan, 8036: Script_Grantha, 8036: Script_PahawhHmong, 8036: Script_Khojki, 8036: Script_LinearA, 8036: Script_Mahajani, 8036: Script_Manichaean, 8036: Script_MendeKikakui, 8036: Script_Modi, 8036: Script_Mro, 8036: Script_OldNorthArabian, 8036: Script_Nabataean, 8036: Script_Palmyrene, 8036: Script_PauCinHau, 8036: Script_OldPermic, 8036: Script_PsalterPahlavi, 8036: Script_Siddham, 8036: Script_Khudawadi, 8036: Script_Tirhuta, 8036: Script_WarangCiti, 8036: 8036: 8036: Script_Ahom, 8036: Script_AnatolianHieroglyphs, 8036: Script_Hatran, 8036: Script_Multani, 8036: Script_OldHungarian, 8036: Script_SignWriting, 8036: 8036: ScriptCount 8036: }; 8036: 8036: enum Direction 8036: { 8036: DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, 8036: DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, 8036: DirLRI, DirRLI, DirFSI, DirPDI 8036: }; 8036: 8036: enum Decomposition 8036: { 8036: NoDecomposition, 8036: Canonical, 8036: Font, 8036: NoBreak, 8036: Initial, 8036: Medial, 8036: Final, 8036: Isolated, 8036: Circle, 8036: Super, 8036: Sub, 8036: Vertical, 8036: Wide, 8036: Narrow, 8036: Small, 8036: Square, 8036: Compat, 8036: Fraction 8036: }; 8036: 8036: enum JoiningType { 8036: Joining_None, 8036: Joining_Causing, 8036: Joining_Dual, 8036: Joining_Right, 8036: Joining_Left, 8036: Joining_Transparent 8036: }; 8036: 8036: 8036: enum Joining 8036: { 8036: OtherJoining, Dual, Right, Center 8036: }; 8036: 8036: 8036: enum CombiningClass 8036: { 8036: Combining_BelowLeftAttached = 200, 8036: Combining_BelowAttached = 202, 8036: Combining_BelowRightAttached = 204, 8036: Combining_LeftAttached = 208, 8036: Combining_RightAttached = 210, 8036: Combining_AboveLeftAttached = 212, 8036: Combining_AboveAttached = 214, 8036: Combining_AboveRightAttached = 216, 8036: 8036: Combining_BelowLeft = 218, 8036: Combining_Below = 220, 8036: Combining_BelowRight = 222, 8036: Combining_Left = 224, 8036: Combining_Right = 226, 8036: Combining_AboveLeft = 228, 8036: Combining_Above = 230, 8036: Combining_AboveRight = 232, 8036: 8036: Combining_DoubleBelow = 233, 8036: Combining_DoubleAbove = 234, 8036: Combining_IotaSubscript = 240 8036: }; 8036: 8036: enum UnicodeVersion { 8036: Unicode_Unassigned, 8036: Unicode_1_1, 8036: Unicode_2_0, 8036: Unicode_2_1_2, 8036: Unicode_3_0, 8036: Unicode_3_1, 8036: Unicode_3_2, 8036: Unicode_4_0, 8036: Unicode_4_1, 8036: Unicode_5_0, 8036: Unicode_5_1, 8036: Unicode_5_2, 8036: Unicode_6_0, 8036: Unicode_6_1, 8036: Unicode_6_2, 8036: Unicode_6_3, 8036: Unicode_7_0, 8036: Unicode_8_0 8036: }; 8036: 8036: 8036: inline Category category() const noexcept { return QChar::category(ucs); } 8036: inline Direction direction() const noexcept { return QChar::direction(ucs); } 8036: inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); } 8036: 8036: inline Joining joining() const noexcept 8036: { 8036: switch (QChar::joiningType(ucs)) { 8036: case QChar::Joining_Causing: return QChar::Center; 8036: case QChar::Joining_Dual: return QChar::Dual; 8036: case QChar::Joining_Right: return QChar::Right; 8036: case QChar::Joining_None: 8036: case QChar::Joining_Left: 8036: case QChar::Joining_Transparent: 8036: default: return QChar::OtherJoining; 8036: } 8036: } 8036: 8036: inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); } 8036: 8036: inline QChar mirroredChar() const noexcept { return QChar::mirroredChar(ucs); } 8036: inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); } 8036: 8036: QString decomposition() const; 8036: inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); } 8036: 8036: inline int digitValue() const noexcept { return QChar::digitValue(ucs); } 8036: inline QChar toLower() const noexcept { return QChar::toLower(ucs); } 8036: inline QChar toUpper() const noexcept { return QChar::toUpper(ucs); } 8036: inline QChar toTitleCase() const noexcept { return QChar::toTitleCase(ucs); } 8036: inline QChar toCaseFolded() const noexcept { return QChar::toCaseFolded(ucs); } 8036: 8036: inline Script script() const noexcept { return QChar::script(ucs); } 8036: 8036: inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); } 8036: 8036: 8036: 8036: 8036: constexpr inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); } 8036: constexpr inline ushort unicode() const noexcept { return ucs; } 8036: inline ushort &unicode() noexcept { return ucs; } 8036: 8036: 8036: 8036: 8036: 8036: static constexpr inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); } 8036: 8036: constexpr inline bool isNull() const noexcept { return ucs == 0; } 8036: 8036: inline bool isPrint() const noexcept { return QChar::isPrint(ucs); } 8036: constexpr inline bool isSpace() const noexcept { return QChar::isSpace(ucs); } 8036: inline bool isMark() const noexcept { return QChar::isMark(ucs); } 8036: inline bool isPunct() const noexcept { return QChar::isPunct(ucs); } 8036: inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); } 8036: constexpr inline bool isLetter() const noexcept { return QChar::isLetter(ucs); } 8036: constexpr inline bool isNumber() const noexcept { return QChar::isNumber(ucs); } 8036: constexpr inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); } 8036: constexpr inline bool isDigit() const noexcept { return QChar::isDigit(ucs); } 8036: constexpr inline bool isLower() const noexcept { return QChar::isLower(ucs); } 8036: constexpr inline bool isUpper() const noexcept { return QChar::isUpper(ucs); } 8036: constexpr inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); } 8036: 8036: constexpr inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); } 8036: constexpr inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); } 8036: constexpr inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); } 8036: constexpr inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); } 8036: 8036: constexpr inline uchar cell() const noexcept { return uchar(ucs & 0xff); } 8036: constexpr inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); } 8036: inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); } 8036: inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } 8036: 8036: static constexpr inline bool isNonCharacter(uint ucs4) noexcept 8036: { 8036: return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe); 8036: } 8036: static constexpr inline bool isHighSurrogate(uint ucs4) noexcept 8036: { 8036: return ((ucs4 & 0xfffffc00) == 0xd800); 8036: } 8036: static constexpr inline bool isLowSurrogate(uint ucs4) noexcept 8036: { 8036: return ((ucs4 & 0xfffffc00) == 0xdc00); 8036: } 8036: static constexpr inline bool isSurrogate(uint ucs4) noexcept 8036: { 8036: return (ucs4 - 0xd800u < 2048u); 8036: } 8036: static constexpr inline bool requiresSurrogates(uint ucs4) noexcept 8036: { 8036: return (ucs4 >= 0x10000); 8036: } 8036: static constexpr inline uint surrogateToUcs4(ushort high, ushort low) noexcept 8036: { 8036: return (uint(high)<<10) + low - 0x35fdc00; 8036: } 8036: static constexpr inline uint surrogateToUcs4(QChar high, QChar low) noexcept 8036: { 8036: return surrogateToUcs4(high.ucs, low.ucs); 8036: } 8036: static constexpr inline ushort highSurrogate(uint ucs4) noexcept 8036: { 8036: return ushort((ucs4>>10) + 0xd7c0); 8036: } 8036: static constexpr inline ushort lowSurrogate(uint ucs4) noexcept 8036: { 8036: return ushort(ucs4%0x400 + 0xdc00); 8036: } 8036: 8036: static Category category(uint ucs4) noexcept __attribute__((const)); 8036: static Direction direction(uint ucs4) noexcept __attribute__((const)); 8036: static JoiningType joiningType(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static Joining joining(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static unsigned char combiningClass(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static uint mirroredChar(uint ucs4) noexcept __attribute__((const)); 8036: static bool hasMirrored(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static QString decomposition(uint ucs4); 8036: static Decomposition decompositionTag(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static int digitValue(uint ucs4) noexcept __attribute__((const)); 8036: static uint toLower(uint ucs4) noexcept __attribute__((const)); 8036: static uint toUpper(uint ucs4) noexcept __attribute__((const)); 8036: static uint toTitleCase(uint ucs4) noexcept __attribute__((const)); 8036: static uint toCaseFolded(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static Script script(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static UnicodeVersion unicodeVersion(uint ucs4) noexcept __attribute__((const)); 8036: 8036: static UnicodeVersion currentUnicodeVersion() noexcept __attribute__((const)); 8036: 8036: static bool isPrint(uint ucs4) noexcept __attribute__((const)); 8036: static constexpr inline bool isSpace(uint ucs4) noexcept __attribute__((const)) 8036: { 8036: 8036: return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09) 8036: || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4))); 8036: } 8036: static bool isMark(uint ucs4) noexcept __attribute__((const)); 8036: static bool isPunct(uint ucs4) noexcept __attribute__((const)); 8036: static bool isSymbol(uint ucs4) noexcept __attribute__((const)); 8036: static constexpr inline bool isLetter(uint ucs4) noexcept __attribute__((const)) 8036: { 8036: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8036: || (ucs4 > 127 && QChar::isLetter_helper(ucs4)); 8036: } 8036: static constexpr inline bool isNumber(uint ucs4) noexcept __attribute__((const)) 8036: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); } 8036: static constexpr inline bool isLetterOrNumber(uint ucs4) noexcept __attribute__((const)) 8036: { 8036: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8036: || (ucs4 >= '0' && ucs4 <= '9') 8036: || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4)); 8036: } 8036: static constexpr inline bool isDigit(uint ucs4) noexcept __attribute__((const)) 8036: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); } 8036: static constexpr inline bool isLower(uint ucs4) noexcept __attribute__((const)) 8036: { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); } 8036: static constexpr inline bool isUpper(uint ucs4) noexcept __attribute__((const)) 8036: { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); } 8036: static constexpr inline bool isTitleCase(uint ucs4) noexcept __attribute__((const)) 8036: { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; } 8036: 8036: private: 8036: static bool isSpace_helper(uint ucs4) noexcept __attribute__((const)); 8036: static bool isLetter_helper(uint ucs4) noexcept __attribute__((const)); 8036: static bool isNumber_helper(uint ucs4) noexcept __attribute__((const)); 8036: static bool isLetterOrNumber_helper(uint ucs4) noexcept __attribute__((const)); 8036: 8036: 8036: QChar(char c) noexcept; 8036: QChar(uchar c) noexcept; 8036: 8036: 8036: friend constexpr bool operator==(QChar, QChar) noexcept; 8036: friend constexpr bool operator< (QChar, QChar) noexcept; 8036: ushort ucs; 8036: }; 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QChar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QChar >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QChar) }; static inline const char *name() { return "QChar"; } }; 8036: 8036: constexpr inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; } 8036: constexpr inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; } 8036: 8036: constexpr inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); } 8036: constexpr inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); } 8036: constexpr inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); } 8036: constexpr inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); } 8036: 8036: 8036: constexpr inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); } 8036: constexpr inline bool operator< (QChar, std::nullptr_t) noexcept { return false; } 8036: constexpr inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); } 8036: constexpr inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); } 8036: 8036: constexpr inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); } 8036: constexpr inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); } 8036: constexpr inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); } 8036: constexpr inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); } 8036: 8036: constexpr inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); } 8036: constexpr inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); } 8036: constexpr inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); } 8036: constexpr inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); } 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, QChar); 8036: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QChar &); 8036: 8036: 8036: 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiterator.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8036: 8036: # 182 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8036: 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: 8036: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: 8036: 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace QAlgorithmsPrivate { 8036: 8036: 8036: template 8036: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8036: template 8036: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); 8036: 8036: template 8036: void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8036: template 8036: inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); 8036: 8036: template 8036: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8036: template 8036: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8036: template 8036: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8036: 8036: 8036: } 8036: 8036: 8036: template 8036: inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) 8036: { 8036: while (begin != end) 8036: *dest++ = *begin++; 8036: return dest; 8036: } 8036: 8036: template 8036: inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) 8036: { 8036: while (begin != end) 8036: *--dest = *--end; 8036: return dest; 8036: } 8036: 8036: template 8036: inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) 8036: { 8036: for (; first1 != last1; ++first1, ++first2) 8036: if (!(*first1 == *first2)) 8036: return false; 8036: return true; 8036: } 8036: 8036: template 8036: inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) 8036: { 8036: for (; first != last; ++first) 8036: *first = val; 8036: } 8036: 8036: template 8036: inline void qFill(Container &container, const T &val) 8036: { 8036: qFill(container.begin(), container.end(), val); 8036: } 8036: 8036: template 8036: inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) 8036: { 8036: while (first != last && !(*first == val)) 8036: ++first; 8036: return first; 8036: } 8036: 8036: template 8036: inline typename Container::const_iterator qFind(const Container &container, const T &val) 8036: { 8036: return qFind(container.constBegin(), container.constEnd(), val); 8036: } 8036: 8036: template 8036: inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) 8036: { 8036: for (; first != last; ++first) 8036: if (*first == value) 8036: ++n; 8036: } 8036: 8036: template 8036: inline void qCount(const Container &container, const T &value, Size &n) 8036: { 8036: qCount(container.constBegin(), container.constEnd(), value, n); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class qLess 8036: { 8036: public: 8036: inline bool operator()(const T &t1, const T &t2) const 8036: { 8036: return (t1 < t2); 8036: } 8036: }; 8036: 8036: template 8036: class qGreater 8036: { 8036: public: 8036: inline bool operator()(const T &t1, const T &t2) const 8036: { 8036: return (t2 < t1); 8036: } 8036: }; 8036: 8036: 8036: template 8036: inline void qSort(RandomAccessIterator start, RandomAccessIterator end) 8036: { 8036: if (start != end) 8036: QAlgorithmsPrivate::qSortHelper(start, end, *start); 8036: } 8036: 8036: template 8036: inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8036: { 8036: if (start != end) 8036: QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); 8036: } 8036: 8036: template 8036: inline void qSort(Container &c) 8036: { 8036: 8036: 8036: 8036: 8036: if (!c.empty()) 8036: QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); 8036: } 8036: 8036: template 8036: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) 8036: { 8036: if (start != end) 8036: QAlgorithmsPrivate::qStableSortHelper(start, end, *start); 8036: } 8036: 8036: template 8036: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8036: { 8036: if (start != end) 8036: QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); 8036: } 8036: 8036: template 8036: inline void qStableSort(Container &c) 8036: { 8036: 8036: 8036: 8036: 8036: if (!c.empty()) 8036: QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); 8036: } 8036: 8036: template 8036: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8036: { 8036: 8036: 8036: 8036: RandomAccessIterator middle; 8036: int n = end - begin; 8036: int half; 8036: 8036: while (n > 0) { 8036: half = n >> 1; 8036: middle = begin + half; 8036: if (*middle < value) { 8036: begin = middle + 1; 8036: n -= half + 1; 8036: } else { 8036: n = half; 8036: } 8036: } 8036: return begin; 8036: } 8036: 8036: template 8036: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); 8036: } 8036: 8036: template 8036: typename Container::const_iterator qLowerBound(const Container &container, const T &value) 8036: { 8036: return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8036: } 8036: 8036: template 8036: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8036: { 8036: 8036: RandomAccessIterator middle; 8036: int n = end - begin; 8036: int half; 8036: 8036: while (n > 0) { 8036: half = n >> 1; 8036: middle = begin + half; 8036: if (value < *middle) { 8036: n = half; 8036: } else { 8036: begin = middle + 1; 8036: n -= half + 1; 8036: } 8036: } 8036: return begin; 8036: } 8036: 8036: template 8036: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); 8036: } 8036: 8036: template 8036: typename Container::const_iterator qUpperBound(const Container &container, const T &value) 8036: { 8036: return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8036: } 8036: 8036: template 8036: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8036: { 8036: 8036: RandomAccessIterator it = qLowerBound(begin, end, value); 8036: 8036: if (it == end || value < *it) 8036: return end; 8036: 8036: return it; 8036: } 8036: 8036: template 8036: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); 8036: } 8036: 8036: template 8036: typename Container::const_iterator qBinaryFind(const Container &container, const T &value) 8036: { 8036: return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); 8036: } 8036: 8036: 8036: template 8036: void qDeleteAll(ForwardIterator begin, ForwardIterator end) 8036: { 8036: while (begin != end) { 8036: delete *begin; 8036: ++begin; 8036: } 8036: } 8036: 8036: template 8036: inline void qDeleteAll(const Container &c) 8036: { 8036: qDeleteAll(c.begin(), c.end()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: namespace QAlgorithmsPrivate { 8036: 8036: 8036: 8036: template 8036: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) 8036: { 8036: top: 8036: int span = int(end - start); 8036: if (span < 2) 8036: return; 8036: 8036: --end; 8036: RandomAccessIterator low = start, high = end - 1; 8036: RandomAccessIterator pivot = start + span / 2; 8036: 8036: if (lessThan(*end, *start)) 8036: qSwap(*end, *start); 8036: if (span == 2) 8036: return; 8036: 8036: if (lessThan(*pivot, *start)) 8036: qSwap(*pivot, *start); 8036: if (lessThan(*end, *pivot)) 8036: qSwap(*end, *pivot); 8036: if (span == 3) 8036: return; 8036: 8036: qSwap(*pivot, *end); 8036: 8036: while (low < high) { 8036: while (low < high && lessThan(*low, *end)) 8036: ++low; 8036: 8036: while (high > low && lessThan(*end, *high)) 8036: --high; 8036: 8036: if (low < high) { 8036: qSwap(*low, *high); 8036: ++low; 8036: --high; 8036: } else { 8036: break; 8036: } 8036: } 8036: 8036: if (lessThan(*low, *end)) 8036: ++low; 8036: 8036: qSwap(*end, *low); 8036: qSortHelper(start, low, t, lessThan); 8036: 8036: start = low + 1; 8036: ++end; 8036: goto top; 8036: } 8036: 8036: template 8036: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8036: { 8036: qSortHelper(begin, end, dummy, qLess()); 8036: } 8036: 8036: template 8036: void qReverse(RandomAccessIterator begin, RandomAccessIterator end) 8036: { 8036: --end; 8036: while (begin < end) 8036: qSwap(*begin++, *end--); 8036: } 8036: 8036: template 8036: void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) 8036: { 8036: qReverse(begin, middle); 8036: qReverse(middle, end); 8036: qReverse(begin, end); 8036: } 8036: 8036: template 8036: void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) 8036: { 8036: const int len1 = pivot - begin; 8036: const int len2 = end - pivot; 8036: 8036: if (len1 == 0 || len2 == 0) 8036: return; 8036: 8036: if (len1 + len2 == 2) { 8036: if (lessThan(*(begin + 1), *(begin))) 8036: qSwap(*begin, *(begin + 1)); 8036: return; 8036: } 8036: 8036: RandomAccessIterator firstCut; 8036: RandomAccessIterator secondCut; 8036: int len2Half; 8036: if (len1 > len2) { 8036: const int len1Half = len1 / 2; 8036: firstCut = begin + len1Half; 8036: secondCut = qLowerBound(pivot, end, *firstCut, lessThan); 8036: len2Half = secondCut - pivot; 8036: } else { 8036: len2Half = len2 / 2; 8036: secondCut = pivot + len2Half; 8036: firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); 8036: } 8036: 8036: qRotate(firstCut, pivot, secondCut); 8036: const RandomAccessIterator newPivot = firstCut + len2Half; 8036: qMerge(begin, firstCut, newPivot, t, lessThan); 8036: qMerge(newPivot, secondCut, end, t, lessThan); 8036: } 8036: 8036: template 8036: void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) 8036: { 8036: const int span = end - begin; 8036: if (span < 2) 8036: return; 8036: 8036: const RandomAccessIterator middle = begin + span / 2; 8036: qStableSortHelper(begin, middle, t, lessThan); 8036: qStableSortHelper(middle, end, t, lessThan); 8036: qMerge(begin, middle, end, t, lessThan); 8036: } 8036: 8036: template 8036: inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8036: { 8036: qStableSortHelper(begin, end, dummy, qLess()); 8036: } 8036: 8036: template 8036: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: RandomAccessIterator middle; 8036: int n = int(end - begin); 8036: int half; 8036: 8036: while (n > 0) { 8036: half = n >> 1; 8036: middle = begin + half; 8036: if (lessThan(*middle, value)) { 8036: begin = middle + 1; 8036: n -= half + 1; 8036: } else { 8036: n = half; 8036: } 8036: } 8036: return begin; 8036: } 8036: 8036: 8036: template 8036: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: RandomAccessIterator middle; 8036: int n = end - begin; 8036: int half; 8036: 8036: while (n > 0) { 8036: half = n >> 1; 8036: middle = begin + half; 8036: if (lessThan(value, *middle)) { 8036: n = half; 8036: } else { 8036: begin = middle + 1; 8036: n -= half + 1; 8036: } 8036: } 8036: return begin; 8036: } 8036: 8036: template 8036: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8036: { 8036: RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); 8036: 8036: if (it == end || lessThan(value, *it)) 8036: return end; 8036: 8036: return it; 8036: } 8036: # 536 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzs(quint16 v) noexcept 8036: { 8036: 8036: 8036: 8036: return __builtin_ctz(v); 8036: 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzs(quint16 v) noexcept 8036: { 8036: 8036: 8036: 8036: return __builtin_clz(v) - 16U; 8036: 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctz(quint32 v) noexcept 8036: { 8036: return __builtin_ctz(v); 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_clz(quint32 v) noexcept 8036: { 8036: return __builtin_clz(v); 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzll(quint64 v) noexcept 8036: { 8036: return __builtin_ctzll(v); 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzll(quint64 v) noexcept 8036: { 8036: return __builtin_clzll(v); 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint32 v) noexcept 8036: { 8036: return __builtin_popcount(v); 8036: } 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint8 v) noexcept 8036: { 8036: return __builtin_popcount(v); 8036: } 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint16 v) noexcept 8036: { 8036: return __builtin_popcount(v); 8036: } 8036: 8036: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcountll(quint64 v) noexcept 8036: { 8036: return __builtin_popcountll(v); 8036: } 8036: # 681 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: __attribute__((const)) constexpr inline uint qPopulationCount(quint32 v) noexcept 8036: { 8036: 8036: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: __attribute__((const)) constexpr inline uint qPopulationCount(quint8 v) noexcept 8036: { 8036: 8036: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8036: 8036: 8036: 8036: 8036: } 8036: 8036: __attribute__((const)) constexpr inline uint qPopulationCount(quint16 v) noexcept 8036: { 8036: 8036: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: __attribute__((const)) constexpr inline uint qPopulationCount(quint64 v) noexcept 8036: { 8036: 8036: return QAlgorithmsPrivate::qt_builtin_popcountll(v); 8036: # 730 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: __attribute__((const)) constexpr inline uint qPopulationCount(long unsigned int v) noexcept 8036: { 8036: return qPopulationCount(static_cast(v)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline uint qCountTrailingZeroBits(quint32 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 32U; 8036: # 758 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: inline uint qCountTrailingZeroBits(quint8 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 8U; 8036: # 773 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: inline uint qCountTrailingZeroBits(quint16 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_ctzs(v) : 16U; 8036: # 789 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: inline uint qCountTrailingZeroBits(quint64 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_ctzll(v) : 64; 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: inline uint qCountTrailingZeroBits(unsigned long v) noexcept 8036: { 8036: return qCountTrailingZeroBits(QIntegerForSizeof::Unsigned(v)); 8036: } 8036: 8036: inline uint qCountLeadingZeroBits(quint32 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_clz(v) : 32U; 8036: # 820 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: inline uint qCountLeadingZeroBits(quint8 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: inline uint qCountLeadingZeroBits(quint16 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: inline uint qCountLeadingZeroBits(quint64 v) noexcept 8036: { 8036: 8036: return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; 8036: # 860 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: } 8036: 8036: inline uint qCountLeadingZeroBits(unsigned long v) noexcept 8036: { 8036: return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); 8036: } 8036: 8036: 8036: # 867 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 867 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8036: 8036: 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qrefcount.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qrefcount.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qrefcount.h" 2 3 4 8036: 8036: 8036: 8036: 8036: namespace QtPrivate 8036: { 8036: 8036: class RefCount 8036: { 8036: public: 8036: inline bool ref() noexcept { 8036: int count = atomic.load(); 8036: 8036: if (count == 0) 8036: return false; 8036: 8036: if (count != -1) 8036: atomic.ref(); 8036: return true; 8036: } 8036: 8036: inline bool deref() noexcept { 8036: int count = atomic.load(); 8036: 8036: if (count == 0) 8036: return false; 8036: 8036: if (count == -1) 8036: return true; 8036: return atomic.deref(); 8036: } 8036: 8036: 8036: bool setSharable(bool sharable) noexcept 8036: { 8036: do { } while ((false) && (!isShared())); 8036: if (sharable) 8036: return atomic.testAndSetRelaxed(0, 1); 8036: else 8036: return atomic.testAndSetRelaxed(1, 0); 8036: } 8036: 8036: bool isSharable() const noexcept 8036: { 8036: 8036: return atomic.load() != 0; 8036: } 8036: 8036: 8036: bool isStatic() const noexcept 8036: { 8036: 8036: return atomic.load() == -1; 8036: } 8036: 8036: bool isShared() const noexcept 8036: { 8036: int count = atomic.load(); 8036: return (count != 1) && (count != 0); 8036: } 8036: 8036: void initializeOwned() noexcept { atomic.store(1); } 8036: void initializeUnsharable() noexcept { atomic.store(0); } 8036: 8036: QBasicAtomicInt atomic; 8036: }; 8036: 8036: } 8036: 8036: 8036: 8036: 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qarraydata.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8036: # 1 "/usr/include/string.h" 1 3 4 8036: # 26 "/usr/include/string.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 27 "/usr/include/string.h" 2 3 4 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 34 "/usr/include/string.h" 2 3 4 8036: # 42 "/usr/include/string.h" 3 4 8036: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 8036: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern void *memmove (void *__dest, const void *__src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: 8036: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 8036: int __c, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern "C++" 8036: { 8036: extern void *memchr (void *__s, int __c, size_t __n) 8036: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern const void *memchr (const void *__s, int __c, size_t __n) 8036: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 8036: memchr (void *__s, int __c, size_t __n) throw () 8036: { 8036: return __builtin_memchr (__s, __c, __n); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 8036: memchr (const void *__s, int __c, size_t __n) throw () 8036: { 8036: return __builtin_memchr (__s, __c, __n); 8036: } 8036: 8036: } 8036: # 98 "/usr/include/string.h" 3 4 8036: extern "C++" void *rawmemchr (void *__s, int __c) 8036: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern "C++" const void *rawmemchr (const void *__s, int __c) 8036: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 8036: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 8036: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: # 121 "/usr/include/string.h" 3 4 8036: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern char *strncpy (char *__restrict __dest, 8036: const char *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 8036: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int strcmp (const char *__s1, const char *__s2) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int strcoll (const char *__s1, const char *__s2) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern size_t strxfrm (char *__restrict __dest, 8036: const char *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8036: 8036: 8036: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 8036: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 8036: 8036: 8036: 8036: 8036: 8036: extern char *strdup (const char *__s) 8036: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *strndup (const char *__string, size_t __n) 8036: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8036: # 203 "/usr/include/string.h" 3 4 8036: extern "C++" 8036: { 8036: extern char *strchr (char *__s, int __c) 8036: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern const char *strchr (const char *__s, int __c) 8036: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: strchr (char *__s, int __c) throw () 8036: { 8036: return __builtin_strchr (__s, __c); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: strchr (const char *__s, int __c) throw () 8036: { 8036: return __builtin_strchr (__s, __c); 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" 8036: { 8036: extern char *strrchr (char *__s, int __c) 8036: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern const char *strrchr (const char *__s, int __c) 8036: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: strrchr (char *__s, int __c) throw () 8036: { 8036: return __builtin_strrchr (__s, __c); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: strrchr (const char *__s, int __c) throw () 8036: { 8036: return __builtin_strrchr (__s, __c); 8036: } 8036: 8036: } 8036: # 260 "/usr/include/string.h" 3 4 8036: extern "C++" char *strchrnul (char *__s, int __c) 8036: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern "C++" const char *strchrnul (const char *__s, int __c) 8036: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: # 272 "/usr/include/string.h" 3 4 8036: extern size_t strcspn (const char *__s, const char *__reject) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern size_t strspn (const char *__s, const char *__accept) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern "C++" 8036: { 8036: extern char *strpbrk (char *__s, const char *__accept) 8036: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: extern const char *strpbrk (const char *__s, const char *__accept) 8036: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: strpbrk (char *__s, const char *__accept) throw () 8036: { 8036: return __builtin_strpbrk (__s, __accept); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: strpbrk (const char *__s, const char *__accept) throw () 8036: { 8036: return __builtin_strpbrk (__s, __accept); 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" 8036: { 8036: extern char *strstr (char *__haystack, const char *__needle) 8036: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: extern const char *strstr (const char *__haystack, const char *__needle) 8036: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: strstr (char *__haystack, const char *__needle) throw () 8036: { 8036: return __builtin_strstr (__haystack, __needle); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: strstr (const char *__haystack, const char *__needle) throw () 8036: { 8036: return __builtin_strstr (__haystack, __needle); 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: extern char *__strtok_r (char *__restrict __s, 8036: const char *__restrict __delim, 8036: char **__restrict __save_ptr) 8036: throw () __attribute__ ((__nonnull__ (2, 3))); 8036: 8036: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 8036: char **__restrict __save_ptr) 8036: throw () __attribute__ ((__nonnull__ (2, 3))); 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 8036: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: extern "C++" const char *strcasestr (const char *__haystack, 8036: const char *__needle) 8036: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: # 368 "/usr/include/string.h" 3 4 8036: extern void *memmem (const void *__haystack, size_t __haystacklen, 8036: const void *__needle, size_t __needlelen) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: 8036: extern void *__mempcpy (void *__restrict __dest, 8036: const void *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern void *mempcpy (void *__restrict __dest, 8036: const void *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern size_t strlen (const char *__s) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern size_t strnlen (const char *__string, size_t __maxlen) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern char *strerror (int __errnum) throw (); 8036: # 420 "/usr/include/string.h" 3 4 8036: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern char *strerror_l (int __errnum, locale_t __l) throw (); 8036: 8036: 8036: 8036: # 1 "/usr/include/strings.h" 1 3 4 8036: # 23 "/usr/include/strings.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 24 "/usr/include/strings.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern void bcopy (const void *__src, void *__dest, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern "C++" 8036: { 8036: extern char *index (char *__s, int __c) 8036: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern const char *index (const char *__s, int __c) 8036: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: index (char *__s, int __c) throw () 8036: { 8036: return __builtin_index (__s, __c); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: index (const char *__s, int __c) throw () 8036: { 8036: return __builtin_index (__s, __c); 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" 8036: { 8036: extern char *rindex (char *__s, int __c) 8036: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: extern const char *rindex (const char *__s, int __c) 8036: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8036: rindex (char *__s, int __c) throw () 8036: { 8036: return __builtin_rindex (__s, __c); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8036: rindex (const char *__s, int __c) throw () 8036: { 8036: return __builtin_rindex (__s, __c); 8036: } 8036: 8036: } 8036: # 104 "/usr/include/strings.h" 3 4 8036: extern int ffs (int __i) throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 8036: __extension__ extern int ffsll (long long int __ll) 8036: throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: extern int strcasecmp (const char *__s1, const char *__s2) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8036: 8036: 8036: 8036: extern int strncasecmp_l (const char *__s1, const char *__s2, 8036: size_t __n, locale_t __loc) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/strings_fortified.h" 1 3 4 8036: # 22 "/usr/include/powerpc64le-linux-gnu/bits/strings_fortified.h" 3 4 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8036: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 8036: { 8036: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8036: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 8036: { 8036: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 8036: } 8036: # 145 "/usr/include/strings.h" 2 3 4 8036: # 432 "/usr/include/string.h" 2 3 4 8036: 8036: 8036: 8036: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern char *strsep (char **__restrict __stringp, 8036: const char *__restrict __delim) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern char *strsignal (int __sig) throw (); 8036: 8036: 8036: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern char *__stpncpy (char *__restrict __dest, 8036: const char *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: extern char *stpncpy (char *__restrict __dest, 8036: const char *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int strverscmp (const char *__s1, const char *__s2) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" char *basename (char *__filename) 8036: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8036: extern "C++" const char *basename (const char *__filename) 8036: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8036: # 494 "/usr/include/string.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/string_fortified.h" 1 3 4 8036: # 30 "/usr/include/powerpc64le-linux-gnu/bits/string_fortified.h" 3 4 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8036: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8036: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 8036: { 8036: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8036: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: # 58 "/usr/include/powerpc64le-linux-gnu/bits/string_fortified.h" 3 4 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8036: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 8036: { 8036: # 71 "/usr/include/powerpc64le-linux-gnu/bits/string_fortified.h" 3 4 8036: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: 8036: 8036: 8036: 8036: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8036: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 8036: { 8036: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 8036: { 8036: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 8036: { 8036: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8036: } 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8036: } 8036: 8036: 8036: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 8036: size_t __destlen) throw (); 8036: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 8036: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 8036: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 8036: return __stpncpy_alias (__dest, __src, __n); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 8036: { 8036: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8036: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8036: 8036: { 8036: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8036: } 8036: # 495 "/usr/include/string.h" 2 3 4 8036: 8036: 8036: 8036: } 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qarraydata.h" 2 3 4 8036: 8036: 8036: 8036: struct __attribute__((visibility("default"))) QArrayData 8036: { 8036: QtPrivate::RefCount ref; 8036: int size; 8036: uint alloc : 31; 8036: uint capacityReserved : 1; 8036: 8036: qptrdiff offset; 8036: 8036: void *data() 8036: { 8036: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8036: ; 8036: return reinterpret_cast(this) + offset; 8036: } 8036: 8036: const void *data() const 8036: { 8036: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8036: ; 8036: return reinterpret_cast(this) + offset; 8036: } 8036: 8036: 8036: 8036: 8036: bool isMutable() const 8036: { 8036: return alloc != 0; 8036: } 8036: 8036: enum AllocationOption { 8036: CapacityReserved = 0x1, 8036: 8036: Unsharable = 0x2, 8036: 8036: RawData = 0x4, 8036: Grow = 0x8, 8036: 8036: Default = 0 8036: }; 8036: 8036: typedef QFlags AllocationOptions; 8036: 8036: size_t detachCapacity(size_t newSize) const 8036: { 8036: if (capacityReserved && newSize < alloc) 8036: return alloc; 8036: return newSize; 8036: } 8036: 8036: AllocationOptions detachFlags() const 8036: { 8036: AllocationOptions result; 8036: if (capacityReserved) 8036: result |= CapacityReserved; 8036: return result; 8036: } 8036: 8036: AllocationOptions cloneFlags() const 8036: { 8036: AllocationOptions result; 8036: if (capacityReserved) 8036: result |= CapacityReserved; 8036: return result; 8036: } 8036: 8036: [[nodiscard]] static QArrayData *allocate(size_t objectSize, size_t alignment, 8036: size_t capacity, AllocationOptions options = Default) noexcept; 8036: [[nodiscard]] static QArrayData *reallocateUnaligned(QArrayData *data, size_t objectSize, 8036: size_t newCapacity, AllocationOptions newOptions = Default) noexcept; 8036: static void deallocate(QArrayData *data, size_t objectSize, 8036: size_t alignment) noexcept; 8036: 8036: static const QArrayData shared_null[2]; 8036: static QArrayData *sharedNull() noexcept { return const_cast(shared_null); } 8036: }; 8036: 8036: constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QArrayData::AllocationOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QArrayData::AllocationOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: template 8036: struct QTypedArrayData 8036: : QArrayData 8036: { 8036: # 202 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8036: typedef T* iterator; 8036: typedef const T* const_iterator; 8036: 8036: 8036: T *data() { return static_cast(QArrayData::data()); } 8036: const T *data() const { return static_cast(QArrayData::data()); } 8036: 8036: iterator begin(iterator = iterator()) { return data(); } 8036: iterator end(iterator = iterator()) { return data() + size; } 8036: const_iterator begin(const_iterator = const_iterator()) const { return data(); } 8036: const_iterator end(const_iterator = const_iterator()) const { return data() + size; } 8036: const_iterator constBegin(const_iterator = const_iterator()) const { return data(); } 8036: const_iterator constEnd(const_iterator = const_iterator()) const { return data() + size; } 8036: 8036: class AlignmentDummy { QArrayData header; T data; }; 8036: 8036: [[nodiscard]] static QTypedArrayData *allocate(size_t capacity, 8036: AllocationOptions options = Default) 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: return static_cast(QArrayData::allocate(sizeof(T), 8036: alignof(AlignmentDummy), capacity, options)); 8036: } 8036: 8036: static QTypedArrayData *reallocateUnaligned(QTypedArrayData *data, size_t capacity, 8036: AllocationOptions options = Default) 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: return static_cast(QArrayData::reallocateUnaligned(data, sizeof(T), 8036: capacity, options)); 8036: } 8036: 8036: static void deallocate(QArrayData *data) 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); 8036: } 8036: 8036: static QTypedArrayData *fromRawData(const T *data, size_t n, 8036: AllocationOptions options = Default) 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: QTypedArrayData *result = allocate(0, options | RawData); 8036: if (result) { 8036: do { } while ((false) && (!result->ref.isShared())); 8036: 8036: result->offset = reinterpret_cast(data) 8036: - reinterpret_cast(result); 8036: result->size = int(n); 8036: } 8036: return result; 8036: } 8036: 8036: static QTypedArrayData *sharedNull() noexcept 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: return static_cast(QArrayData::sharedNull()); 8036: } 8036: 8036: static QTypedArrayData *sharedEmpty() 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: return allocate( 0); 8036: } 8036: 8036: 8036: static QTypedArrayData *unsharableEmpty() 8036: { 8036: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8036: return allocate( 0, Unsharable); 8036: } 8036: 8036: }; 8036: 8036: template 8036: struct QStaticArrayData 8036: { 8036: QArrayData header; 8036: T data[N]; 8036: }; 8036: 8036: 8036: template 8036: struct QArrayDataPointerRef 8036: { 8036: QTypedArrayData *ptr; 8036: }; 8036: # 369 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8036: namespace QtPrivate { 8036: struct __attribute__((visibility("default"))) QContainerImplHelper 8036: { 8036: enum CutResult { Null, Empty, Full, Subset }; 8036: static CutResult mid(int originalLength, int *position, int *length); 8036: }; 8036: } 8036: 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhashfunctions.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qpair.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qpair.h" 3 4 8036: 8036: 8036: 8036: template 8036: struct QPair 8036: { 8036: typedef T1 first_type; 8036: typedef T2 second_type; 8036: 8036: constexpr QPair() 8036: noexcept((std::is_nothrow_default_constructible::value && std::is_nothrow_default_constructible::value)) 8036: 8036: : first(), second() {} 8036: constexpr QPair(const T1 &t1, const T2 &t2) 8036: noexcept((std::is_nothrow_copy_constructible::value && std::is_nothrow_copy_constructible::value)) 8036: 8036: : first(t1), second(t2) {} 8036: 8036: 8036: template 8036: constexpr QPair(const QPair &p) 8036: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8036: 8036: : first(p.first), second(p.second) {} 8036: template 8036: QPair &operator=(const QPair &p) 8036: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8036: 8036: { first = p.first; second = p.second; return *this; } 8036: 8036: template 8036: constexpr QPair(QPair &&p) 8036: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8036: 8036: 8036: : first(static_cast(p.first)), second(static_cast(p.second)) {} 8036: template 8036: QPair &operator=(QPair &&p) 8036: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8036: 8036: { first = std::move(p.first); second = std::move(p.second); return *this; } 8036: 8036: 8036: void swap(QPair &other) 8036: noexcept(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second))) 8036: { 8036: 8036: qSwap(first, other.first); 8036: qSwap(second, other.second); 8036: } 8036: 8036: T1 first; 8036: T2 second; 8036: }; 8036: 8036: template 8036: void swap(QPair &lhs, QPair &rhs) noexcept(noexcept(lhs.swap(rhs))) 8036: { lhs.swap(rhs); } 8036: 8036: 8036: 8036: template 8036: class QTypeInfo > : public QTypeInfoMerger, T1, T2> {}; 8036: 8036: template 8036: constexpr inline bool operator==(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(p1.first == p2.first && p1.second == p2.second)) 8036: { return p1.first == p2.first && p1.second == p2.second; } 8036: 8036: template 8036: constexpr inline bool operator!=(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(!(p1 == p2))) 8036: { return !(p1 == p2); } 8036: 8036: template 8036: constexpr inline bool operator<(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) 8036: { 8036: return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); 8036: } 8036: 8036: template 8036: constexpr inline bool operator>(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(p2 < p1)) 8036: { 8036: return p2 < p1; 8036: } 8036: 8036: template 8036: constexpr inline bool operator<=(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(!(p2 < p1))) 8036: { 8036: return !(p2 < p1); 8036: } 8036: 8036: template 8036: constexpr inline bool operator>=(const QPair &p1, const QPair &p2) 8036: noexcept(noexcept(!(p1 < p2))) 8036: { 8036: return !(p1 < p2); 8036: } 8036: 8036: template 8036: constexpr QPair qMakePair(const T1 &x, const T2 &y) 8036: noexcept(noexcept(QPair(x, y))) 8036: { 8036: return QPair(x, y); 8036: } 8036: 8036: 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8036: 8036: # 1 "/usr/include/c++/8/numeric" 1 3 4 8036: # 58 "/usr/include/c++/8/numeric" 3 4 8036: 8036: # 59 "/usr/include/c++/8/numeric" 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_numeric.h" 1 3 8036: # 65 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 80 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: void 8036: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: { 8036: *__first = __value; 8036: ++__value; 8036: } 8036: } 8036: 8036: 8036: } 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 118 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: inline _Tp 8036: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 8036: { 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: __init = __init + *__first; 8036: return __init; 8036: } 8036: # 144 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: inline _Tp 8036: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 8036: _BinaryOperation __binary_op) 8036: { 8036: 8036: 8036: ; 8036: 8036: for (; __first != __last; ++__first) 8036: __init = __binary_op(__init, *__first); 8036: return __init; 8036: } 8036: # 172 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: inline _Tp 8036: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _Tp __init) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2) 8036: __init = __init + (*__first1 * *__first2); 8036: return __init; 8036: } 8036: # 203 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: inline _Tp 8036: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8036: _InputIterator2 __first2, _Tp __init, 8036: _BinaryOperation1 __binary_op1, 8036: _BinaryOperation2 __binary_op2) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: for (; __first1 != __last1; ++__first1, (void)++__first2) 8036: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 8036: return __init; 8036: } 8036: # 235 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: _OutputIterator 8036: partial_sum(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: _ValueType __value = *__first; 8036: *__result = __value; 8036: while (++__first != __last) 8036: { 8036: __value = __value + *__first; 8036: *++__result = __value; 8036: } 8036: return ++__result; 8036: } 8036: # 275 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: _OutputIterator 8036: partial_sum(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _BinaryOperation __binary_op) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: _ValueType __value = *__first; 8036: *__result = __value; 8036: while (++__first != __last) 8036: { 8036: __value = __binary_op(__value, *__first); 8036: *++__result = __value; 8036: } 8036: return ++__result; 8036: } 8036: # 315 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: _OutputIterator 8036: adjacent_difference(_InputIterator __first, 8036: _InputIterator __last, _OutputIterator __result) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: _ValueType __value = *__first; 8036: *__result = __value; 8036: while (++__first != __last) 8036: { 8036: _ValueType __tmp = *__first; 8036: *++__result = __tmp - __value; 8036: __value = std::move(__tmp); 8036: } 8036: return ++__result; 8036: } 8036: # 357 "/usr/include/c++/8/bits/stl_numeric.h" 3 8036: template 8036: _OutputIterator 8036: adjacent_difference(_InputIterator __first, _InputIterator __last, 8036: _OutputIterator __result, _BinaryOperation __binary_op) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8036: 8036: 8036: 8036: 8036: 8036: ; 8036: 8036: if (__first == __last) 8036: return __result; 8036: _ValueType __value = *__first; 8036: *__result = __value; 8036: while (++__first != __last) 8036: { 8036: _ValueType __tmp = *__first; 8036: *++__result = __binary_op(__tmp, __value); 8036: __value = std::move(__tmp); 8036: } 8036: return ++__result; 8036: } 8036: 8036: 8036: } 8036: # 63 "/usr/include/c++/8/numeric" 2 3 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8036: # 59 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8036: 8036: 8036: class QBitArray; 8036: class QByteArray; 8036: class QString; 8036: class QStringRef; 8036: class QLatin1String; 8036: 8036: __attribute__((visibility("default"))) int qGlobalQHashSeed(); 8036: __attribute__((visibility("default"))) void qSetGlobalQHashSeed(int newSeed); 8036: 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHashBits(const void *p, size_t size, uint seed = 0) noexcept; 8036: 8036: __attribute__((const)) constexpr inline uint qHash(char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(uchar key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(signed char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(ushort key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(short key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(uint key, uint seed = 0) noexcept { return key ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(int key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8036: __attribute__((const)) constexpr inline uint qHash(ulong key, uint seed = 0) noexcept 8036: { 8036: return (sizeof(ulong) > sizeof(uint)) 8036: ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed) 8036: : (uint(key & (~0U)) ^ seed); 8036: } 8036: __attribute__((const)) constexpr inline uint qHash(long key, uint seed = 0) noexcept { return qHash(ulong(key), seed); } 8036: __attribute__((const)) constexpr inline uint qHash(quint64 key, uint seed = 0) noexcept 8036: { 8036: return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed; 8036: } 8036: __attribute__((const)) constexpr inline uint qHash(qint64 key, uint seed = 0) noexcept { return qHash(quint64(key), seed); } 8036: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(float key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(double key, uint seed = 0) noexcept; 8036: 8036: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(long double key, uint seed = 0) noexcept; 8036: 8036: __attribute__((const)) constexpr inline uint qHash(const QChar key, uint seed = 0) noexcept { return qHash(key.unicode(), seed); } 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QByteArray &key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QString &key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QStringRef &key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QBitArray &key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(QLatin1String key, uint seed = 0) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QString &key) noexcept; 8036: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QStringRef &key) noexcept; 8036: 8036: template inline uint qHash(const T *key, uint seed = 0) noexcept 8036: { 8036: return qHash(reinterpret_cast(key), seed); 8036: } 8036: template inline uint qHash(const T &t, uint seed) 8036: noexcept(noexcept(qHash(t))) 8036: { return qHash(t) ^ seed; } 8036: 8036: namespace QtPrivate { 8036: 8036: struct QHashCombine { 8036: typedef uint result_type; 8036: template 8036: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8036: 8036: { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; } 8036: }; 8036: 8036: struct QHashCombineCommutative { 8036: 8036: 8036: 8036: 8036: 8036: typedef uint result_type; 8036: template 8036: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8036: { return seed + qHash(t); } 8036: }; 8036: 8036: } 8036: 8036: template 8036: inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0) 8036: noexcept(noexcept(qHash(*first))) 8036: { 8036: return std::accumulate(first, last, seed, QtPrivate::QHashCombine()); 8036: } 8036: 8036: template 8036: inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0) 8036: noexcept(noexcept(qHash(*first))) 8036: { 8036: return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative()); 8036: } 8036: 8036: template inline uint qHash(const QPair &key, uint seed = 0) 8036: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8036: { 8036: uint h1 = qHash(key.first, seed); 8036: uint h2 = qHash(key.second, seed); 8036: return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed; 8036: } 8036: 8036: template inline uint qHash(const std::pair &key, uint seed = 0) 8036: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8036: { 8036: QtPrivate::QHashCombine hash; 8036: seed = hash(seed, key.first); 8036: seed = hash(seed, key.second); 8036: return seed; 8036: } 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: 8036: # 1 "/usr/include/c++/8/iterator" 1 3 4 8036: # 58 "/usr/include/c++/8/iterator" 3 4 8036: 8036: # 59 "/usr/include/c++/8/iterator" 3 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/ostream" 1 3 8036: # 36 "/usr/include/c++/8/ostream" 3 8036: 8036: # 37 "/usr/include/c++/8/ostream" 3 8036: 8036: # 1 "/usr/include/c++/8/ios" 1 3 8036: # 36 "/usr/include/c++/8/ios" 3 8036: 8036: # 37 "/usr/include/c++/8/ios" 3 8036: 8036: # 1 "/usr/include/c++/8/iosfwd" 1 3 8036: # 36 "/usr/include/c++/8/iosfwd" 3 8036: 8036: # 37 "/usr/include/c++/8/iosfwd" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct char_traits; 8036: 8036: template<> struct char_traits; 8036: 8036: 8036: template<> struct char_traits; 8036: 8036: 8036: 8036: 8036: template<> struct char_traits; 8036: template<> struct char_traits; 8036: 8036: 8036: namespace __cxx11 { 8036: 8036: template, 8036: typename _Alloc = allocator<_CharT> > 8036: class basic_string; 8036: 8036: 8036: typedef basic_string string; 8036: 8036: 8036: 8036: typedef basic_string wstring; 8036: 8036: 8036: 8036: 8036: 8036: typedef basic_string u16string; 8036: 8036: 8036: typedef basic_string u32string; 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: # 40 "/usr/include/c++/8/iosfwd" 2 3 8036: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 8036: # 38 "/usr/include/c++/8/bits/postypes.h" 3 8036: 8036: # 39 "/usr/include/c++/8/bits/postypes.h" 3 8036: 8036: # 1 "/usr/include/c++/8/cwchar" 1 3 8036: # 39 "/usr/include/c++/8/cwchar" 3 8036: 8036: # 40 "/usr/include/c++/8/cwchar" 3 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/wchar.h" 1 3 4 8036: # 27 "/usr/include/wchar.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 28 "/usr/include/wchar.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 36 "/usr/include/wchar.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdarg.h" 1 3 4 8036: # 40 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdarg.h" 3 4 8036: typedef __builtin_va_list __gnuc_va_list; 8036: # 39 "/usr/include/wchar.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/wint_t.h" 1 3 4 8036: # 20 "/usr/include/powerpc64le-linux-gnu/bits/types/wint_t.h" 3 4 8036: typedef unsigned int wint_t; 8036: # 42 "/usr/include/wchar.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/mbstate_t.h" 1 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 8036: # 13 "/usr/include/powerpc64le-linux-gnu/bits/types/__mbstate_t.h" 3 4 8036: typedef struct 8036: { 8036: int __count; 8036: union 8036: { 8036: unsigned int __wch; 8036: char __wchb[4]; 8036: } __value; 8036: } __mbstate_t; 8036: # 5 "/usr/include/powerpc64le-linux-gnu/bits/types/mbstate_t.h" 2 3 4 8036: 8036: typedef __mbstate_t mbstate_t; 8036: # 43 "/usr/include/wchar.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/__FILE.h" 1 3 4 8036: 8036: 8036: 8036: struct _IO_FILE; 8036: typedef struct _IO_FILE __FILE; 8036: # 44 "/usr/include/wchar.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/FILE.h" 1 3 4 8036: 8036: 8036: 8036: struct _IO_FILE; 8036: 8036: 8036: typedef struct _IO_FILE FILE; 8036: # 47 "/usr/include/wchar.h" 2 3 4 8036: # 79 "/usr/include/wchar.h" 3 4 8036: extern "C" { 8036: 8036: 8036: 8036: struct tm; 8036: 8036: 8036: 8036: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern wchar_t *wcscat (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, size_t __n) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 8036: 8036: 8036: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 8036: size_t __n) throw (); 8036: 8036: 8036: 8036: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8036: locale_t __loc) throw (); 8036: 8036: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8036: size_t __n, locale_t __loc) throw (); 8036: 8036: 8036: 8036: 8036: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 8036: 8036: 8036: 8036: extern size_t wcsxfrm (wchar_t *__restrict __s1, 8036: const wchar_t *__restrict __s2, size_t __n) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 8036: locale_t __loc) throw (); 8036: 8036: 8036: 8036: 8036: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 8036: size_t __n, locale_t __loc) throw (); 8036: 8036: 8036: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 8036: 8036: 8036: 8036: 8036: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 8036: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 8036: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 8036: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 8036: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8036: # 181 "/usr/include/wchar.h" 3 4 8036: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 8036: throw () __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 8036: throw () __attribute__ ((__pure__)); 8036: 8036: 8036: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 8036: throw () __attribute__ ((__pure__)); 8036: 8036: 8036: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 8036: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 8036: const wchar_t *__accept) 8036: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 8036: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 8036: const wchar_t *__needle) 8036: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wchar_t *wcstok (wchar_t *__restrict __s, 8036: const wchar_t *__restrict __delim, 8036: wchar_t **__restrict __ptr) throw (); 8036: 8036: 8036: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 8036: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 8036: const wchar_t *__needle) 8036: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8036: # 240 "/usr/include/wchar.h" 3 4 8036: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 8036: throw () __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: 8036: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 8036: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8036: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 8036: size_t __n) 8036: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8036: throw () __attribute__ ((__pure__)); 8036: 8036: 8036: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 8036: const wchar_t *__restrict __s2, size_t __n) throw (); 8036: 8036: 8036: 8036: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 8036: throw (); 8036: 8036: 8036: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 8036: 8036: 8036: 8036: 8036: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 8036: const wchar_t *__restrict __s2, size_t __n) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t btowc (int __c) throw (); 8036: 8036: 8036: 8036: extern int wctob (wint_t __c) throw (); 8036: 8036: 8036: 8036: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 8036: 8036: 8036: 8036: extern size_t mbrtowc (wchar_t *__restrict __pwc, 8036: const char *__restrict __s, size_t __n, 8036: mbstate_t *__restrict __p) throw (); 8036: 8036: 8036: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 8036: mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 8036: mbstate_t *__restrict __ps) throw (); 8036: extern size_t mbrlen (const char *__restrict __s, size_t __n, 8036: mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 8036: extern __inline __attribute__ ((__gnu_inline__)) wint_t 8036: __attribute__ ((__leaf__)) btowc (int __c) throw () 8036: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 8036: ? (wint_t) __c : __btowc_alias (__c)); } 8036: 8036: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 8036: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 8036: ? (int) __wc : __wctob_alias (__wc)); } 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) size_t 8036: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 8036: 8036: { return (__ps != __null 8036: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 8036: 8036: 8036: 8036: 8036: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 8036: const char **__restrict __src, size_t __len, 8036: mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: 8036: extern size_t wcsrtombs (char *__restrict __dst, 8036: const wchar_t **__restrict __src, size_t __len, 8036: mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 8036: const char **__restrict __src, size_t __nmc, 8036: size_t __len, mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: 8036: extern size_t wcsnrtombs (char *__restrict __dst, 8036: const wchar_t **__restrict __src, 8036: size_t __nwc, size_t __len, 8036: mbstate_t *__restrict __ps) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int wcwidth (wchar_t __c) throw (); 8036: 8036: 8036: 8036: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern double wcstod (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr) throw (); 8036: 8036: 8036: 8036: extern float wcstof (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr) throw (); 8036: extern long double wcstold (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr) throw (); 8036: 8036: 8036: 8036: 8036: extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern long int wcstol (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, int __base) throw (); 8036: 8036: 8036: 8036: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, int __base) 8036: throw (); 8036: 8036: 8036: 8036: 8036: __extension__ 8036: extern long long int wcstoll (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, int __base) 8036: throw (); 8036: 8036: 8036: 8036: __extension__ 8036: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: int __base) throw (); 8036: 8036: 8036: 8036: 8036: 8036: __extension__ 8036: extern long long int wcstoq (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, int __base) 8036: throw (); 8036: 8036: 8036: 8036: __extension__ 8036: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: int __base) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern long int wcstol_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, int __base, 8036: locale_t __loc) throw (); 8036: 8036: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: int __base, locale_t __loc) throw (); 8036: 8036: __extension__ 8036: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: int __base, locale_t __loc) throw (); 8036: 8036: __extension__ 8036: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: int __base, locale_t __loc) 8036: throw (); 8036: 8036: extern double wcstod_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, locale_t __loc) 8036: throw (); 8036: 8036: extern float wcstof_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, locale_t __loc) 8036: throw (); 8036: 8036: extern long double wcstold_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: locale_t __loc) throw (); 8036: 8036: 8036: extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, 8036: wchar_t **__restrict __endptr, 8036: locale_t __loc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src) throw (); 8036: 8036: 8036: 8036: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, size_t __n) 8036: throw (); 8036: # 500 "/usr/include/wchar.h" 3 4 8036: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int fwide (__FILE *__fp, int __mode) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fwprintf (__FILE *__restrict __stream, 8036: const wchar_t *__restrict __format, ...) 8036: ; 8036: 8036: 8036: 8036: 8036: extern int wprintf (const wchar_t *__restrict __format, ...) 8036: ; 8036: 8036: extern int swprintf (wchar_t *__restrict __s, size_t __n, 8036: const wchar_t *__restrict __format, ...) 8036: throw () ; 8036: 8036: 8036: 8036: 8036: 8036: extern int vfwprintf (__FILE *__restrict __s, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: ; 8036: 8036: 8036: 8036: 8036: extern int vwprintf (const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: ; 8036: 8036: 8036: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: throw () ; 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fwscanf (__FILE *__restrict __stream, 8036: const wchar_t *__restrict __format, ...) 8036: ; 8036: 8036: 8036: 8036: 8036: extern int wscanf (const wchar_t *__restrict __format, ...) 8036: ; 8036: 8036: extern int swscanf (const wchar_t *__restrict __s, 8036: const wchar_t *__restrict __format, ...) 8036: throw () ; 8036: # 606 "/usr/include/wchar.h" 3 4 8036: extern int vfwscanf (__FILE *__restrict __s, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: ; 8036: 8036: 8036: 8036: 8036: extern int vwscanf (const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: ; 8036: 8036: extern int vswscanf (const wchar_t *__restrict __s, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: throw () ; 8036: # 660 "/usr/include/wchar.h" 3 4 8036: extern wint_t fgetwc (__FILE *__stream); 8036: extern wint_t getwc (__FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t getwchar (void); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 8036: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t putwchar (wchar_t __wc); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 8036: __FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: extern int fputws (const wchar_t *__restrict __ws, 8036: __FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 8036: # 715 "/usr/include/wchar.h" 3 4 8036: extern wint_t getwc_unlocked (__FILE *__stream); 8036: extern wint_t getwchar_unlocked (void); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t fgetwc_unlocked (__FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 8036: # 741 "/usr/include/wchar.h" 3 4 8036: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 8036: extern wint_t putwchar_unlocked (wchar_t __wc); 8036: # 751 "/usr/include/wchar.h" 3 4 8036: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 8036: __FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fputws_unlocked (const wchar_t *__restrict __ws, 8036: __FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 8036: const wchar_t *__restrict __format, 8036: const struct tm *__restrict __tp) throw (); 8036: 8036: 8036: 8036: 8036: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 8036: const wchar_t *__restrict __format, 8036: const struct tm *__restrict __tp, 8036: locale_t __loc) throw (); 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wchar2.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/wchar2.h" 3 4 8036: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 8036: const wchar_t *__restrict __s2, size_t __n, 8036: size_t __ns1) throw (); 8036: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 8036: 8036: 8036: ; 8036: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemcpy_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8036: 8036: { 8036: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wmemcpy_chk (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: 8036: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8036: return __wmemcpy_chk_warn (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: } 8036: return __wmemcpy_alias (__s1, __s2, __n); 8036: } 8036: 8036: 8036: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 8036: size_t __n, size_t __ns1) throw (); 8036: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 8036: 8036: ; 8036: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 8036: 8036: 8036: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 8036: { 8036: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wmemmove_chk (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: 8036: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8036: return __wmemmove_chk_warn (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: } 8036: return __wmemmove_alias (__s1, __s2, __n); 8036: } 8036: 8036: 8036: 8036: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 8036: const wchar_t *__restrict __s2, size_t __n, 8036: size_t __ns1) throw (); 8036: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 8036: 8036: 8036: ; 8036: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmempcpy_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8036: 8036: { 8036: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wmempcpy_chk (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: 8036: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8036: return __wmempcpy_chk_warn (__s1, __s2, __n, 8036: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8036: } 8036: return __wmempcpy_alias (__s1, __s2, __n); 8036: } 8036: 8036: 8036: 8036: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 8036: size_t __ns) throw (); 8036: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 8036: ; 8036: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 8036: 8036: 8036: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 8036: { 8036: if (__builtin_object_size (__s, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8036: 8036: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 8036: return __wmemset_chk_warn (__s, __c, __n, 8036: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8036: } 8036: return __wmemset_alias (__s, __c, __n); 8036: } 8036: 8036: 8036: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, 8036: size_t __n) throw (); 8036: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: return __wcscpy_alias (__dest, __src); 8036: } 8036: 8036: 8036: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, 8036: size_t __destlen) throw (); 8036: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: return __wcpcpy_alias (__dest, __src); 8036: } 8036: 8036: 8036: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, size_t __n, 8036: size_t __destlen) throw (); 8036: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 8036: 8036: 8036: ; 8036: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcsncpy_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wcsncpy_chk (__dest, __src, __n, 8036: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8036: return __wcsncpy_chk_warn (__dest, __src, __n, 8036: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: } 8036: return __wcsncpy_alias (__dest, __src, __n); 8036: } 8036: 8036: 8036: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, size_t __n, 8036: size_t __destlen) throw (); 8036: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 8036: 8036: 8036: ; 8036: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcpncpy_chk") 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n)) 8036: return __wcpncpy_chk (__dest, __src, __n, 8036: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8036: return __wcpncpy_chk_warn (__dest, __src, __n, 8036: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: } 8036: return __wcpncpy_alias (__dest, __src, __n); 8036: } 8036: 8036: 8036: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, 8036: size_t __destlen) throw (); 8036: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: return __wcscat_alias (__dest, __src); 8036: } 8036: 8036: 8036: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 8036: const wchar_t *__restrict __src, 8036: size_t __n, size_t __destlen) throw (); 8036: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 8036: 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8036: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8036: return __wcsncat_chk (__dest, __src, __n, 8036: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8036: return __wcsncat_alias (__dest, __src, __n); 8036: } 8036: 8036: 8036: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 8036: int __flag, size_t __s_len, 8036: const wchar_t *__restrict __format, ...) 8036: throw () ; 8036: 8036: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 8036: 8036: 8036: ; 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 8036: 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8036: return __swprintf_chk (__s, __n, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8036: __fmt, __builtin_va_arg_pack ()); 8036: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 8036: } 8036: # 303 "/usr/include/powerpc64le-linux-gnu/bits/wchar2.h" 3 4 8036: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 8036: int __flag, size_t __s_len, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __arg) 8036: throw () ; 8036: 8036: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 8036: 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 8036: 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8036: return __vswprintf_chk (__s, __n, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 8036: return __vswprintf_alias (__s, __n, __fmt, __ap); 8036: } 8036: 8036: 8036: 8036: 8036: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 8036: const wchar_t *__restrict __format, ...); 8036: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 8036: ...); 8036: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 8036: const wchar_t *__restrict __format, 8036: __gnuc_va_list __ap); 8036: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 8036: __gnuc_va_list __ap); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: wprintf (const wchar_t *__restrict __fmt, ...) 8036: { 8036: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 8036: { 8036: return __fwprintf_chk (__stream, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8036: { 8036: return __vwprintf_chk (2 - 1, __fmt, __ap); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: vfwprintf (__FILE *__restrict __stream, 8036: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8036: { 8036: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 8036: } 8036: 8036: 8036: 8036: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 8036: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8036: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n) || __n <= 0) 8036: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8036: __n, __stream); 8036: 8036: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8036: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8036: __n, __stream); 8036: } 8036: return __fgetws_alias (__s, __n, __stream); 8036: } 8036: 8036: 8036: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 8036: int __n, __FILE *__restrict __stream) 8036: __attribute__ ((__warn_unused_result__)); 8036: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 8036: 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8036: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n) || __n <= 0) 8036: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8036: __n, __stream); 8036: 8036: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8036: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8036: __n, __stream); 8036: } 8036: return __fgetws_unlocked_alias (__s, __n, __stream); 8036: } 8036: 8036: 8036: 8036: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 8036: mbstate_t *__restrict __p, 8036: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 8036: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8036: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 8036: 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8036: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 8036: return __wcrtomb_alias (__s, __wchar, __ps); 8036: } 8036: 8036: 8036: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 8036: const char **__restrict __src, 8036: size_t __len, mbstate_t *__restrict __ps, 8036: size_t __dstlen) throw (); 8036: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 8036: 8036: 8036: 8036: ; 8036: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsrtowcs_chk") 8036: 8036: 8036: 8036: 8036: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: 8036: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8036: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: } 8036: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 8036: } 8036: 8036: 8036: extern size_t __wcsrtombs_chk (char *__restrict __dst, 8036: const wchar_t **__restrict __src, 8036: size_t __len, mbstate_t *__restrict __ps, 8036: size_t __dstlen) throw (); 8036: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 8036: 8036: 8036: 8036: ; 8036: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsrtombs_chk") 8036: 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8036: 8036: if (__len > __builtin_object_size (__dst, 2 > 1)) 8036: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8036: } 8036: return __wcsrtombs_alias (__dst, __src, __len, __ps); 8036: } 8036: 8036: 8036: 8036: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 8036: const char **__restrict __src, size_t __nmc, 8036: size_t __len, mbstate_t *__restrict __ps, 8036: size_t __dstlen) throw (); 8036: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsnrtowcs") 8036: 8036: 8036: 8036: ; 8036: 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) throw () __asm__ ("" "__mbsnrtowcs_chk") 8036: 8036: 8036: 8036: 8036: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: 8036: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8036: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8036: } 8036: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 8036: } 8036: 8036: 8036: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 8036: const wchar_t **__restrict __src, 8036: size_t __nwc, size_t __len, 8036: mbstate_t *__restrict __ps, size_t __dstlen) 8036: throw (); 8036: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsnrtombs") 8036: 8036: 8036: 8036: ; 8036: 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) throw () __asm__ ("" "__wcsnrtombs_chk") 8036: 8036: 8036: 8036: 8036: 8036: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 8036: 8036: { 8036: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1)); 8036: 8036: if (__len > __builtin_object_size (__dst, 2 > 1)) 8036: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 8036: __builtin_object_size (__dst, 2 > 1)); 8036: } 8036: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 8036: } 8036: # 784 "/usr/include/wchar.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 45 "/usr/include/c++/8/cwchar" 2 3 8036: # 62 "/usr/include/c++/8/cwchar" 3 8036: namespace std 8036: { 8036: using ::mbstate_t; 8036: } 8036: # 135 "/usr/include/c++/8/cwchar" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: using ::wint_t; 8036: 8036: using ::btowc; 8036: using ::fgetwc; 8036: using ::fgetws; 8036: using ::fputwc; 8036: using ::fputws; 8036: using ::fwide; 8036: using ::fwprintf; 8036: using ::fwscanf; 8036: using ::getwc; 8036: using ::getwchar; 8036: using ::mbrlen; 8036: using ::mbrtowc; 8036: using ::mbsinit; 8036: using ::mbsrtowcs; 8036: using ::putwc; 8036: using ::putwchar; 8036: 8036: using ::swprintf; 8036: 8036: using ::swscanf; 8036: using ::ungetwc; 8036: using ::vfwprintf; 8036: 8036: using ::vfwscanf; 8036: 8036: 8036: using ::vswprintf; 8036: 8036: 8036: using ::vswscanf; 8036: 8036: using ::vwprintf; 8036: 8036: using ::vwscanf; 8036: 8036: using ::wcrtomb; 8036: using ::wcscat; 8036: using ::wcscmp; 8036: using ::wcscoll; 8036: using ::wcscpy; 8036: using ::wcscspn; 8036: using ::wcsftime; 8036: using ::wcslen; 8036: using ::wcsncat; 8036: using ::wcsncmp; 8036: using ::wcsncpy; 8036: using ::wcsrtombs; 8036: using ::wcsspn; 8036: using ::wcstod; 8036: 8036: using ::wcstof; 8036: 8036: using ::wcstok; 8036: using ::wcstol; 8036: using ::wcstoul; 8036: using ::wcsxfrm; 8036: using ::wctob; 8036: using ::wmemcmp; 8036: using ::wmemcpy; 8036: using ::wmemmove; 8036: using ::wmemset; 8036: using ::wprintf; 8036: using ::wscanf; 8036: using ::wcschr; 8036: using ::wcspbrk; 8036: using ::wcsrchr; 8036: using ::wcsstr; 8036: using ::wmemchr; 8036: # 232 "/usr/include/c++/8/cwchar" 3 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx 8036: { 8036: 8036: 8036: 8036: 8036: 8036: using ::wcstold; 8036: # 257 "/usr/include/c++/8/cwchar" 3 8036: using ::wcstoll; 8036: using ::wcstoull; 8036: 8036: } 8036: 8036: namespace std 8036: { 8036: using ::__gnu_cxx::wcstold; 8036: using ::__gnu_cxx::wcstoll; 8036: using ::__gnu_cxx::wcstoull; 8036: } 8036: # 277 "/usr/include/c++/8/cwchar" 3 8036: namespace std 8036: { 8036: 8036: using std::wcstof; 8036: 8036: 8036: using std::vfwscanf; 8036: 8036: 8036: using std::vswscanf; 8036: 8036: 8036: using std::vwscanf; 8036: 8036: 8036: 8036: using std::wcstold; 8036: using std::wcstoll; 8036: using std::wcstoull; 8036: 8036: } 8036: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 8036: # 68 "/usr/include/c++/8/bits/postypes.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 88 "/usr/include/c++/8/bits/postypes.h" 3 8036: typedef long streamoff; 8036: # 98 "/usr/include/c++/8/bits/postypes.h" 3 8036: typedef ptrdiff_t streamsize; 8036: # 111 "/usr/include/c++/8/bits/postypes.h" 3 8036: template 8036: class fpos 8036: { 8036: private: 8036: streamoff _M_off; 8036: _StateT _M_state; 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: fpos() 8036: : _M_off(0), _M_state() { } 8036: # 133 "/usr/include/c++/8/bits/postypes.h" 3 8036: fpos(streamoff __off) 8036: : _M_off(__off), _M_state() { } 8036: 8036: 8036: operator streamoff() const { return _M_off; } 8036: 8036: 8036: void 8036: state(_StateT __st) 8036: { _M_state = __st; } 8036: 8036: 8036: _StateT 8036: state() const 8036: { return _M_state; } 8036: 8036: 8036: 8036: 8036: 8036: fpos& 8036: operator+=(streamoff __off) 8036: { 8036: _M_off += __off; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: fpos& 8036: operator-=(streamoff __off) 8036: { 8036: _M_off -= __off; 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: fpos 8036: operator+(streamoff __off) const 8036: { 8036: fpos __pos(*this); 8036: __pos += __off; 8036: return __pos; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: fpos 8036: operator-(streamoff __off) const 8036: { 8036: fpos __pos(*this); 8036: __pos -= __off; 8036: return __pos; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: streamoff 8036: operator-(const fpos& __other) const 8036: { return _M_off - __other._M_off; } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8036: { return streamoff(__lhs) == streamoff(__rhs); } 8036: 8036: template 8036: inline bool 8036: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8036: { return streamoff(__lhs) != streamoff(__rhs); } 8036: 8036: 8036: 8036: 8036: 8036: typedef fpos streampos; 8036: 8036: typedef fpos wstreampos; 8036: 8036: 8036: 8036: typedef fpos u16streampos; 8036: 8036: typedef fpos u32streampos; 8036: 8036: 8036: 8036: } 8036: # 41 "/usr/include/c++/8/iosfwd" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 74 "/usr/include/c++/8/iosfwd" 3 8036: class ios_base; 8036: 8036: template > 8036: class basic_ios; 8036: 8036: template > 8036: class basic_streambuf; 8036: 8036: template > 8036: class basic_istream; 8036: 8036: template > 8036: class basic_ostream; 8036: 8036: template > 8036: class basic_iostream; 8036: 8036: 8036: namespace __cxx11 { 8036: 8036: template, 8036: typename _Alloc = allocator<_CharT> > 8036: class basic_stringbuf; 8036: 8036: template, 8036: typename _Alloc = allocator<_CharT> > 8036: class basic_istringstream; 8036: 8036: template, 8036: typename _Alloc = allocator<_CharT> > 8036: class basic_ostringstream; 8036: 8036: template, 8036: typename _Alloc = allocator<_CharT> > 8036: class basic_stringstream; 8036: 8036: } 8036: 8036: template > 8036: class basic_filebuf; 8036: 8036: template > 8036: class basic_ifstream; 8036: 8036: template > 8036: class basic_ofstream; 8036: 8036: template > 8036: class basic_fstream; 8036: 8036: template > 8036: class istreambuf_iterator; 8036: 8036: template > 8036: class ostreambuf_iterator; 8036: 8036: 8036: 8036: typedef basic_ios ios; 8036: 8036: 8036: typedef basic_streambuf streambuf; 8036: 8036: 8036: typedef basic_istream istream; 8036: 8036: 8036: typedef basic_ostream ostream; 8036: 8036: 8036: typedef basic_iostream iostream; 8036: 8036: 8036: typedef basic_stringbuf stringbuf; 8036: 8036: 8036: typedef basic_istringstream istringstream; 8036: 8036: 8036: typedef basic_ostringstream ostringstream; 8036: 8036: 8036: typedef basic_stringstream stringstream; 8036: 8036: 8036: typedef basic_filebuf filebuf; 8036: 8036: 8036: typedef basic_ifstream ifstream; 8036: 8036: 8036: typedef basic_ofstream ofstream; 8036: 8036: 8036: typedef basic_fstream fstream; 8036: 8036: 8036: 8036: typedef basic_ios wios; 8036: 8036: 8036: typedef basic_streambuf wstreambuf; 8036: 8036: 8036: typedef basic_istream wistream; 8036: 8036: 8036: typedef basic_ostream wostream; 8036: 8036: 8036: typedef basic_iostream wiostream; 8036: 8036: 8036: typedef basic_stringbuf wstringbuf; 8036: 8036: 8036: typedef basic_istringstream wistringstream; 8036: 8036: 8036: typedef basic_ostringstream wostringstream; 8036: 8036: 8036: typedef basic_stringstream wstringstream; 8036: 8036: 8036: typedef basic_filebuf wfilebuf; 8036: 8036: 8036: typedef basic_ifstream wifstream; 8036: 8036: 8036: typedef basic_ofstream wofstream; 8036: 8036: 8036: typedef basic_fstream wfstream; 8036: 8036: 8036: 8036: 8036: } 8036: # 39 "/usr/include/c++/8/ios" 2 3 8036: 8036: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/cwchar" 1 3 8036: # 39 "/usr/include/c++/8/cwchar" 3 8036: 8036: # 40 "/usr/include/c++/8/cwchar" 3 8036: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 8036: template 8036: struct _Char_types 8036: { 8036: typedef unsigned long int_type; 8036: typedef std::streampos pos_type; 8036: typedef std::streamoff off_type; 8036: typedef std::mbstate_t state_type; 8036: }; 8036: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 8036: template 8036: struct char_traits 8036: { 8036: typedef _CharT char_type; 8036: typedef typename _Char_types<_CharT>::int_type int_type; 8036: typedef typename _Char_types<_CharT>::pos_type pos_type; 8036: typedef typename _Char_types<_CharT>::off_type off_type; 8036: typedef typename _Char_types<_CharT>::state_type state_type; 8036: 8036: static void 8036: assign(char_type& __c1, const char_type& __c2) 8036: { __c1 = __c2; } 8036: 8036: static constexpr bool 8036: eq(const char_type& __c1, const char_type& __c2) 8036: { return __c1 == __c2; } 8036: 8036: static constexpr bool 8036: lt(const char_type& __c1, const char_type& __c2) 8036: { return __c1 < __c2; } 8036: 8036: static int 8036: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 8036: 8036: static std::size_t 8036: length(const char_type* __s); 8036: 8036: static const char_type* 8036: find(const char_type* __s, std::size_t __n, const char_type& __a); 8036: 8036: static char_type* 8036: move(char_type* __s1, const char_type* __s2, std::size_t __n); 8036: 8036: static char_type* 8036: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 8036: 8036: static char_type* 8036: assign(char_type* __s, std::size_t __n, char_type __a); 8036: 8036: static constexpr char_type 8036: to_char_type(const int_type& __c) 8036: { return static_cast(__c); } 8036: 8036: static constexpr int_type 8036: to_int_type(const char_type& __c) 8036: { return static_cast(__c); } 8036: 8036: static constexpr bool 8036: eq_int_type(const int_type& __c1, const int_type& __c2) 8036: { return __c1 == __c2; } 8036: 8036: static constexpr int_type 8036: eof() 8036: { return static_cast(-1); } 8036: 8036: static constexpr int_type 8036: not_eof(const int_type& __c) 8036: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 8036: }; 8036: 8036: 8036: 8036: template 8036: int 8036: char_traits<_CharT>:: 8036: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 8036: { 8036: for (std::size_t __i = 0; __i < __n; ++__i) 8036: if (lt(__s1[__i], __s2[__i])) 8036: return -1; 8036: else if (lt(__s2[__i], __s1[__i])) 8036: return 1; 8036: return 0; 8036: } 8036: 8036: template 8036: std::size_t 8036: char_traits<_CharT>:: 8036: length(const char_type* __p) 8036: { 8036: std::size_t __i = 0; 8036: while (!eq(__p[__i], char_type())) 8036: ++__i; 8036: return __i; 8036: } 8036: 8036: template 8036: const typename char_traits<_CharT>::char_type* 8036: char_traits<_CharT>:: 8036: find(const char_type* __s, std::size_t __n, const char_type& __a) 8036: { 8036: for (std::size_t __i = 0; __i < __n; ++__i) 8036: if (eq(__s[__i], __a)) 8036: return __s + __i; 8036: return 0; 8036: } 8036: 8036: template 8036: typename char_traits<_CharT>::char_type* 8036: char_traits<_CharT>:: 8036: move(char_type* __s1, const char_type* __s2, std::size_t __n) 8036: { 8036: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 8036: __n * sizeof(char_type))); 8036: } 8036: 8036: template 8036: typename char_traits<_CharT>::char_type* 8036: char_traits<_CharT>:: 8036: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 8036: { 8036: 8036: std::copy(__s2, __s2 + __n, __s1); 8036: return __s1; 8036: } 8036: 8036: template 8036: typename char_traits<_CharT>::char_type* 8036: char_traits<_CharT>:: 8036: assign(char_type* __s, std::size_t __n, char_type __a) 8036: { 8036: 8036: std::fill_n(__s, __n, __a); 8036: return __s; 8036: } 8036: 8036: 8036: } 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 268 "/usr/include/c++/8/bits/char_traits.h" 3 8036: template 8036: struct char_traits : public __gnu_cxx::char_traits<_CharT> 8036: { }; 8036: 8036: 8036: 8036: template<> 8036: struct char_traits 8036: { 8036: typedef char char_type; 8036: typedef int int_type; 8036: typedef streampos pos_type; 8036: typedef streamoff off_type; 8036: typedef mbstate_t state_type; 8036: 8036: static void 8036: assign(char_type& __c1, const char_type& __c2) noexcept 8036: { __c1 = __c2; } 8036: 8036: static constexpr bool 8036: eq(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr bool 8036: lt(const char_type& __c1, const char_type& __c2) noexcept 8036: { 8036: 8036: return (static_cast(__c1) 8036: < static_cast(__c2)); 8036: } 8036: 8036: static int 8036: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__n == 0) 8036: return 0; 8036: return __builtin_memcmp(__s1, __s2, __n); 8036: } 8036: 8036: static size_t 8036: length(const char_type* __s) 8036: { 8036: 8036: 8036: 8036: 8036: return __builtin_strlen(__s); 8036: } 8036: 8036: static const char_type* 8036: find(const char_type* __s, size_t __n, const char_type& __a) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__n == 0) 8036: return 0; 8036: return static_cast(__builtin_memchr(__s, __a, __n)); 8036: } 8036: 8036: static char_type* 8036: move(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return static_cast(__builtin_memmove(__s1, __s2, __n)); 8036: } 8036: 8036: static char_type* 8036: copy(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 8036: } 8036: 8036: static char_type* 8036: assign(char_type* __s, size_t __n, char_type __a) 8036: { 8036: if (__n == 0) 8036: return __s; 8036: return static_cast(__builtin_memset(__s, __a, __n)); 8036: } 8036: 8036: static constexpr char_type 8036: to_char_type(const int_type& __c) noexcept 8036: { return static_cast(__c); } 8036: 8036: 8036: 8036: static constexpr int_type 8036: to_int_type(const char_type& __c) noexcept 8036: { return static_cast(static_cast(__c)); } 8036: 8036: static constexpr bool 8036: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr int_type 8036: eof() noexcept 8036: { return static_cast(-1); } 8036: 8036: static constexpr int_type 8036: not_eof(const int_type& __c) noexcept 8036: { return (__c == eof()) ? 0 : __c; } 8036: }; 8036: 8036: 8036: 8036: 8036: template<> 8036: struct char_traits 8036: { 8036: typedef wchar_t char_type; 8036: typedef wint_t int_type; 8036: typedef streamoff off_type; 8036: typedef wstreampos pos_type; 8036: typedef mbstate_t state_type; 8036: 8036: static void 8036: assign(char_type& __c1, const char_type& __c2) noexcept 8036: { __c1 = __c2; } 8036: 8036: static constexpr bool 8036: eq(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr bool 8036: lt(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 < __c2; } 8036: 8036: static int 8036: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__n == 0) 8036: return 0; 8036: else 8036: return wmemcmp(__s1, __s2, __n); 8036: } 8036: 8036: static size_t 8036: length(const char_type* __s) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: return wcslen(__s); 8036: } 8036: 8036: static const char_type* 8036: find(const char_type* __s, size_t __n, const char_type& __a) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: if (__n == 0) 8036: return 0; 8036: else 8036: return wmemchr(__s, __a, __n); 8036: } 8036: 8036: static char_type* 8036: move(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return wmemmove(__s1, __s2, __n); 8036: } 8036: 8036: static char_type* 8036: copy(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return wmemcpy(__s1, __s2, __n); 8036: } 8036: 8036: static char_type* 8036: assign(char_type* __s, size_t __n, char_type __a) 8036: { 8036: if (__n == 0) 8036: return __s; 8036: return wmemset(__s, __a, __n); 8036: } 8036: 8036: static constexpr char_type 8036: to_char_type(const int_type& __c) noexcept 8036: { return char_type(__c); } 8036: 8036: static constexpr int_type 8036: to_int_type(const char_type& __c) noexcept 8036: { return int_type(__c); } 8036: 8036: static constexpr bool 8036: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr int_type 8036: eof() noexcept 8036: { return static_cast((0xffffffffu)); } 8036: 8036: static constexpr int_type 8036: not_eof(const int_type& __c) noexcept 8036: { return eq_int_type(__c, eof()) ? 0 : __c; } 8036: }; 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/cstdint" 1 3 8036: # 32 "/usr/include/c++/8/cstdint" 3 8036: 8036: # 33 "/usr/include/c++/8/cstdint" 3 8036: # 46 "/usr/include/c++/8/cstdint" 3 8036: namespace std 8036: { 8036: using ::int8_t; 8036: using ::int16_t; 8036: using ::int32_t; 8036: using ::int64_t; 8036: 8036: using ::int_fast8_t; 8036: using ::int_fast16_t; 8036: using ::int_fast32_t; 8036: using ::int_fast64_t; 8036: 8036: using ::int_least8_t; 8036: using ::int_least16_t; 8036: using ::int_least32_t; 8036: using ::int_least64_t; 8036: 8036: using ::intmax_t; 8036: using ::intptr_t; 8036: 8036: using ::uint8_t; 8036: using ::uint16_t; 8036: using ::uint32_t; 8036: using ::uint64_t; 8036: 8036: using ::uint_fast8_t; 8036: using ::uint_fast16_t; 8036: using ::uint_fast32_t; 8036: using ::uint_fast64_t; 8036: 8036: using ::uint_least8_t; 8036: using ::uint_least16_t; 8036: using ::uint_least32_t; 8036: using ::uint_least64_t; 8036: 8036: using ::uintmax_t; 8036: using ::uintptr_t; 8036: } 8036: # 502 "/usr/include/c++/8/bits/char_traits.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template<> 8036: struct char_traits 8036: { 8036: typedef char16_t char_type; 8036: typedef uint_least16_t int_type; 8036: typedef streamoff off_type; 8036: typedef u16streampos pos_type; 8036: typedef mbstate_t state_type; 8036: 8036: static void 8036: assign(char_type& __c1, const char_type& __c2) noexcept 8036: { __c1 = __c2; } 8036: 8036: static constexpr bool 8036: eq(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr bool 8036: lt(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 < __c2; } 8036: 8036: static int 8036: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: if (lt(__s1[__i], __s2[__i])) 8036: return -1; 8036: else if (lt(__s2[__i], __s1[__i])) 8036: return 1; 8036: return 0; 8036: } 8036: 8036: static size_t 8036: length(const char_type* __s) 8036: { 8036: size_t __i = 0; 8036: while (!eq(__s[__i], char_type())) 8036: ++__i; 8036: return __i; 8036: } 8036: 8036: static const char_type* 8036: find(const char_type* __s, size_t __n, const char_type& __a) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: if (eq(__s[__i], __a)) 8036: return __s + __i; 8036: return 0; 8036: } 8036: 8036: static char_type* 8036: move(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return (static_cast 8036: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8036: } 8036: 8036: static char_type* 8036: copy(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return (static_cast 8036: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8036: } 8036: 8036: static char_type* 8036: assign(char_type* __s, size_t __n, char_type __a) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: assign(__s[__i], __a); 8036: return __s; 8036: } 8036: 8036: static constexpr char_type 8036: to_char_type(const int_type& __c) noexcept 8036: { return char_type(__c); } 8036: 8036: static constexpr int_type 8036: to_int_type(const char_type& __c) noexcept 8036: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 8036: 8036: static constexpr bool 8036: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr int_type 8036: eof() noexcept 8036: { return static_cast(-1); } 8036: 8036: static constexpr int_type 8036: not_eof(const int_type& __c) noexcept 8036: { return eq_int_type(__c, eof()) ? 0 : __c; } 8036: }; 8036: 8036: template<> 8036: struct char_traits 8036: { 8036: typedef char32_t char_type; 8036: typedef uint_least32_t int_type; 8036: typedef streamoff off_type; 8036: typedef u32streampos pos_type; 8036: typedef mbstate_t state_type; 8036: 8036: static void 8036: assign(char_type& __c1, const char_type& __c2) noexcept 8036: { __c1 = __c2; } 8036: 8036: static constexpr bool 8036: eq(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr bool 8036: lt(const char_type& __c1, const char_type& __c2) noexcept 8036: { return __c1 < __c2; } 8036: 8036: static int 8036: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: if (lt(__s1[__i], __s2[__i])) 8036: return -1; 8036: else if (lt(__s2[__i], __s1[__i])) 8036: return 1; 8036: return 0; 8036: } 8036: 8036: static size_t 8036: length(const char_type* __s) 8036: { 8036: size_t __i = 0; 8036: while (!eq(__s[__i], char_type())) 8036: ++__i; 8036: return __i; 8036: } 8036: 8036: static const char_type* 8036: find(const char_type* __s, size_t __n, const char_type& __a) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: if (eq(__s[__i], __a)) 8036: return __s + __i; 8036: return 0; 8036: } 8036: 8036: static char_type* 8036: move(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return (static_cast 8036: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8036: } 8036: 8036: static char_type* 8036: copy(char_type* __s1, const char_type* __s2, size_t __n) 8036: { 8036: if (__n == 0) 8036: return __s1; 8036: return (static_cast 8036: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8036: } 8036: 8036: static char_type* 8036: assign(char_type* __s, size_t __n, char_type __a) 8036: { 8036: for (size_t __i = 0; __i < __n; ++__i) 8036: assign(__s[__i], __a); 8036: return __s; 8036: } 8036: 8036: static constexpr char_type 8036: to_char_type(const int_type& __c) noexcept 8036: { return char_type(__c); } 8036: 8036: static constexpr int_type 8036: to_int_type(const char_type& __c) noexcept 8036: { return int_type(__c); } 8036: 8036: static constexpr bool 8036: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8036: { return __c1 == __c2; } 8036: 8036: static constexpr int_type 8036: eof() noexcept 8036: { return static_cast(-1); } 8036: 8036: static constexpr int_type 8036: not_eof(const int_type& __c) noexcept 8036: { return eq_int_type(__c, eof()) ? 0 : __c; } 8036: }; 8036: 8036: 8036: } 8036: # 41 "/usr/include/c++/8/ios" 2 3 8036: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++locale.h" 1 3 8036: # 39 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++locale.h" 3 8036: 8036: # 40 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++locale.h" 3 8036: 8036: # 1 "/usr/include/c++/8/clocale" 1 3 8036: # 39 "/usr/include/c++/8/clocale" 3 8036: 8036: # 40 "/usr/include/c++/8/clocale" 3 8036: 8036: 8036: # 1 "/usr/include/locale.h" 1 3 4 8036: # 28 "/usr/include/locale.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 29 "/usr/include/locale.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/locale.h" 1 3 4 8036: # 30 "/usr/include/locale.h" 2 3 4 8036: 8036: extern "C" { 8036: # 51 "/usr/include/locale.h" 3 4 8036: struct lconv 8036: { 8036: 8036: 8036: char *decimal_point; 8036: char *thousands_sep; 8036: 8036: 8036: 8036: 8036: 8036: char *grouping; 8036: 8036: 8036: 8036: 8036: 8036: char *int_curr_symbol; 8036: char *currency_symbol; 8036: char *mon_decimal_point; 8036: char *mon_thousands_sep; 8036: char *mon_grouping; 8036: char *positive_sign; 8036: char *negative_sign; 8036: char int_frac_digits; 8036: char frac_digits; 8036: 8036: char p_cs_precedes; 8036: 8036: char p_sep_by_space; 8036: 8036: char n_cs_precedes; 8036: 8036: char n_sep_by_space; 8036: 8036: 8036: 8036: 8036: 8036: 8036: char p_sign_posn; 8036: char n_sign_posn; 8036: 8036: 8036: char int_p_cs_precedes; 8036: 8036: char int_p_sep_by_space; 8036: 8036: char int_n_cs_precedes; 8036: 8036: char int_n_sep_by_space; 8036: 8036: 8036: 8036: 8036: 8036: 8036: char int_p_sign_posn; 8036: char int_n_sign_posn; 8036: # 118 "/usr/include/locale.h" 3 4 8036: }; 8036: 8036: 8036: 8036: extern char *setlocale (int __category, const char *__locale) throw (); 8036: 8036: 8036: extern struct lconv *localeconv (void) throw (); 8036: # 141 "/usr/include/locale.h" 3 4 8036: extern locale_t newlocale (int __category_mask, const char *__locale, 8036: locale_t __base) throw (); 8036: # 176 "/usr/include/locale.h" 3 4 8036: extern locale_t duplocale (locale_t __dataset) throw (); 8036: 8036: 8036: 8036: extern void freelocale (locale_t __dataset) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern locale_t uselocale (locale_t __dataset) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 43 "/usr/include/c++/8/clocale" 2 3 8036: # 51 "/usr/include/c++/8/clocale" 3 8036: namespace std 8036: { 8036: using ::lconv; 8036: using ::setlocale; 8036: using ::localeconv; 8036: } 8036: # 42 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++locale.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: extern "C" __typeof(uselocale) __uselocale; 8036: 8036: 8036: } 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: typedef __locale_t __c_locale; 8036: 8036: 8036: 8036: 8036: 8036: inline int 8036: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 8036: char* __out, 8036: const int __size __attribute__ ((__unused__)), 8036: const char* __fmt, ...) 8036: { 8036: 8036: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 8036: # 88 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++locale.h" 3 8036: __builtin_va_list __args; 8036: __builtin_va_start(__args, __fmt); 8036: 8036: 8036: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 8036: 8036: 8036: 8036: 8036: __builtin_va_end(__args); 8036: 8036: 8036: __gnu_cxx::__uselocale(__old); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: return __ret; 8036: } 8036: 8036: 8036: } 8036: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/cctype" 1 3 8036: # 39 "/usr/include/c++/8/cctype" 3 8036: 8036: # 40 "/usr/include/c++/8/cctype" 3 8036: 8036: 8036: # 1 "/usr/include/ctype.h" 1 3 4 8036: # 28 "/usr/include/ctype.h" 3 4 8036: extern "C" { 8036: # 46 "/usr/include/ctype.h" 3 4 8036: enum 8036: { 8036: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 8036: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 8036: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 8036: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 8036: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 8036: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 8036: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 8036: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 8036: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 8036: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 8036: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 8036: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 8036: }; 8036: # 79 "/usr/include/ctype.h" 3 4 8036: extern const unsigned short int **__ctype_b_loc (void) 8036: throw () __attribute__ ((__const__)); 8036: extern const __int32_t **__ctype_tolower_loc (void) 8036: throw () __attribute__ ((__const__)); 8036: extern const __int32_t **__ctype_toupper_loc (void) 8036: throw () __attribute__ ((__const__)); 8036: # 108 "/usr/include/ctype.h" 3 4 8036: extern int isalnum (int) throw (); 8036: extern int isalpha (int) throw (); 8036: extern int iscntrl (int) throw (); 8036: extern int isdigit (int) throw (); 8036: extern int islower (int) throw (); 8036: extern int isgraph (int) throw (); 8036: extern int isprint (int) throw (); 8036: extern int ispunct (int) throw (); 8036: extern int isspace (int) throw (); 8036: extern int isupper (int) throw (); 8036: extern int isxdigit (int) throw (); 8036: 8036: 8036: 8036: extern int tolower (int __c) throw (); 8036: 8036: 8036: extern int toupper (int __c) throw (); 8036: 8036: 8036: 8036: 8036: extern int isblank (int) throw (); 8036: 8036: 8036: 8036: 8036: extern int isctype (int __c, int __mask) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int isascii (int __c) throw (); 8036: 8036: 8036: 8036: extern int toascii (int __c) throw (); 8036: 8036: 8036: 8036: extern int _toupper (int) throw (); 8036: extern int _tolower (int) throw (); 8036: # 251 "/usr/include/ctype.h" 3 4 8036: extern int isalnum_l (int, locale_t) throw (); 8036: extern int isalpha_l (int, locale_t) throw (); 8036: extern int iscntrl_l (int, locale_t) throw (); 8036: extern int isdigit_l (int, locale_t) throw (); 8036: extern int islower_l (int, locale_t) throw (); 8036: extern int isgraph_l (int, locale_t) throw (); 8036: extern int isprint_l (int, locale_t) throw (); 8036: extern int ispunct_l (int, locale_t) throw (); 8036: extern int isspace_l (int, locale_t) throw (); 8036: extern int isupper_l (int, locale_t) throw (); 8036: extern int isxdigit_l (int, locale_t) throw (); 8036: 8036: extern int isblank_l (int, locale_t) throw (); 8036: 8036: 8036: 8036: extern int __tolower_l (int __c, locale_t __l) throw (); 8036: extern int tolower_l (int __c, locale_t __l) throw (); 8036: 8036: 8036: extern int __toupper_l (int __c, locale_t __l) throw (); 8036: extern int toupper_l (int __c, locale_t __l) throw (); 8036: # 327 "/usr/include/ctype.h" 3 4 8036: } 8036: # 43 "/usr/include/c++/8/cctype" 2 3 8036: # 62 "/usr/include/c++/8/cctype" 3 8036: namespace std 8036: { 8036: using ::isalnum; 8036: using ::isalpha; 8036: using ::iscntrl; 8036: using ::isdigit; 8036: using ::isgraph; 8036: using ::islower; 8036: using ::isprint; 8036: using ::ispunct; 8036: using ::isspace; 8036: using ::isupper; 8036: using ::isxdigit; 8036: using ::tolower; 8036: using ::toupper; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace std 8036: { 8036: using ::isblank; 8036: } 8036: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 8036: class locale; 8036: 8036: template 8036: bool 8036: has_facet(const locale&) throw(); 8036: 8036: template 8036: const _Facet& 8036: use_facet(const locale&); 8036: 8036: 8036: template 8036: bool 8036: isspace(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isprint(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: iscntrl(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isupper(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: islower(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isalpha(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isdigit(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: ispunct(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isxdigit(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isalnum(_CharT, const locale&); 8036: 8036: template 8036: bool 8036: isgraph(_CharT, const locale&); 8036: 8036: 8036: template 8036: bool 8036: isblank(_CharT, const locale&); 8036: 8036: 8036: template 8036: _CharT 8036: toupper(_CharT, const locale&); 8036: 8036: template 8036: _CharT 8036: tolower(_CharT, const locale&); 8036: 8036: 8036: class ctype_base; 8036: template 8036: class ctype; 8036: template<> class ctype; 8036: 8036: template<> class ctype; 8036: 8036: template 8036: class ctype_byname; 8036: 8036: 8036: class codecvt_base; 8036: template 8036: class codecvt; 8036: template<> class codecvt; 8036: 8036: template<> class codecvt; 8036: 8036: template 8036: class codecvt_byname; 8036: 8036: 8036: namespace __gnu_cxx_ldbl128 { 8036: template > 8036: class num_get; 8036: template > 8036: class num_put; 8036: } 8036: namespace __cxx11 { 8036: template class numpunct; 8036: template class numpunct_byname; 8036: } 8036: 8036: namespace __cxx11 { 8036: 8036: template 8036: class collate; 8036: template 8036: class collate_byname; 8036: } 8036: 8036: 8036: class time_base; 8036: namespace __cxx11 { 8036: template > 8036: class time_get; 8036: template > 8036: class time_get_byname; 8036: } 8036: template > 8036: class time_put; 8036: template > 8036: class time_put_byname; 8036: 8036: 8036: class money_base; 8036: namespace __cxx11 { 8036: template > 8036: class money_get; 8036: template > 8036: class money_put; 8036: } 8036: namespace __cxx11 { 8036: template 8036: class moneypunct; 8036: template 8036: class moneypunct_byname; 8036: } 8036: 8036: 8036: class messages_base; 8036: namespace __cxx11 { 8036: template 8036: class messages; 8036: template 8036: class messages_byname; 8036: } 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/ios" 2 3 8036: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 8036: 8036: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr.h" 1 3 8036: # 30 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr.h" 3 8036: #pragma GCC visibility push(default) 8036: # 148 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr.h" 3 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 1 3 8036: # 35 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: # 1 "/usr/include/pthread.h" 1 3 4 8036: # 23 "/usr/include/pthread.h" 3 4 8036: # 1 "/usr/include/sched.h" 1 3 4 8036: # 29 "/usr/include/sched.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 30 "/usr/include/sched.h" 2 3 4 8036: # 43 "/usr/include/sched.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/sched.h" 1 3 4 8036: # 75 "/usr/include/powerpc64le-linux-gnu/bits/sched.h" 3 4 8036: struct sched_param 8036: { 8036: int sched_priority; 8036: }; 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 8036: int __flags, void *__arg, ...) throw (); 8036: 8036: 8036: extern int unshare (int __flags) throw (); 8036: 8036: 8036: extern int sched_getcpu (void) throw (); 8036: 8036: 8036: extern int setns (int __fd, int __nstype) throw (); 8036: 8036: 8036: } 8036: # 44 "/usr/include/sched.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/cpu-set.h" 1 3 4 8036: # 32 "/usr/include/powerpc64le-linux-gnu/bits/cpu-set.h" 3 4 8036: typedef unsigned long int __cpu_mask; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef struct 8036: { 8036: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 8036: } cpu_set_t; 8036: # 115 "/usr/include/powerpc64le-linux-gnu/bits/cpu-set.h" 3 4 8036: extern "C" { 8036: 8036: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 8036: throw (); 8036: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 8036: extern void __sched_cpufree (cpu_set_t *__set) throw (); 8036: 8036: } 8036: # 45 "/usr/include/sched.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 8036: throw (); 8036: 8036: 8036: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 8036: 8036: 8036: extern int sched_setscheduler (__pid_t __pid, int __policy, 8036: const struct sched_param *__param) throw (); 8036: 8036: 8036: extern int sched_getscheduler (__pid_t __pid) throw (); 8036: 8036: 8036: extern int sched_yield (void) throw (); 8036: 8036: 8036: extern int sched_get_priority_max (int __algorithm) throw (); 8036: 8036: 8036: extern int sched_get_priority_min (int __algorithm) throw (); 8036: 8036: 8036: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 8036: # 121 "/usr/include/sched.h" 3 4 8036: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 8036: const cpu_set_t *__cpuset) throw (); 8036: 8036: 8036: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 8036: cpu_set_t *__cpuset) throw (); 8036: 8036: 8036: } 8036: # 24 "/usr/include/pthread.h" 2 3 4 8036: # 1 "/usr/include/time.h" 1 3 4 8036: # 29 "/usr/include/time.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 30 "/usr/include/time.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/time.h" 1 3 4 8036: # 73 "/usr/include/powerpc64le-linux-gnu/bits/time.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/timex.h" 1 3 4 8036: # 26 "/usr/include/powerpc64le-linux-gnu/bits/timex.h" 3 4 8036: struct timex 8036: { 8036: unsigned int modes; 8036: __syscall_slong_t offset; 8036: __syscall_slong_t freq; 8036: __syscall_slong_t maxerror; 8036: __syscall_slong_t esterror; 8036: int status; 8036: __syscall_slong_t constant; 8036: __syscall_slong_t precision; 8036: __syscall_slong_t tolerance; 8036: struct timeval time; 8036: __syscall_slong_t tick; 8036: __syscall_slong_t ppsfreq; 8036: __syscall_slong_t jitter; 8036: int shift; 8036: __syscall_slong_t stabil; 8036: __syscall_slong_t jitcnt; 8036: __syscall_slong_t calcnt; 8036: __syscall_slong_t errcnt; 8036: __syscall_slong_t stbcnt; 8036: 8036: int tai; 8036: 8036: 8036: int :32; int :32; int :32; int :32; 8036: int :32; int :32; int :32; int :32; 8036: int :32; int :32; int :32; 8036: }; 8036: # 74 "/usr/include/powerpc64le-linux-gnu/bits/time.h" 2 3 4 8036: 8036: extern "C" { 8036: 8036: 8036: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 8036: 8036: } 8036: # 34 "/usr/include/time.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/struct_tm.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct tm 8036: { 8036: int tm_sec; 8036: int tm_min; 8036: int tm_hour; 8036: int tm_mday; 8036: int tm_mon; 8036: int tm_year; 8036: int tm_wday; 8036: int tm_yday; 8036: int tm_isdst; 8036: 8036: 8036: long int tm_gmtoff; 8036: const char *tm_zone; 8036: 8036: 8036: 8036: 8036: }; 8036: # 40 "/usr/include/time.h" 2 3 4 8036: # 48 "/usr/include/time.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct itimerspec 8036: { 8036: struct timespec it_interval; 8036: struct timespec it_value; 8036: }; 8036: # 49 "/usr/include/time.h" 2 3 4 8036: struct sigevent; 8036: # 68 "/usr/include/time.h" 3 4 8036: extern "C" { 8036: 8036: 8036: 8036: extern clock_t clock (void) throw (); 8036: 8036: 8036: extern time_t time (time_t *__timer) throw (); 8036: 8036: 8036: extern double difftime (time_t __time1, time_t __time0) 8036: throw () __attribute__ ((__const__)); 8036: 8036: 8036: extern time_t mktime (struct tm *__tp) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern size_t strftime (char *__restrict __s, size_t __maxsize, 8036: const char *__restrict __format, 8036: const struct tm *__restrict __tp) throw (); 8036: 8036: 8036: 8036: 8036: extern char *strptime (const char *__restrict __s, 8036: const char *__restrict __fmt, struct tm *__tp) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 8036: const char *__restrict __format, 8036: const struct tm *__restrict __tp, 8036: locale_t __loc) throw (); 8036: 8036: 8036: 8036: extern char *strptime_l (const char *__restrict __s, 8036: const char *__restrict __fmt, struct tm *__tp, 8036: locale_t __loc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern struct tm *gmtime (const time_t *__timer) throw (); 8036: 8036: 8036: 8036: extern struct tm *localtime (const time_t *__timer) throw (); 8036: 8036: 8036: 8036: 8036: extern struct tm *gmtime_r (const time_t *__restrict __timer, 8036: struct tm *__restrict __tp) throw (); 8036: 8036: 8036: 8036: extern struct tm *localtime_r (const time_t *__restrict __timer, 8036: struct tm *__restrict __tp) throw (); 8036: 8036: 8036: 8036: 8036: extern char *asctime (const struct tm *__tp) throw (); 8036: 8036: 8036: extern char *ctime (const time_t *__timer) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *asctime_r (const struct tm *__restrict __tp, 8036: char *__restrict __buf) throw (); 8036: 8036: 8036: extern char *ctime_r (const time_t *__restrict __timer, 8036: char *__restrict __buf) throw (); 8036: 8036: 8036: 8036: 8036: extern char *__tzname[2]; 8036: extern int __daylight; 8036: extern long int __timezone; 8036: 8036: 8036: 8036: 8036: extern char *tzname[2]; 8036: 8036: 8036: 8036: extern void tzset (void) throw (); 8036: 8036: 8036: 8036: extern int daylight; 8036: extern long int timezone; 8036: 8036: 8036: 8036: 8036: 8036: extern int stime (const time_t *__when) throw (); 8036: # 196 "/usr/include/time.h" 3 4 8036: extern time_t timegm (struct tm *__tp) throw (); 8036: 8036: 8036: extern time_t timelocal (struct tm *__tp) throw (); 8036: 8036: 8036: extern int dysize (int __year) throw () __attribute__ ((__const__)); 8036: # 211 "/usr/include/time.h" 3 4 8036: extern int nanosleep (const struct timespec *__requested_time, 8036: struct timespec *__remaining); 8036: 8036: 8036: 8036: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 8036: 8036: 8036: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 8036: 8036: 8036: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 8036: const struct timespec *__req, 8036: struct timespec *__rem); 8036: 8036: 8036: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 8036: 8036: 8036: 8036: 8036: extern int timer_create (clockid_t __clock_id, 8036: struct sigevent *__restrict __evp, 8036: timer_t *__restrict __timerid) throw (); 8036: 8036: 8036: extern int timer_delete (timer_t __timerid) throw (); 8036: 8036: 8036: extern int timer_settime (timer_t __timerid, int __flags, 8036: const struct itimerspec *__restrict __value, 8036: struct itimerspec *__restrict __ovalue) throw (); 8036: 8036: 8036: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 8036: throw (); 8036: 8036: 8036: extern int timer_getoverrun (timer_t __timerid) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int timespec_get (struct timespec *__ts, int __base) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 280 "/usr/include/time.h" 3 4 8036: extern int getdate_err; 8036: # 289 "/usr/include/time.h" 3 4 8036: extern struct tm *getdate (const char *__string); 8036: # 303 "/usr/include/time.h" 3 4 8036: extern int getdate_r (const char *__restrict __string, 8036: struct tm *__restrict __resbufp); 8036: 8036: 8036: } 8036: # 25 "/usr/include/pthread.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/setjmp.h" 1 3 4 8036: # 31 "/usr/include/powerpc64le-linux-gnu/bits/setjmp.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 32 "/usr/include/powerpc64le-linux-gnu/bits/setjmp.h" 2 3 4 8036: # 42 "/usr/include/powerpc64le-linux-gnu/bits/setjmp.h" 3 4 8036: typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16))); 8036: # 28 "/usr/include/pthread.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 29 "/usr/include/pthread.h" 2 3 4 8036: 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_CREATE_JOINABLE, 8036: 8036: PTHREAD_CREATE_DETACHED 8036: 8036: }; 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_MUTEX_TIMED_NP, 8036: PTHREAD_MUTEX_RECURSIVE_NP, 8036: PTHREAD_MUTEX_ERRORCHECK_NP, 8036: PTHREAD_MUTEX_ADAPTIVE_NP 8036: 8036: , 8036: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 8036: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 8036: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 8036: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 8036: 8036: 8036: 8036: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_MUTEX_STALLED, 8036: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 8036: PTHREAD_MUTEX_ROBUST, 8036: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_PRIO_NONE, 8036: PTHREAD_PRIO_INHERIT, 8036: PTHREAD_PRIO_PROTECT 8036: }; 8036: # 115 "/usr/include/pthread.h" 3 4 8036: enum 8036: { 8036: PTHREAD_RWLOCK_PREFER_READER_NP, 8036: PTHREAD_RWLOCK_PREFER_WRITER_NP, 8036: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 8036: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 8036: }; 8036: # 156 "/usr/include/pthread.h" 3 4 8036: enum 8036: { 8036: PTHREAD_INHERIT_SCHED, 8036: 8036: PTHREAD_EXPLICIT_SCHED 8036: 8036: }; 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_SCOPE_SYSTEM, 8036: 8036: PTHREAD_SCOPE_PROCESS 8036: 8036: }; 8036: 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_PROCESS_PRIVATE, 8036: 8036: PTHREAD_PROCESS_SHARED 8036: 8036: }; 8036: # 191 "/usr/include/pthread.h" 3 4 8036: struct _pthread_cleanup_buffer 8036: { 8036: void (*__routine) (void *); 8036: void *__arg; 8036: int __canceltype; 8036: struct _pthread_cleanup_buffer *__prev; 8036: }; 8036: 8036: 8036: enum 8036: { 8036: PTHREAD_CANCEL_ENABLE, 8036: 8036: PTHREAD_CANCEL_DISABLE 8036: 8036: }; 8036: enum 8036: { 8036: PTHREAD_CANCEL_DEFERRED, 8036: 8036: PTHREAD_CANCEL_ASYNCHRONOUS 8036: 8036: }; 8036: # 229 "/usr/include/pthread.h" 3 4 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: extern int pthread_create (pthread_t *__restrict __newthread, 8036: const pthread_attr_t *__restrict __attr, 8036: void *(*__start_routine) (void *), 8036: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: 8036: 8036: 8036: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_join (pthread_t __th, void **__thread_return); 8036: 8036: 8036: 8036: 8036: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 8036: const struct timespec *__abstime); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_detach (pthread_t __th) throw (); 8036: 8036: 8036: 8036: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 8036: 8036: 8036: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 8036: throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_attr_destroy (pthread_attr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 8036: int *__detachstate) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 8036: int __detachstate) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 8036: size_t *__guardsize) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 8036: size_t __guardsize) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 8036: struct sched_param *__restrict __param) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 8036: const struct sched_param *__restrict 8036: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 8036: __attr, int *__restrict __policy) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 8036: __attr, int *__restrict __inherit) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 8036: int __inherit) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 8036: int *__restrict __scope) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 8036: __attr, void **__restrict __stackaddr) 8036: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 8036: void *__stackaddr) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 8036: 8036: 8036: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 8036: __attr, size_t *__restrict __stacksize) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 8036: size_t __stacksize) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 8036: void **__restrict __stackaddr, 8036: size_t *__restrict __stacksize) 8036: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 8036: 8036: 8036: 8036: 8036: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 8036: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 8036: size_t __cpusetsize, 8036: const cpu_set_t *__cpuset) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: 8036: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 8036: size_t __cpusetsize, 8036: cpu_set_t *__cpuset) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 8036: const struct sched_param *__param) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: 8036: extern int pthread_getschedparam (pthread_t __target_thread, 8036: int *__restrict __policy, 8036: struct sched_param *__restrict __param) 8036: throw () __attribute__ ((__nonnull__ (2, 3))); 8036: 8036: 8036: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 8036: throw (); 8036: 8036: 8036: 8036: 8036: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 8036: size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_getconcurrency (void) throw (); 8036: 8036: 8036: extern int pthread_setconcurrency (int __level) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_yield (void) throw (); 8036: 8036: 8036: 8036: 8036: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 8036: const cpu_set_t *__cpuset) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: 8036: 8036: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 8036: cpu_set_t *__cpuset) 8036: throw () __attribute__ ((__nonnull__ (3))); 8036: # 495 "/usr/include/pthread.h" 3 4 8036: extern int pthread_once (pthread_once_t *__once_control, 8036: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 8036: # 507 "/usr/include/pthread.h" 3 4 8036: extern int pthread_setcancelstate (int __state, int *__oldstate); 8036: 8036: 8036: 8036: extern int pthread_setcanceltype (int __type, int *__oldtype); 8036: 8036: 8036: extern int pthread_cancel (pthread_t __th); 8036: 8036: 8036: 8036: 8036: extern void pthread_testcancel (void); 8036: 8036: 8036: 8036: 8036: typedef struct 8036: { 8036: struct 8036: { 8036: __jmp_buf __cancel_jmp_buf; 8036: int __mask_was_saved; 8036: } __cancel_jmp_buf[1]; 8036: void *__pad[4]; 8036: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 8036: # 541 "/usr/include/pthread.h" 3 4 8036: struct __pthread_cleanup_frame 8036: { 8036: void (*__cancel_routine) (void *); 8036: void *__cancel_arg; 8036: int __do_it; 8036: int __cancel_type; 8036: }; 8036: # 681 "/usr/include/pthread.h" 3 4 8036: extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) 8036: ; 8036: # 693 "/usr/include/pthread.h" 3 4 8036: extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) 8036: ; 8036: # 716 "/usr/include/pthread.h" 3 4 8036: extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) 8036: ; 8036: # 729 "/usr/include/pthread.h" 3 4 8036: extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) 8036: ; 8036: 8036: 8036: 8036: extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) 8036: __attribute__ ((__noreturn__)) 8036: 8036: __attribute__ ((__weak__)) 8036: 8036: ; 8036: 8036: 8036: 8036: struct __jmp_buf_tag; 8036: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 8036: const pthread_mutexattr_t *__mutexattr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 8036: const struct timespec *__restrict 8036: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 8036: __restrict __mutex, 8036: int *__restrict __prioceiling) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 8036: int __prioceiling, 8036: int *__restrict __old_ceiling) 8036: throw () __attribute__ ((__nonnull__ (1, 3))); 8036: 8036: 8036: 8036: 8036: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 807 "/usr/include/pthread.h" 3 4 8036: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 8036: __restrict __attr, 8036: int *__restrict __pshared) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 8036: int __pshared) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 8036: __attr, int *__restrict __kind) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 8036: __restrict __attr, 8036: int *__restrict __protocol) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 8036: int __protocol) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 8036: __restrict __attr, 8036: int *__restrict __prioceiling) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 8036: int __prioceiling) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 8036: int *__robustness) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 8036: int *__robustness) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 8036: int __robustness) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 8036: int __robustness) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 889 "/usr/include/pthread.h" 3 4 8036: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 8036: const pthread_rwlockattr_t *__restrict 8036: __attr) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 8036: const struct timespec *__restrict 8036: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 8036: const struct timespec *__restrict 8036: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 8036: __restrict __attr, 8036: int *__restrict __pshared) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 8036: int __pshared) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 8036: __restrict __attr, 8036: int *__restrict __pref) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 8036: int __pref) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 8036: const pthread_condattr_t *__restrict __cond_attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_cond_destroy (pthread_cond_t *__cond) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_cond_signal (pthread_cond_t *__cond) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 8036: pthread_mutex_t *__restrict __mutex) 8036: __attribute__ ((__nonnull__ (1, 2))); 8036: # 1001 "/usr/include/pthread.h" 3 4 8036: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 8036: pthread_mutex_t *__restrict __mutex, 8036: const struct timespec *__restrict __abstime) 8036: __attribute__ ((__nonnull__ (1, 2, 3))); 8036: 8036: 8036: 8036: 8036: extern int pthread_condattr_init (pthread_condattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_condattr_getpshared (const pthread_condattr_t * 8036: __restrict __attr, 8036: int *__restrict __pshared) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 8036: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_condattr_getclock (const pthread_condattr_t * 8036: __restrict __attr, 8036: __clockid_t *__restrict __clock_id) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 8036: __clockid_t __clock_id) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 1045 "/usr/include/pthread.h" 3 4 8036: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 8036: const pthread_barrierattr_t *__restrict 8036: __attr, unsigned int __count) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 8036: __restrict __attr, 8036: int *__restrict __pshared) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 8036: int __pshared) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: # 1112 "/usr/include/pthread.h" 3 4 8036: extern int pthread_key_create (pthread_key_t *__key, 8036: void (*__destr_function) (void *)) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int pthread_key_delete (pthread_key_t __key) throw (); 8036: 8036: 8036: extern void *pthread_getspecific (pthread_key_t __key) throw (); 8036: 8036: 8036: extern int pthread_setspecific (pthread_key_t __key, 8036: const void *__pointer) throw () ; 8036: 8036: 8036: 8036: 8036: extern int pthread_getcpuclockid (pthread_t __thread_id, 8036: __clockid_t *__clock_id) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: # 1146 "/usr/include/pthread.h" 3 4 8036: extern int pthread_atfork (void (*__prepare) (void), 8036: void (*__parent) (void), 8036: void (*__child) (void)) throw (); 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 8036: { 8036: return __thread1 == __thread2; 8036: } 8036: 8036: 8036: } 8036: # 36 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 2 3 8036: # 47 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: typedef pthread_t __gthread_t; 8036: typedef pthread_key_t __gthread_key_t; 8036: typedef pthread_once_t __gthread_once_t; 8036: typedef pthread_mutex_t __gthread_mutex_t; 8036: typedef pthread_mutex_t __gthread_recursive_mutex_t; 8036: typedef pthread_cond_t __gthread_cond_t; 8036: typedef struct timespec __gthread_time_t; 8036: # 101 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 8036: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 8036: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 8036: 8036: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 8036: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 8036: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 8036: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 8036: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 8036: 8036: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 8036: 8036: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 8036: 8036: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 8036: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 8036: 8036: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 8036: 8036: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 8036: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 8036: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 8036: 8036: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 8036: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 8036: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 8036: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 8036: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 8036: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 8036: 8036: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 8036: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 8036: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 8036: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 8036: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 8036: # 236 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 8036: # 246 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static inline int 8036: __gthread_active_p (void) 8036: { 8036: static void *const __gthread_active_ptr 8036: = __extension__ (void *) &__gthrw___pthread_key_create; 8036: return __gthread_active_ptr != 0; 8036: } 8036: # 658 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static inline int 8036: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 8036: void *__args) 8036: { 8036: return __gthrw_pthread_create (__threadid, __null, __func, __args); 8036: } 8036: 8036: static inline int 8036: __gthread_join (__gthread_t __threadid, void **__value_ptr) 8036: { 8036: return __gthrw_pthread_join (__threadid, __value_ptr); 8036: } 8036: 8036: static inline int 8036: __gthread_detach (__gthread_t __threadid) 8036: { 8036: return __gthrw_pthread_detach (__threadid); 8036: } 8036: 8036: static inline int 8036: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 8036: { 8036: return __gthrw_pthread_equal (__t1, __t2); 8036: } 8036: 8036: static inline __gthread_t 8036: __gthread_self (void) 8036: { 8036: return __gthrw_pthread_self (); 8036: } 8036: 8036: static inline int 8036: __gthread_yield (void) 8036: { 8036: return __gthrw_sched_yield (); 8036: } 8036: 8036: static inline int 8036: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_once (__once, __func); 8036: else 8036: return -1; 8036: } 8036: 8036: static inline int 8036: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 8036: { 8036: return __gthrw_pthread_key_create (__key, __dtor); 8036: } 8036: 8036: static inline int 8036: __gthread_key_delete (__gthread_key_t __key) 8036: { 8036: return __gthrw_pthread_key_delete (__key); 8036: } 8036: 8036: static inline void * 8036: __gthread_getspecific (__gthread_key_t __key) 8036: { 8036: return __gthrw_pthread_getspecific (__key); 8036: } 8036: 8036: static inline int 8036: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 8036: { 8036: return __gthrw_pthread_setspecific (__key, __ptr); 8036: } 8036: 8036: static inline void 8036: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 8036: { 8036: if (__gthread_active_p ()) 8036: __gthrw_pthread_mutex_init (__mutex, __null); 8036: } 8036: 8036: static inline int 8036: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_mutex_destroy (__mutex); 8036: else 8036: return 0; 8036: } 8036: 8036: static inline int 8036: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_mutex_lock (__mutex); 8036: else 8036: return 0; 8036: } 8036: 8036: static inline int 8036: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_mutex_trylock (__mutex); 8036: else 8036: return 0; 8036: } 8036: 8036: 8036: static inline int 8036: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 8036: const __gthread_time_t *__abs_timeout) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 8036: else 8036: return 0; 8036: } 8036: 8036: 8036: static inline int 8036: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 8036: { 8036: if (__gthread_active_p ()) 8036: return __gthrw_pthread_mutex_unlock (__mutex); 8036: else 8036: return 0; 8036: } 8036: # 807 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static inline int 8036: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 8036: { 8036: return __gthread_mutex_lock (__mutex); 8036: } 8036: 8036: static inline int 8036: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 8036: { 8036: return __gthread_mutex_trylock (__mutex); 8036: } 8036: 8036: 8036: static inline int 8036: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 8036: const __gthread_time_t *__abs_timeout) 8036: { 8036: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 8036: } 8036: 8036: 8036: static inline int 8036: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 8036: { 8036: return __gthread_mutex_unlock (__mutex); 8036: } 8036: 8036: static inline int 8036: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 8036: { 8036: return __gthread_mutex_destroy (__mutex); 8036: } 8036: # 849 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr-default.h" 3 8036: static inline int 8036: __gthread_cond_broadcast (__gthread_cond_t *__cond) 8036: { 8036: return __gthrw_pthread_cond_broadcast (__cond); 8036: } 8036: 8036: static inline int 8036: __gthread_cond_signal (__gthread_cond_t *__cond) 8036: { 8036: return __gthrw_pthread_cond_signal (__cond); 8036: } 8036: 8036: static inline int 8036: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 8036: { 8036: return __gthrw_pthread_cond_wait (__cond, __mutex); 8036: } 8036: 8036: static inline int 8036: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 8036: const __gthread_time_t *__abs_timeout) 8036: { 8036: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 8036: } 8036: 8036: static inline int 8036: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 8036: __gthread_recursive_mutex_t *__mutex) 8036: { 8036: return __gthread_cond_wait (__cond, __mutex); 8036: } 8036: 8036: static inline int 8036: __gthread_cond_destroy (__gthread_cond_t* __cond) 8036: { 8036: return __gthrw_pthread_cond_destroy (__cond); 8036: } 8036: # 149 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/gthr.h" 2 3 8036: 8036: 8036: #pragma GCC visibility pop 8036: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/atomic_word.h" 1 3 8036: # 32 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/atomic_word.h" 3 8036: typedef int _Atomic_word; 8036: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: static inline _Atomic_word 8036: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 8036: { return __atomic_fetch_add(__mem, __val, 4); } 8036: 8036: static inline void 8036: __atomic_add(volatile _Atomic_word* __mem, int __val) 8036: { __atomic_fetch_add(__mem, __val, 4); } 8036: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 8036: static inline _Atomic_word 8036: __exchange_and_add_single(_Atomic_word* __mem, int __val) 8036: { 8036: _Atomic_word __result = *__mem; 8036: *__mem += __val; 8036: return __result; 8036: } 8036: 8036: static inline void 8036: __atomic_add_single(_Atomic_word* __mem, int __val) 8036: { *__mem += __val; } 8036: 8036: static inline _Atomic_word 8036: __attribute__ ((__unused__)) 8036: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 8036: { 8036: 8036: if (__gthread_active_p()) 8036: return __exchange_and_add(__mem, __val); 8036: else 8036: return __exchange_and_add_single(__mem, __val); 8036: 8036: 8036: 8036: } 8036: 8036: static inline void 8036: __attribute__ ((__unused__)) 8036: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 8036: { 8036: 8036: if (__gthread_active_p()) 8036: __atomic_add(__mem, __val); 8036: else 8036: __atomic_add_single(__mem, __val); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: } 8036: # 40 "/usr/include/c++/8/bits/ios_base.h" 2 3 8036: 8036: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/string" 1 3 8036: # 36 "/usr/include/c++/8/string" 3 8036: 8036: # 37 "/usr/include/c++/8/string" 3 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 8036: # 46 "/usr/include/c++/8/bits/allocator.h" 3 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++allocator.h" 1 3 8036: # 33 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++allocator.h" 3 8036: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 8036: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: using std::size_t; 8036: using std::ptrdiff_t; 8036: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 8036: template 8036: class new_allocator 8036: { 8036: public: 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Tp* pointer; 8036: typedef const _Tp* const_pointer; 8036: typedef _Tp& reference; 8036: typedef const _Tp& const_reference; 8036: typedef _Tp value_type; 8036: 8036: template 8036: struct rebind 8036: { typedef new_allocator<_Tp1> other; }; 8036: 8036: 8036: 8036: 8036: typedef std::true_type propagate_on_container_move_assignment; 8036: 8036: 8036: new_allocator() noexcept { } 8036: 8036: new_allocator(const new_allocator&) noexcept { } 8036: 8036: template 8036: new_allocator(const new_allocator<_Tp1>&) noexcept { } 8036: 8036: ~new_allocator() noexcept { } 8036: 8036: pointer 8036: address(reference __x) const noexcept 8036: { return std::__addressof(__x); } 8036: 8036: const_pointer 8036: address(const_reference __x) const noexcept 8036: { return std::__addressof(__x); } 8036: 8036: 8036: 8036: pointer 8036: allocate(size_type __n, const void* = static_cast(0)) 8036: { 8036: if (__n > this->max_size()) 8036: std::__throw_bad_alloc(); 8036: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 8036: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 8036: } 8036: 8036: 8036: void 8036: deallocate(pointer __p, size_type) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ::operator delete(__p); 8036: } 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return size_t(-1) / sizeof(_Tp); } 8036: 8036: 8036: template 8036: void 8036: construct(_Up* __p, _Args&&... __args) 8036: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: void 8036: destroy(_Up* __p) { __p->~_Up(); } 8036: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8036: { return true; } 8036: 8036: template 8036: inline bool 8036: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8036: { return false; } 8036: 8036: 8036: } 8036: # 34 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++allocator.h" 2 3 8036: 8036: 8036: namespace std 8036: { 8036: # 47 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/c++allocator.h" 3 8036: template 8036: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 8036: } 8036: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 8036: # 57 "/usr/include/c++/8/bits/allocator.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: class allocator 8036: { 8036: public: 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef void* pointer; 8036: typedef const void* const_pointer; 8036: typedef void value_type; 8036: 8036: template 8036: struct rebind 8036: { typedef allocator<_Tp1> other; }; 8036: 8036: 8036: 8036: 8036: typedef true_type propagate_on_container_move_assignment; 8036: 8036: typedef true_type is_always_equal; 8036: 8036: template 8036: void 8036: construct(_Up* __p, _Args&&... __args) 8036: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: void 8036: destroy(_Up* __p) { __p->~_Up(); } 8036: 8036: }; 8036: # 107 "/usr/include/c++/8/bits/allocator.h" 3 8036: template 8036: class allocator : public __allocator_base<_Tp> 8036: { 8036: public: 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Tp* pointer; 8036: typedef const _Tp* const_pointer; 8036: typedef _Tp& reference; 8036: typedef const _Tp& const_reference; 8036: typedef _Tp value_type; 8036: 8036: template 8036: struct rebind 8036: { typedef allocator<_Tp1> other; }; 8036: 8036: 8036: 8036: 8036: typedef true_type propagate_on_container_move_assignment; 8036: 8036: typedef true_type is_always_equal; 8036: 8036: 8036: allocator() throw() { } 8036: 8036: allocator(const allocator& __a) throw() 8036: : __allocator_base<_Tp>(__a) { } 8036: 8036: template 8036: allocator(const allocator<_Tp1>&) throw() { } 8036: 8036: ~allocator() throw() { } 8036: 8036: 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const allocator<_T1>&, const allocator<_T2>&) 8036: noexcept 8036: { return true; } 8036: 8036: template 8036: inline bool 8036: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 8036: noexcept 8036: { return true; } 8036: 8036: template 8036: inline bool 8036: operator!=(const allocator<_T1>&, const allocator<_T2>&) 8036: noexcept 8036: { return false; } 8036: 8036: template 8036: inline bool 8036: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 8036: noexcept 8036: { return false; } 8036: 8036: 8036: 8036: template 8036: class allocator 8036: { 8036: public: 8036: typedef _Tp value_type; 8036: template allocator(const allocator<_Up>&) { } 8036: }; 8036: 8036: template 8036: class allocator 8036: { 8036: public: 8036: typedef _Tp value_type; 8036: template allocator(const allocator<_Up>&) { } 8036: }; 8036: 8036: template 8036: class allocator 8036: { 8036: public: 8036: typedef _Tp value_type; 8036: template allocator(const allocator<_Up>&) { } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern template class allocator; 8036: extern template class allocator; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __alloc_swap 8036: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 8036: 8036: template 8036: struct __alloc_swap<_Alloc, false> 8036: { 8036: static void 8036: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 8036: { 8036: 8036: if (__one != __two) 8036: swap(__one, __two); 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct __alloc_neq 8036: { 8036: static bool 8036: _S_do_it(const _Alloc&, const _Alloc&) 8036: { return false; } 8036: }; 8036: 8036: template 8036: struct __alloc_neq<_Alloc, false> 8036: { 8036: static bool 8036: _S_do_it(const _Alloc& __one, const _Alloc& __two) 8036: { return __one != __two; } 8036: }; 8036: 8036: 8036: template, 8036: is_nothrow_move_constructible>::value> 8036: struct __shrink_to_fit_aux 8036: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 8036: 8036: template 8036: struct __shrink_to_fit_aux<_Tp, true> 8036: { 8036: static bool 8036: _S_do_it(_Tp& __c) noexcept 8036: { 8036: # 264 "/usr/include/c++/8/bits/allocator.h" 3 8036: return false; 8036: 8036: } 8036: }; 8036: 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/string" 2 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 8036: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8036: 8036: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8036: 8036: #pragma GCC visibility push(default) 8036: 8036: 8036: namespace __cxxabiv1 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class __forced_unwind 8036: { 8036: virtual ~__forced_unwind() throw(); 8036: 8036: 8036: virtual void __pure_dummy() = 0; 8036: }; 8036: } 8036: 8036: 8036: #pragma GCC visibility pop 8036: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: inline void 8036: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 8036: const _CharT* __s, streamsize __n) 8036: { 8036: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8036: typedef typename __ostream_type::ios_base __ios_base; 8036: 8036: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 8036: if (__put != __n) 8036: __out.setstate(__ios_base::badbit); 8036: } 8036: 8036: template 8036: inline void 8036: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 8036: { 8036: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8036: typedef typename __ostream_type::ios_base __ios_base; 8036: 8036: const _CharT __c = __out.fill(); 8036: for (; __n > 0; --__n) 8036: { 8036: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 8036: if (_Traits::eq_int_type(__put, _Traits::eof())) 8036: { 8036: __out.setstate(__ios_base::badbit); 8036: break; 8036: } 8036: } 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 8036: const _CharT* __s, streamsize __n) 8036: { 8036: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8036: typedef typename __ostream_type::ios_base __ios_base; 8036: 8036: typename __ostream_type::sentry __cerb(__out); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: const streamsize __w = __out.width(); 8036: if (__w > __n) 8036: { 8036: const bool __left = ((__out.flags() 8036: & __ios_base::adjustfield) 8036: == __ios_base::left); 8036: if (!__left) 8036: __ostream_fill(__out, __w - __n); 8036: if (__out.good()) 8036: __ostream_write(__out, __s, __n); 8036: if (__left && __out.good()) 8036: __ostream_fill(__out, __w - __n); 8036: } 8036: else 8036: __ostream_write(__out, __s, __n); 8036: __out.width(0); 8036: } 8036: if (false) 8036: { 8036: __out._M_setstate(__ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { __out._M_setstate(__ios_base::badbit); } 8036: } 8036: return __out; 8036: } 8036: 8036: 8036: 8036: 8036: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 8036: 8036: 8036: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 8036: streamsize); 8036: 8036: 8036: 8036: 8036: } 8036: # 45 "/usr/include/c++/8/string" 2 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 8036: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: struct unary_function 8036: { 8036: 8036: typedef _Arg argument_type; 8036: 8036: 8036: typedef _Result result_type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct binary_function 8036: { 8036: 8036: typedef _Arg1 first_argument_type; 8036: 8036: 8036: typedef _Arg2 second_argument_type; 8036: 8036: 8036: typedef _Result result_type; 8036: }; 8036: # 166 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: struct plus : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x + __y; } 8036: }; 8036: 8036: 8036: template 8036: struct minus : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x - __y; } 8036: }; 8036: 8036: 8036: template 8036: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x * __y; } 8036: }; 8036: 8036: 8036: template 8036: struct divides : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x / __y; } 8036: }; 8036: 8036: 8036: template 8036: struct modulus : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x % __y; } 8036: }; 8036: 8036: 8036: template 8036: struct negate : public unary_function<_Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x) const 8036: { return -__x; } 8036: }; 8036: # 350 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: struct equal_to : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x == __y; } 8036: }; 8036: 8036: 8036: template 8036: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x != __y; } 8036: }; 8036: 8036: 8036: template 8036: struct greater : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x > __y; } 8036: }; 8036: 8036: 8036: template 8036: struct less : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x < __y; } 8036: }; 8036: 8036: 8036: template 8036: struct greater_equal : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x >= __y; } 8036: }; 8036: 8036: 8036: template 8036: struct less_equal : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x <= __y; } 8036: }; 8036: # 523 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: struct logical_and : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x && __y; } 8036: }; 8036: 8036: 8036: template 8036: struct logical_or : public binary_function<_Tp, _Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x || __y; } 8036: }; 8036: 8036: 8036: template 8036: struct logical_not : public unary_function<_Tp, bool> 8036: { 8036: 8036: bool 8036: operator()(const _Tp& __x) const 8036: { return !__x; } 8036: }; 8036: # 616 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x & __y; } 8036: }; 8036: 8036: template 8036: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x | __y; } 8036: }; 8036: 8036: template 8036: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x, const _Tp& __y) const 8036: { return __x ^ __y; } 8036: }; 8036: 8036: template 8036: struct bit_not : public unary_function<_Tp, _Tp> 8036: { 8036: 8036: _Tp 8036: operator()(const _Tp& __x) const 8036: { return ~__x; } 8036: }; 8036: # 740 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: class unary_negate 8036: : public unary_function 8036: { 8036: protected: 8036: _Predicate _M_pred; 8036: 8036: public: 8036: 8036: explicit 8036: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 8036: 8036: 8036: bool 8036: operator()(const typename _Predicate::argument_type& __x) const 8036: { return !_M_pred(__x); } 8036: }; 8036: 8036: 8036: template 8036: 8036: inline unary_negate<_Predicate> 8036: not1(const _Predicate& __pred) 8036: { return unary_negate<_Predicate>(__pred); } 8036: 8036: 8036: template 8036: class binary_negate 8036: : public binary_function 8036: { 8036: protected: 8036: _Predicate _M_pred; 8036: 8036: public: 8036: 8036: explicit 8036: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 8036: 8036: 8036: bool 8036: operator()(const typename _Predicate::first_argument_type& __x, 8036: const typename _Predicate::second_argument_type& __y) const 8036: { return !_M_pred(__x, __y); } 8036: }; 8036: 8036: 8036: template 8036: 8036: inline binary_negate<_Predicate> 8036: not2(const _Predicate& __pred) 8036: { return binary_negate<_Predicate>(__pred); } 8036: # 817 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: class pointer_to_unary_function : public unary_function<_Arg, _Result> 8036: { 8036: protected: 8036: _Result (*_M_ptr)(_Arg); 8036: 8036: public: 8036: pointer_to_unary_function() { } 8036: 8036: explicit 8036: pointer_to_unary_function(_Result (*__x)(_Arg)) 8036: : _M_ptr(__x) { } 8036: 8036: _Result 8036: operator()(_Arg __x) const 8036: { return _M_ptr(__x); } 8036: }; 8036: 8036: 8036: template 8036: inline pointer_to_unary_function<_Arg, _Result> 8036: ptr_fun(_Result (*__x)(_Arg)) 8036: { return pointer_to_unary_function<_Arg, _Result>(__x); } 8036: 8036: 8036: template 8036: class pointer_to_binary_function 8036: : public binary_function<_Arg1, _Arg2, _Result> 8036: { 8036: protected: 8036: _Result (*_M_ptr)(_Arg1, _Arg2); 8036: 8036: public: 8036: pointer_to_binary_function() { } 8036: 8036: explicit 8036: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 8036: : _M_ptr(__x) { } 8036: 8036: _Result 8036: operator()(_Arg1 __x, _Arg2 __y) const 8036: { return _M_ptr(__x, __y); } 8036: }; 8036: 8036: 8036: template 8036: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 8036: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 8036: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 8036: 8036: 8036: template 8036: struct _Identity 8036: : public unary_function<_Tp, _Tp> 8036: { 8036: _Tp& 8036: operator()(_Tp& __x) const 8036: { return __x; } 8036: 8036: const _Tp& 8036: operator()(const _Tp& __x) const 8036: { return __x; } 8036: }; 8036: 8036: 8036: template struct _Identity : _Identity<_Tp> { }; 8036: 8036: template 8036: struct _Select1st 8036: : public unary_function<_Pair, typename _Pair::first_type> 8036: { 8036: typename _Pair::first_type& 8036: operator()(_Pair& __x) const 8036: { return __x.first; } 8036: 8036: const typename _Pair::first_type& 8036: operator()(const _Pair& __x) const 8036: { return __x.first; } 8036: 8036: 8036: template 8036: typename _Pair2::first_type& 8036: operator()(_Pair2& __x) const 8036: { return __x.first; } 8036: 8036: template 8036: const typename _Pair2::first_type& 8036: operator()(const _Pair2& __x) const 8036: { return __x.first; } 8036: 8036: }; 8036: 8036: template 8036: struct _Select2nd 8036: : public unary_function<_Pair, typename _Pair::second_type> 8036: { 8036: typename _Pair::second_type& 8036: operator()(_Pair& __x) const 8036: { return __x.second; } 8036: 8036: const typename _Pair::second_type& 8036: operator()(const _Pair& __x) const 8036: { return __x.second; } 8036: }; 8036: # 940 "/usr/include/c++/8/bits/stl_function.h" 3 8036: template 8036: class mem_fun_t : public unary_function<_Tp*, _Ret> 8036: { 8036: public: 8036: explicit 8036: mem_fun_t(_Ret (_Tp::*__pf)()) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(_Tp* __p) const 8036: { return (__p->*_M_f)(); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(); 8036: }; 8036: 8036: 8036: 8036: template 8036: class const_mem_fun_t : public unary_function 8036: { 8036: public: 8036: explicit 8036: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(const _Tp* __p) const 8036: { return (__p->*_M_f)(); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)() const; 8036: }; 8036: 8036: 8036: 8036: template 8036: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 8036: { 8036: public: 8036: explicit 8036: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(_Tp& __r) const 8036: { return (__r.*_M_f)(); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(); 8036: }; 8036: 8036: 8036: 8036: template 8036: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 8036: { 8036: public: 8036: explicit 8036: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(const _Tp& __r) const 8036: { return (__r.*_M_f)(); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)() const; 8036: }; 8036: 8036: 8036: 8036: template 8036: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 8036: { 8036: public: 8036: explicit 8036: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(_Tp* __p, _Arg __x) const 8036: { return (__p->*_M_f)(__x); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(_Arg); 8036: }; 8036: 8036: 8036: 8036: template 8036: class const_mem_fun1_t : public binary_function 8036: { 8036: public: 8036: explicit 8036: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(const _Tp* __p, _Arg __x) const 8036: { return (__p->*_M_f)(__x); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(_Arg) const; 8036: }; 8036: 8036: 8036: 8036: template 8036: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8036: { 8036: public: 8036: explicit 8036: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(_Tp& __r, _Arg __x) const 8036: { return (__r.*_M_f)(__x); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(_Arg); 8036: }; 8036: 8036: 8036: 8036: template 8036: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8036: { 8036: public: 8036: explicit 8036: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 8036: : _M_f(__pf) { } 8036: 8036: _Ret 8036: operator()(const _Tp& __r, _Arg __x) const 8036: { return (__r.*_M_f)(__x); } 8036: 8036: private: 8036: _Ret (_Tp::*_M_f)(_Arg) const; 8036: }; 8036: 8036: 8036: 8036: template 8036: inline mem_fun_t<_Ret, _Tp> 8036: mem_fun(_Ret (_Tp::*__f)()) 8036: { return mem_fun_t<_Ret, _Tp>(__f); } 8036: 8036: template 8036: inline const_mem_fun_t<_Ret, _Tp> 8036: mem_fun(_Ret (_Tp::*__f)() const) 8036: { return const_mem_fun_t<_Ret, _Tp>(__f); } 8036: 8036: template 8036: inline mem_fun_ref_t<_Ret, _Tp> 8036: mem_fun_ref(_Ret (_Tp::*__f)()) 8036: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 8036: 8036: template 8036: inline const_mem_fun_ref_t<_Ret, _Tp> 8036: mem_fun_ref(_Ret (_Tp::*__f)() const) 8036: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 8036: 8036: template 8036: inline mem_fun1_t<_Ret, _Tp, _Arg> 8036: mem_fun(_Ret (_Tp::*__f)(_Arg)) 8036: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8036: 8036: template 8036: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 8036: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 8036: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8036: 8036: template 8036: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 8036: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 8036: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8036: 8036: template 8036: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 8036: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 8036: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8036: 8036: 8036: 8036: 8036: } 8036: 8036: 8036: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 8036: # 60 "/usr/include/c++/8/backward/binders.h" 3 8036: #pragma GCC diagnostic push 8036: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 107 "/usr/include/c++/8/backward/binders.h" 3 8036: template 8036: class binder1st 8036: : public unary_function 8036: { 8036: protected: 8036: _Operation op; 8036: typename _Operation::first_argument_type value; 8036: 8036: public: 8036: binder1st(const _Operation& __x, 8036: const typename _Operation::first_argument_type& __y) 8036: : op(__x), value(__y) { } 8036: 8036: typename _Operation::result_type 8036: operator()(const typename _Operation::second_argument_type& __x) const 8036: { return op(value, __x); } 8036: 8036: 8036: 8036: typename _Operation::result_type 8036: operator()(typename _Operation::second_argument_type& __x) const 8036: { return op(value, __x); } 8036: } __attribute__ ((__deprecated__)); 8036: 8036: 8036: template 8036: inline binder1st<_Operation> 8036: bind1st(const _Operation& __fn, const _Tp& __x) 8036: { 8036: typedef typename _Operation::first_argument_type _Arg1_type; 8036: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 8036: } 8036: 8036: 8036: template 8036: class binder2nd 8036: : public unary_function 8036: { 8036: protected: 8036: _Operation op; 8036: typename _Operation::second_argument_type value; 8036: 8036: public: 8036: binder2nd(const _Operation& __x, 8036: const typename _Operation::second_argument_type& __y) 8036: : op(__x), value(__y) { } 8036: 8036: typename _Operation::result_type 8036: operator()(const typename _Operation::first_argument_type& __x) const 8036: { return op(__x, value); } 8036: 8036: 8036: 8036: typename _Operation::result_type 8036: operator()(typename _Operation::first_argument_type& __x) const 8036: { return op(__x, value); } 8036: } __attribute__ ((__deprecated__)); 8036: 8036: 8036: template 8036: inline binder2nd<_Operation> 8036: bind2nd(const _Operation& __fn, const _Tp& __x) 8036: { 8036: typedef typename _Operation::second_argument_type _Arg2_type; 8036: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 8036: } 8036: 8036: 8036: 8036: } 8036: 8036: #pragma GCC diagnostic pop 8036: # 1131 "/usr/include/c++/8/bits/stl_function.h" 2 3 8036: # 49 "/usr/include/c++/8/string" 2 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/range_access.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/range_access.h" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline auto 8036: begin(_Container& __cont) -> decltype(__cont.begin()) 8036: { return __cont.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline auto 8036: begin(const _Container& __cont) -> decltype(__cont.begin()) 8036: { return __cont.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline auto 8036: end(_Container& __cont) -> decltype(__cont.end()) 8036: { return __cont.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline auto 8036: end(const _Container& __cont) -> decltype(__cont.end()) 8036: { return __cont.end(); } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline _Tp* 8036: begin(_Tp (&__arr)[_Nm]) 8036: { return __arr; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline _Tp* 8036: end(_Tp (&__arr)[_Nm]) 8036: { return __arr + _Nm; } 8036: # 323 "/usr/include/c++/8/bits/range_access.h" 3 8036: 8036: } 8036: # 52 "/usr/include/c++/8/string" 2 3 8036: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 8036: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: namespace __cxx11 { 8036: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: class basic_string 8036: { 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind<_CharT>::other _Char_alloc_type; 8036: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 8036: 8036: 8036: public: 8036: typedef _Traits traits_type; 8036: typedef typename _Traits::char_type value_type; 8036: typedef _Char_alloc_type allocator_type; 8036: typedef typename _Alloc_traits::size_type size_type; 8036: typedef typename _Alloc_traits::difference_type difference_type; 8036: typedef typename _Alloc_traits::reference reference; 8036: typedef typename _Alloc_traits::const_reference const_reference; 8036: typedef typename _Alloc_traits::pointer pointer; 8036: typedef typename _Alloc_traits::const_pointer const_pointer; 8036: typedef __gnu_cxx::__normal_iterator iterator; 8036: typedef __gnu_cxx::__normal_iterator 8036: const_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: 8036: 8036: static const size_type npos = static_cast(-1); 8036: 8036: private: 8036: 8036: 8036: 8036: 8036: typedef const_iterator __const_iterator; 8036: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 8036: struct _Alloc_hider : allocator_type 8036: { 8036: 8036: 8036: 8036: 8036: _Alloc_hider(pointer __dat, const _Alloc& __a) 8036: : allocator_type(__a), _M_p(__dat) { } 8036: 8036: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 8036: : allocator_type(std::move(__a)), _M_p(__dat) { } 8036: 8036: 8036: pointer _M_p; 8036: }; 8036: 8036: _Alloc_hider _M_dataplus; 8036: size_type _M_string_length; 8036: 8036: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 8036: 8036: union 8036: { 8036: _CharT _M_local_buf[_S_local_capacity + 1]; 8036: size_type _M_allocated_capacity; 8036: }; 8036: 8036: void 8036: _M_data(pointer __p) 8036: { _M_dataplus._M_p = __p; } 8036: 8036: void 8036: _M_length(size_type __length) 8036: { _M_string_length = __length; } 8036: 8036: pointer 8036: _M_data() const 8036: { return _M_dataplus._M_p; } 8036: 8036: pointer 8036: _M_local_data() 8036: { 8036: 8036: return std::pointer_traits::pointer_to(*_M_local_buf); 8036: 8036: 8036: 8036: } 8036: 8036: const_pointer 8036: _M_local_data() const 8036: { 8036: 8036: return std::pointer_traits::pointer_to(*_M_local_buf); 8036: 8036: 8036: 8036: } 8036: 8036: void 8036: _M_capacity(size_type __capacity) 8036: { _M_allocated_capacity = __capacity; } 8036: 8036: void 8036: _M_set_length(size_type __n) 8036: { 8036: _M_length(__n); 8036: traits_type::assign(_M_data()[__n], _CharT()); 8036: } 8036: 8036: bool 8036: _M_is_local() const 8036: { return _M_data() == _M_local_data(); } 8036: 8036: 8036: pointer 8036: _M_create(size_type&, size_type); 8036: 8036: void 8036: _M_dispose() 8036: { 8036: if (!_M_is_local()) 8036: _M_destroy(_M_allocated_capacity); 8036: } 8036: 8036: void 8036: _M_destroy(size_type __size) throw() 8036: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 8036: 8036: 8036: 8036: template 8036: void 8036: _M_construct_aux(_InIterator __beg, _InIterator __end, 8036: std::__false_type) 8036: { 8036: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 8036: _M_construct(__beg, __end, _Tag()); 8036: } 8036: 8036: 8036: 8036: template 8036: void 8036: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 8036: { _M_construct_aux_2(static_cast(__beg), __end); } 8036: 8036: void 8036: _M_construct_aux_2(size_type __req, _CharT __c) 8036: { _M_construct(__req, __c); } 8036: 8036: template 8036: void 8036: _M_construct(_InIterator __beg, _InIterator __end) 8036: { 8036: typedef typename std::__is_integer<_InIterator>::__type _Integral; 8036: _M_construct_aux(__beg, __end, _Integral()); 8036: } 8036: 8036: 8036: template 8036: void 8036: _M_construct(_InIterator __beg, _InIterator __end, 8036: std::input_iterator_tag); 8036: 8036: 8036: 8036: template 8036: void 8036: _M_construct(_FwdIterator __beg, _FwdIterator __end, 8036: std::forward_iterator_tag); 8036: 8036: void 8036: _M_construct(size_type __req, _CharT __c); 8036: 8036: allocator_type& 8036: _M_get_allocator() 8036: { return _M_dataplus; } 8036: 8036: const allocator_type& 8036: _M_get_allocator() const 8036: { return _M_dataplus; } 8036: 8036: private: 8036: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: _M_check(size_type __pos, const char* __s) const 8036: { 8036: if (__pos > this->size()) 8036: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 8036: , 8036: __s, __pos, this->size()); 8036: return __pos; 8036: } 8036: 8036: void 8036: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 8036: { 8036: if (this->max_size() - (this->size() - __n1) < __n2) 8036: __throw_length_error((__s)); 8036: } 8036: 8036: 8036: 8036: size_type 8036: _M_limit(size_type __pos, size_type __off) const noexcept 8036: { 8036: const bool __testoff = __off < this->size() - __pos; 8036: return __testoff ? __off : this->size() - __pos; 8036: } 8036: 8036: 8036: bool 8036: _M_disjunct(const _CharT* __s) const noexcept 8036: { 8036: return (less()(__s, _M_data()) 8036: || less()(_M_data() + this->size(), __s)); 8036: } 8036: 8036: 8036: 8036: static void 8036: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 8036: { 8036: if (__n == 1) 8036: traits_type::assign(*__d, *__s); 8036: else 8036: traits_type::copy(__d, __s, __n); 8036: } 8036: 8036: static void 8036: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 8036: { 8036: if (__n == 1) 8036: traits_type::assign(*__d, *__s); 8036: else 8036: traits_type::move(__d, __s, __n); 8036: } 8036: 8036: static void 8036: _S_assign(_CharT* __d, size_type __n, _CharT __c) 8036: { 8036: if (__n == 1) 8036: traits_type::assign(*__d, __c); 8036: else 8036: traits_type::assign(__d, __n, __c); 8036: } 8036: 8036: 8036: 8036: template 8036: static void 8036: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 8036: { 8036: for (; __k1 != __k2; ++__k1, (void)++__p) 8036: traits_type::assign(*__p, *__k1); 8036: } 8036: 8036: static void 8036: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 8036: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8036: 8036: static void 8036: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 8036: noexcept 8036: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8036: 8036: static void 8036: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 8036: { _S_copy(__p, __k1, __k2 - __k1); } 8036: 8036: static void 8036: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 8036: noexcept 8036: { _S_copy(__p, __k1, __k2 - __k1); } 8036: 8036: static int 8036: _S_compare(size_type __n1, size_type __n2) noexcept 8036: { 8036: const difference_type __d = difference_type(__n1 - __n2); 8036: 8036: if (__d > __gnu_cxx::__numeric_traits::__max) 8036: return __gnu_cxx::__numeric_traits::__max; 8036: else if (__d < __gnu_cxx::__numeric_traits::__min) 8036: return __gnu_cxx::__numeric_traits::__min; 8036: else 8036: return int(__d); 8036: } 8036: 8036: void 8036: _M_assign(const basic_string&); 8036: 8036: void 8036: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8036: size_type __len2); 8036: 8036: void 8036: _M_erase(size_type __pos, size_type __n); 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string() 8036: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8036: : _M_dataplus(_M_local_data()) 8036: { _M_set_length(0); } 8036: 8036: 8036: 8036: 8036: explicit 8036: basic_string(const _Alloc& __a) noexcept 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_set_length(0); } 8036: 8036: 8036: 8036: 8036: 8036: basic_string(const basic_string& __str) 8036: : _M_dataplus(_M_local_data(), 8036: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 8036: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 8036: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string(const basic_string& __str, size_type __pos, 8036: const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { 8036: const _CharT* __start = __str._M_data() 8036: + __str._M_check(__pos, "basic_string::basic_string"); 8036: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string(const basic_string& __str, size_type __pos, 8036: size_type __n) 8036: : _M_dataplus(_M_local_data()) 8036: { 8036: const _CharT* __start = __str._M_data() 8036: + __str._M_check(__pos, "basic_string::basic_string"); 8036: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8036: } 8036: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string(const basic_string& __str, size_type __pos, 8036: size_type __n, const _Alloc& __a) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { 8036: const _CharT* __start 8036: = __str._M_data() + __str._M_check(__pos, "string::string"); 8036: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8036: } 8036: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string(const _CharT* __s, size_type __n, 8036: const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__s, __s + __n); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__n, __c); } 8036: # 531 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string(basic_string&& __str) noexcept 8036: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 8036: { 8036: if (__str._M_is_local()) 8036: { 8036: traits_type::copy(_M_local_buf, __str._M_local_buf, 8036: _S_local_capacity + 1); 8036: } 8036: else 8036: { 8036: _M_data(__str._M_data()); 8036: _M_capacity(__str._M_allocated_capacity); 8036: } 8036: 8036: 8036: 8036: 8036: _M_length(__str.length()); 8036: __str._M_data(__str._M_local_data()); 8036: __str._M_set_length(0); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__l.begin(), __l.end()); } 8036: 8036: basic_string(const basic_string& __str, const _Alloc& __a) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__str.begin(), __str.end()); } 8036: 8036: basic_string(basic_string&& __str, const _Alloc& __a) 8036: noexcept(_Alloc_traits::_S_always_equal()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { 8036: if (__str._M_is_local()) 8036: { 8036: traits_type::copy(_M_local_buf, __str._M_local_buf, 8036: _S_local_capacity + 1); 8036: _M_length(__str.length()); 8036: __str._M_set_length(0); 8036: } 8036: else if (_Alloc_traits::_S_always_equal() 8036: || __str.get_allocator() == __a) 8036: { 8036: _M_data(__str._M_data()); 8036: _M_length(__str.length()); 8036: _M_capacity(__str._M_allocated_capacity); 8036: __str._M_data(__str._M_local_buf); 8036: __str._M_set_length(0); 8036: } 8036: else 8036: _M_construct(__str.begin(), __str.end()); 8036: } 8036: # 599 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template> 8036: 8036: 8036: 8036: basic_string(_InputIterator __beg, _InputIterator __end, 8036: const _Alloc& __a = _Alloc()) 8036: : _M_dataplus(_M_local_data(), __a) 8036: { _M_construct(__beg, __end); } 8036: # 646 "/usr/include/c++/8/bits/basic_string.h" 3 8036: ~basic_string() 8036: { _M_dispose(); } 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator=(const basic_string& __str) 8036: { 8036: 8036: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8036: { 8036: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 8036: && _M_get_allocator() != __str._M_get_allocator()) 8036: { 8036: 8036: 8036: if (__str.size() <= _S_local_capacity) 8036: { 8036: _M_destroy(_M_allocated_capacity); 8036: _M_data(_M_local_data()); 8036: _M_set_length(0); 8036: } 8036: else 8036: { 8036: const auto __len = __str.size(); 8036: auto __alloc = __str._M_get_allocator(); 8036: 8036: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 8036: _M_destroy(_M_allocated_capacity); 8036: _M_data(__ptr); 8036: _M_capacity(__len); 8036: _M_set_length(__len); 8036: } 8036: } 8036: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 8036: } 8036: 8036: return this->assign(__str); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator=(const _CharT* __s) 8036: { return this->assign(__s); } 8036: # 703 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: operator=(_CharT __c) 8036: { 8036: this->assign(1, __c); 8036: return *this; 8036: } 8036: # 721 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: operator=(basic_string&& __str) 8036: noexcept(_Alloc_traits::_S_nothrow_move()) 8036: { 8036: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 8036: && !_Alloc_traits::_S_always_equal() 8036: && _M_get_allocator() != __str._M_get_allocator()) 8036: { 8036: 8036: _M_destroy(_M_allocated_capacity); 8036: _M_data(_M_local_data()); 8036: _M_set_length(0); 8036: } 8036: 8036: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 8036: 8036: if (!__str._M_is_local() 8036: && (_Alloc_traits::_S_propagate_on_move_assign() 8036: || _Alloc_traits::_S_always_equal())) 8036: { 8036: pointer __data = nullptr; 8036: size_type __capacity; 8036: if (!_M_is_local()) 8036: { 8036: if (_Alloc_traits::_S_always_equal()) 8036: { 8036: __data = _M_data(); 8036: __capacity = _M_allocated_capacity; 8036: } 8036: else 8036: _M_destroy(_M_allocated_capacity); 8036: } 8036: 8036: _M_data(__str._M_data()); 8036: _M_length(__str.length()); 8036: _M_capacity(__str._M_allocated_capacity); 8036: if (__data) 8036: { 8036: __str._M_data(__data); 8036: __str._M_capacity(__capacity); 8036: } 8036: else 8036: __str._M_data(__str._M_local_buf); 8036: } 8036: else 8036: assign(__str); 8036: __str.clear(); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator=(initializer_list<_CharT> __l) 8036: { 8036: this->assign(__l.begin(), __l.size()); 8036: return *this; 8036: } 8036: # 806 "/usr/include/c++/8/bits/basic_string.h" 3 8036: iterator 8036: begin() noexcept 8036: { return iterator(_M_data()); } 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return const_iterator(_M_data()); } 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: end() noexcept 8036: { return iterator(_M_data() + this->size()); } 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return const_iterator(_M_data() + this->size()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(this->end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(this->end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(this->begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(this->begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return const_iterator(this->_M_data()); } 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return const_iterator(this->_M_data() + this->size()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return const_reverse_iterator(this->end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return const_reverse_iterator(this->begin()); } 8036: 8036: 8036: public: 8036: 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return _M_string_length; } 8036: 8036: 8036: 8036: size_type 8036: length() const noexcept 8036: { return _M_string_length; } 8036: 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 8036: # 935 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: resize(size_type __n, _CharT __c); 8036: # 948 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: resize(size_type __n) 8036: { this->resize(__n, _CharT()); } 8036: 8036: 8036: 8036: void 8036: shrink_to_fit() noexcept 8036: { 8036: # 966 "/usr/include/c++/8/bits/basic_string.h" 3 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: size_type 8036: capacity() const noexcept 8036: { 8036: return _M_is_local() ? size_type(_S_local_capacity) 8036: : _M_allocated_capacity; 8036: } 8036: # 997 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: reserve(size_type __res_arg = 0); 8036: 8036: 8036: 8036: 8036: void 8036: clear() noexcept 8036: { _M_set_length(0); } 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: empty() const noexcept 8036: { return this->size() == 0; } 8036: # 1026 "/usr/include/c++/8/bits/basic_string.h" 3 8036: const_reference 8036: operator[] (size_type __pos) const noexcept 8036: { 8036: ; 8036: return _M_data()[__pos]; 8036: } 8036: # 1043 "/usr/include/c++/8/bits/basic_string.h" 3 8036: reference 8036: operator[](size_type __pos) 8036: { 8036: 8036: 8036: ; 8036: 8036: ; 8036: return _M_data()[__pos]; 8036: } 8036: # 1064 "/usr/include/c++/8/bits/basic_string.h" 3 8036: const_reference 8036: at(size_type __n) const 8036: { 8036: if (__n >= this->size()) 8036: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8036: 8036: , 8036: __n, this->size()); 8036: return _M_data()[__n]; 8036: } 8036: # 1085 "/usr/include/c++/8/bits/basic_string.h" 3 8036: reference 8036: at(size_type __n) 8036: { 8036: if (__n >= size()) 8036: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8036: 8036: , 8036: __n, this->size()); 8036: return _M_data()[__n]; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: front() noexcept 8036: { 8036: ; 8036: return operator[](0); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: front() const noexcept 8036: { 8036: ; 8036: return operator[](0); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: back() noexcept 8036: { 8036: ; 8036: return operator[](this->size() - 1); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: back() const noexcept 8036: { 8036: ; 8036: return operator[](this->size() - 1); 8036: } 8036: # 1148 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: operator+=(const basic_string& __str) 8036: { return this->append(__str); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator+=(const _CharT* __s) 8036: { return this->append(__s); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator+=(_CharT __c) 8036: { 8036: this->push_back(__c); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: operator+=(initializer_list<_CharT> __l) 8036: { return this->append(__l.begin(), __l.size()); } 8036: # 1201 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: append(const basic_string& __str) 8036: { return _M_append(__str._M_data(), __str.size()); } 8036: # 1218 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: append(const basic_string& __str, size_type __pos, size_type __n) 8036: { return _M_append(__str._M_data() 8036: + __str._M_check(__pos, "basic_string::append"), 8036: __str._M_limit(__pos, __n)); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: append(const _CharT* __s, size_type __n) 8036: { 8036: ; 8036: _M_check_length(size_type(0), __n, "basic_string::append"); 8036: return _M_append(__s, __n); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: append(const _CharT* __s) 8036: { 8036: ; 8036: const size_type __n = traits_type::length(__s); 8036: _M_check_length(size_type(0), __n, "basic_string::append"); 8036: return _M_append(__s, __n); 8036: } 8036: # 1260 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: append(size_type __n, _CharT __c) 8036: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: append(initializer_list<_CharT> __l) 8036: { return this->append(__l.begin(), __l.size()); } 8036: # 1284 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template> 8036: 8036: 8036: 8036: basic_string& 8036: append(_InputIterator __first, _InputIterator __last) 8036: { return this->replace(end(), end(), __first, __last); } 8036: # 1329 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: push_back(_CharT __c) 8036: { 8036: const size_type __size = this->size(); 8036: if (__size + 1 > this->capacity()) 8036: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 8036: traits_type::assign(this->_M_data()[__size], __c); 8036: this->_M_set_length(__size + 1); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: assign(const basic_string& __str) 8036: { 8036: this->_M_assign(__str); 8036: return *this; 8036: } 8036: # 1360 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: assign(basic_string&& __str) 8036: noexcept(_Alloc_traits::_S_nothrow_move()) 8036: { 8036: 8036: 8036: return *this = std::move(__str); 8036: } 8036: # 1383 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: assign(const basic_string& __str, size_type __pos, size_type __n) 8036: { return _M_replace(size_type(0), this->size(), __str._M_data() 8036: + __str._M_check(__pos, "basic_string::assign"), 8036: __str._M_limit(__pos, __n)); } 8036: # 1399 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: assign(const _CharT* __s, size_type __n) 8036: { 8036: ; 8036: return _M_replace(size_type(0), this->size(), __s, __n); 8036: } 8036: # 1415 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: assign(const _CharT* __s) 8036: { 8036: ; 8036: return _M_replace(size_type(0), this->size(), __s, 8036: traits_type::length(__s)); 8036: } 8036: # 1432 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: assign(size_type __n, _CharT __c) 8036: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 8036: # 1445 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template> 8036: 8036: 8036: 8036: basic_string& 8036: assign(_InputIterator __first, _InputIterator __last) 8036: { return this->replace(begin(), end(), __first, __last); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_string& 8036: assign(initializer_list<_CharT> __l) 8036: { return this->assign(__l.begin(), __l.size()); } 8036: # 1513 "/usr/include/c++/8/bits/basic_string.h" 3 8036: iterator 8036: insert(const_iterator __p, size_type __n, _CharT __c) 8036: { 8036: ; 8036: const size_type __pos = __p - begin(); 8036: this->replace(__p, __p, __n, __c); 8036: return iterator(this->_M_data() + __pos); 8036: } 8036: # 1555 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template> 8036: iterator 8036: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 8036: { 8036: ; 8036: const size_type __pos = __p - begin(); 8036: this->replace(__p, __p, __beg, __end); 8036: return iterator(this->_M_data() + __pos); 8036: } 8036: # 1591 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: insert(iterator __p, initializer_list<_CharT> __l) 8036: { 8036: ; 8036: this->insert(__p - begin(), __l.begin(), __l.size()); 8036: } 8036: # 1611 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: insert(size_type __pos1, const basic_string& __str) 8036: { return this->replace(__pos1, size_type(0), 8036: __str._M_data(), __str.size()); } 8036: # 1634 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: insert(size_type __pos1, const basic_string& __str, 8036: size_type __pos2, size_type __n) 8036: { return this->replace(__pos1, size_type(0), __str._M_data() 8036: + __str._M_check(__pos2, "basic_string::insert"), 8036: __str._M_limit(__pos2, __n)); } 8036: # 1657 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: insert(size_type __pos, const _CharT* __s, size_type __n) 8036: { return this->replace(__pos, size_type(0), __s, __n); } 8036: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: insert(size_type __pos, const _CharT* __s) 8036: { 8036: ; 8036: return this->replace(__pos, size_type(0), __s, 8036: traits_type::length(__s)); 8036: } 8036: # 1700 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: insert(size_type __pos, size_type __n, _CharT __c) 8036: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 8036: size_type(0), __n, __c); } 8036: # 1718 "/usr/include/c++/8/bits/basic_string.h" 3 8036: iterator 8036: insert(__const_iterator __p, _CharT __c) 8036: { 8036: ; 8036: const size_type __pos = __p - begin(); 8036: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 8036: return iterator(_M_data() + __pos); 8036: } 8036: # 1778 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: erase(size_type __pos = 0, size_type __n = npos) 8036: { 8036: _M_check(__pos, "basic_string::erase"); 8036: if (__n == npos) 8036: this->_M_set_length(__pos); 8036: else if (__n != 0) 8036: this->_M_erase(__pos, _M_limit(__pos, __n)); 8036: return *this; 8036: } 8036: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 8036: iterator 8036: erase(__const_iterator __position) 8036: { 8036: 8036: ; 8036: const size_type __pos = __position - begin(); 8036: this->_M_erase(__pos, size_type(1)); 8036: return iterator(_M_data() + __pos); 8036: } 8036: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 8036: iterator 8036: erase(__const_iterator __first, __const_iterator __last) 8036: { 8036: 8036: ; 8036: const size_type __pos = __first - begin(); 8036: if (__last == end()) 8036: this->_M_set_length(__pos); 8036: else 8036: this->_M_erase(__pos, __last - __first); 8036: return iterator(this->_M_data() + __pos); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: pop_back() noexcept 8036: { 8036: ; 8036: _M_erase(size() - 1, 1); 8036: } 8036: # 1860 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(size_type __pos, size_type __n, const basic_string& __str) 8036: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 8036: # 1882 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(size_type __pos1, size_type __n1, const basic_string& __str, 8036: size_type __pos2, size_type __n2) 8036: { return this->replace(__pos1, __n1, __str._M_data() 8036: + __str._M_check(__pos2, "basic_string::replace"), 8036: __str._M_limit(__pos2, __n2)); } 8036: # 1907 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(size_type __pos, size_type __n1, const _CharT* __s, 8036: size_type __n2) 8036: { 8036: ; 8036: return _M_replace(_M_check(__pos, "basic_string::replace"), 8036: _M_limit(__pos, __n1), __s, __n2); 8036: } 8036: # 1932 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(size_type __pos, size_type __n1, const _CharT* __s) 8036: { 8036: ; 8036: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 8036: } 8036: # 1956 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 8036: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 8036: _M_limit(__pos, __n1), __n2, __c); } 8036: # 1974 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: const basic_string& __str) 8036: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 8036: # 1994 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: const _CharT* __s, size_type __n) 8036: { 8036: 8036: ; 8036: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 8036: } 8036: # 2016 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 8036: { 8036: ; 8036: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 8036: } 8036: # 2037 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 8036: _CharT __c) 8036: { 8036: 8036: ; 8036: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 8036: } 8036: # 2062 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template> 8036: basic_string& 8036: replace(const_iterator __i1, const_iterator __i2, 8036: _InputIterator __k1, _InputIterator __k2) 8036: { 8036: 8036: ; 8036: ; 8036: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 8036: std::__false_type()); 8036: } 8036: # 2094 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: _CharT* __k1, _CharT* __k2) 8036: { 8036: 8036: ; 8036: ; 8036: return this->replace(__i1 - begin(), __i2 - __i1, 8036: __k1, __k2 - __k1); 8036: } 8036: 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: const _CharT* __k1, const _CharT* __k2) 8036: { 8036: 8036: ; 8036: ; 8036: return this->replace(__i1 - begin(), __i2 - __i1, 8036: __k1, __k2 - __k1); 8036: } 8036: 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: iterator __k1, iterator __k2) 8036: { 8036: 8036: ; 8036: ; 8036: return this->replace(__i1 - begin(), __i2 - __i1, 8036: __k1.base(), __k2 - __k1); 8036: } 8036: 8036: basic_string& 8036: replace(__const_iterator __i1, __const_iterator __i2, 8036: const_iterator __k1, const_iterator __k2) 8036: { 8036: 8036: ; 8036: ; 8036: return this->replace(__i1 - begin(), __i2 - __i1, 8036: __k1.base(), __k2 - __k1); 8036: } 8036: # 2153 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string& replace(const_iterator __i1, const_iterator __i2, 8036: initializer_list<_CharT> __l) 8036: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 8036: # 2212 "/usr/include/c++/8/bits/basic_string.h" 3 8036: private: 8036: template 8036: basic_string& 8036: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8036: _Integer __n, _Integer __val, __true_type) 8036: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 8036: 8036: template 8036: basic_string& 8036: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8036: _InputIterator __k1, _InputIterator __k2, 8036: __false_type); 8036: 8036: basic_string& 8036: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8036: _CharT __c); 8036: 8036: basic_string& 8036: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8036: const size_type __len2); 8036: 8036: basic_string& 8036: _M_append(const _CharT* __s, size_type __n); 8036: 8036: public: 8036: # 2250 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 8036: # 2260 "/usr/include/c++/8/bits/basic_string.h" 3 8036: void 8036: swap(basic_string& __s) noexcept; 8036: # 2270 "/usr/include/c++/8/bits/basic_string.h" 3 8036: const _CharT* 8036: c_str() const noexcept 8036: { return _M_data(); } 8036: # 2282 "/usr/include/c++/8/bits/basic_string.h" 3 8036: const _CharT* 8036: data() const noexcept 8036: { return _M_data(); } 8036: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return _M_get_allocator(); } 8036: # 2317 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept; 8036: # 2331 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find(const basic_string& __str, size_type __pos = 0) const 8036: noexcept 8036: { return this->find(__str.data(), __pos, __str.size()); } 8036: # 2363 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find(const _CharT* __s, size_type __pos = 0) const noexcept 8036: { 8036: ; 8036: return this->find(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2380 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find(_CharT __c, size_type __pos = 0) const noexcept; 8036: # 2393 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: rfind(const basic_string& __str, size_type __pos = npos) const 8036: noexcept 8036: { return this->rfind(__str.data(), __pos, __str.size()); } 8036: # 2427 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept; 8036: # 2441 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: rfind(const _CharT* __s, size_type __pos = npos) const 8036: { 8036: ; 8036: return this->rfind(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2458 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: rfind(_CharT __c, size_type __pos = npos) const noexcept; 8036: # 2472 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_of(const basic_string& __str, size_type __pos = 0) const 8036: noexcept 8036: { return this->find_first_of(__str.data(), __pos, __str.size()); } 8036: # 2507 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept; 8036: # 2521 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_of(const _CharT* __s, size_type __pos = 0) const 8036: noexcept 8036: { 8036: ; 8036: return this->find_first_of(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2541 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 8036: { return this->find(__c, __pos); } 8036: # 2556 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_of(const basic_string& __str, size_type __pos = npos) const 8036: noexcept 8036: { return this->find_last_of(__str.data(), __pos, __str.size()); } 8036: # 2591 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept; 8036: # 2605 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_of(const _CharT* __s, size_type __pos = npos) const 8036: noexcept 8036: { 8036: ; 8036: return this->find_last_of(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2625 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 8036: { return this->rfind(__c, __pos); } 8036: # 2639 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 8036: noexcept 8036: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 8036: # 2674 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_not_of(const _CharT* __s, size_type __pos, 8036: size_type __n) const noexcept; 8036: # 2688 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 8036: noexcept 8036: { 8036: ; 8036: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2706 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_first_not_of(_CharT __c, size_type __pos = 0) const 8036: noexcept; 8036: # 2721 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 8036: noexcept 8036: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 8036: # 2756 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_not_of(const _CharT* __s, size_type __pos, 8036: size_type __n) const noexcept; 8036: # 2770 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 8036: noexcept 8036: { 8036: ; 8036: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 8036: } 8036: # 2788 "/usr/include/c++/8/bits/basic_string.h" 3 8036: size_type 8036: find_last_not_of(_CharT __c, size_type __pos = npos) const 8036: noexcept; 8036: # 2804 "/usr/include/c++/8/bits/basic_string.h" 3 8036: basic_string 8036: substr(size_type __pos = 0, size_type __n = npos) const 8036: { return basic_string(*this, 8036: _M_check(__pos, "basic_string::substr"), __n); } 8036: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(const basic_string& __str) const 8036: { 8036: const size_type __size = this->size(); 8036: const size_type __osize = __str.size(); 8036: const size_type __len = std::min(__size, __osize); 8036: 8036: int __r = traits_type::compare(_M_data(), __str.data(), __len); 8036: if (!__r) 8036: __r = _S_compare(__size, __osize); 8036: return __r; 8036: } 8036: # 2916 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(size_type __pos, size_type __n, const basic_string& __str) const; 8036: # 2942 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8036: size_type __pos2, size_type __n2) const; 8036: # 2960 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(const _CharT* __s) const noexcept; 8036: # 2984 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 8036: # 3011 "/usr/include/c++/8/bits/basic_string.h" 3 8036: int 8036: compare(size_type __pos, size_type __n1, const _CharT* __s, 8036: size_type __n2) const; 8036: 8036: 8036: template friend class basic_stringbuf; 8036: }; 8036: } 8036: # 5886 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { 8036: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8036: __str.append(__rhs); 8036: return __str; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: basic_string<_CharT,_Traits,_Alloc> 8036: operator+(const _CharT* __lhs, 8036: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: basic_string<_CharT,_Traits,_Alloc> 8036: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { 8036: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8036: __str.append(__rhs); 8036: return __str; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 8036: { 8036: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8036: typedef typename __string_type::size_type __size_type; 8036: __string_type __str(__lhs); 8036: __str.append(__size_type(1), __rhs); 8036: return __str; 8036: } 8036: 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return std::move(__lhs.append(__rhs)); } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8036: { return std::move(__rhs.insert(0, __lhs)); } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8036: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8036: { 8036: const auto __size = __lhs.size() + __rhs.size(); 8036: const bool __cond = (__size > __lhs.capacity() 8036: && __size <= __rhs.capacity()); 8036: return __cond ? std::move(__rhs.insert(0, __lhs)) 8036: : std::move(__lhs.append(__rhs)); 8036: } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const _CharT* __lhs, 8036: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8036: { return std::move(__rhs.insert(0, __lhs)); } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(_CharT __lhs, 8036: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8036: { return std::move(__rhs.insert(0, 1, __lhs)); } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8036: const _CharT* __rhs) 8036: { return std::move(__lhs.append(__rhs)); } 8036: 8036: template 8036: inline basic_string<_CharT, _Traits, _Alloc> 8036: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8036: _CharT __rhs) 8036: { return std::move(__lhs.append(1, __rhs)); } 8036: # 6007 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return __lhs.compare(__rhs) == 0; } 8036: 8036: template 8036: inline 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 8036: operator==(const basic_string<_CharT>& __lhs, 8036: const basic_string<_CharT>& __rhs) noexcept 8036: { return (__lhs.size() == __rhs.size() 8036: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 8036: __lhs.size())); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return __rhs.compare(__lhs) == 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return __lhs.compare(__rhs) == 0; } 8036: # 6054 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return !(__lhs == __rhs); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return !(__lhs == __rhs); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return !(__lhs == __rhs); } 8036: # 6092 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return __lhs.compare(__rhs) < 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return __lhs.compare(__rhs) < 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator<(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return __rhs.compare(__lhs) > 0; } 8036: # 6130 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return __lhs.compare(__rhs) > 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return __lhs.compare(__rhs) > 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return __rhs.compare(__lhs) < 0; } 8036: # 6168 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return __lhs.compare(__rhs) <= 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return __lhs.compare(__rhs) <= 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return __rhs.compare(__lhs) >= 0; } 8036: # 6206 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline bool 8036: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept 8036: { return __lhs.compare(__rhs) >= 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: const _CharT* __rhs) 8036: { return __lhs.compare(__rhs) >= 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { return __rhs.compare(__lhs) <= 0; } 8036: # 6244 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline void 8036: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 8036: basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: noexcept(noexcept(__lhs.swap(__rhs))) 8036: { __lhs.swap(__rhs); } 8036: # 6264 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __is, 8036: basic_string<_CharT, _Traits, _Alloc>& __str); 8036: 8036: template<> 8036: basic_istream& 8036: operator>>(basic_istream& __is, basic_string& __str); 8036: # 6282 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __os, 8036: const basic_string<_CharT, _Traits, _Alloc>& __str) 8036: { 8036: 8036: 8036: return __ostream_insert(__os, __str.data(), __str.size()); 8036: } 8036: # 6305 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: getline(basic_istream<_CharT, _Traits>& __is, 8036: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 8036: # 6322 "/usr/include/c++/8/bits/basic_string.h" 3 8036: template 8036: inline basic_istream<_CharT, _Traits>& 8036: getline(basic_istream<_CharT, _Traits>& __is, 8036: basic_string<_CharT, _Traits, _Alloc>& __str) 8036: { return std::getline(__is, __str, __is.widen('\n')); } 8036: 8036: 8036: 8036: template 8036: inline basic_istream<_CharT, _Traits>& 8036: getline(basic_istream<_CharT, _Traits>&& __is, 8036: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8036: { return std::getline(__is, __str, __delim); } 8036: 8036: 8036: template 8036: inline basic_istream<_CharT, _Traits>& 8036: getline(basic_istream<_CharT, _Traits>&& __is, 8036: basic_string<_CharT, _Traits, _Alloc>& __str) 8036: { return std::getline(__is, __str); } 8036: 8036: 8036: template<> 8036: basic_istream& 8036: getline(basic_istream& __in, basic_string& __str, 8036: char __delim); 8036: 8036: 8036: template<> 8036: basic_istream& 8036: getline(basic_istream& __in, basic_string& __str, 8036: wchar_t __delim); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 8036: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 8036: # 1 "/usr/include/c++/8/cstdlib" 1 3 8036: # 39 "/usr/include/c++/8/cstdlib" 3 8036: 8036: # 40 "/usr/include/c++/8/cstdlib" 3 8036: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8036: # 1 "/usr/include/c++/8/cwchar" 1 3 8036: # 39 "/usr/include/c++/8/cwchar" 3 8036: 8036: # 40 "/usr/include/c++/8/cwchar" 3 8036: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8036: # 1 "/usr/include/c++/8/cstdio" 1 3 8036: # 39 "/usr/include/c++/8/cstdio" 3 8036: 8036: # 40 "/usr/include/c++/8/cstdio" 3 8036: 8036: 8036: # 1 "/usr/include/stdio.h" 1 3 4 8036: # 27 "/usr/include/stdio.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 28 "/usr/include/stdio.h" 2 3 4 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 34 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/libio.h" 1 3 4 8036: # 31 "/usr/include/libio.h" 3 4 8036: # 1 "/usr/include/_G_config.h" 1 3 4 8036: # 15 "/usr/include/_G_config.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 16 "/usr/include/_G_config.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef struct 8036: { 8036: __off_t __pos; 8036: __mbstate_t __state; 8036: } _G_fpos_t; 8036: typedef struct 8036: { 8036: __off64_t __pos; 8036: __mbstate_t __state; 8036: } _G_fpos64_t; 8036: # 32 "/usr/include/libio.h" 2 3 4 8036: # 49 "/usr/include/libio.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdarg.h" 1 3 4 8036: # 50 "/usr/include/libio.h" 2 3 4 8036: # 145 "/usr/include/libio.h" 3 4 8036: struct _IO_jump_t; struct _IO_FILE; 8036: 8036: 8036: 8036: 8036: typedef void _IO_lock_t; 8036: 8036: 8036: 8036: 8036: 8036: struct _IO_marker { 8036: struct _IO_marker *_next; 8036: struct _IO_FILE *_sbuf; 8036: 8036: 8036: 8036: int _pos; 8036: # 173 "/usr/include/libio.h" 3 4 8036: }; 8036: 8036: 8036: enum __codecvt_result 8036: { 8036: __codecvt_ok, 8036: __codecvt_partial, 8036: __codecvt_error, 8036: __codecvt_noconv 8036: }; 8036: # 241 "/usr/include/libio.h" 3 4 8036: struct _IO_FILE { 8036: int _flags; 8036: 8036: 8036: 8036: 8036: char* _IO_read_ptr; 8036: char* _IO_read_end; 8036: char* _IO_read_base; 8036: char* _IO_write_base; 8036: char* _IO_write_ptr; 8036: char* _IO_write_end; 8036: char* _IO_buf_base; 8036: char* _IO_buf_end; 8036: 8036: char *_IO_save_base; 8036: char *_IO_backup_base; 8036: char *_IO_save_end; 8036: 8036: struct _IO_marker *_markers; 8036: 8036: struct _IO_FILE *_chain; 8036: 8036: int _fileno; 8036: 8036: 8036: 8036: int _flags2; 8036: 8036: __off_t _old_offset; 8036: 8036: 8036: 8036: unsigned short _cur_column; 8036: signed char _vtable_offset; 8036: char _shortbuf[1]; 8036: 8036: 8036: 8036: _IO_lock_t *_lock; 8036: # 289 "/usr/include/libio.h" 3 4 8036: __off64_t _offset; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void *__pad1; 8036: void *__pad2; 8036: void *__pad3; 8036: void *__pad4; 8036: 8036: size_t __pad5; 8036: int _mode; 8036: 8036: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: struct _IO_FILE_plus; 8036: 8036: extern struct _IO_FILE_plus _IO_2_1_stdin_; 8036: extern struct _IO_FILE_plus _IO_2_1_stdout_; 8036: extern struct _IO_FILE_plus _IO_2_1_stderr_; 8036: # 333 "/usr/include/libio.h" 3 4 8036: typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, 8036: size_t __n); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); 8036: 8036: 8036: typedef int __io_close_fn (void *__cookie); 8036: 8036: 8036: 8036: 8036: typedef __io_read_fn cookie_read_function_t; 8036: typedef __io_write_fn cookie_write_function_t; 8036: typedef __io_seek_fn cookie_seek_function_t; 8036: typedef __io_close_fn cookie_close_function_t; 8036: 8036: 8036: typedef struct 8036: { 8036: __io_read_fn *read; 8036: __io_write_fn *write; 8036: __io_seek_fn *seek; 8036: __io_close_fn *close; 8036: } _IO_cookie_io_functions_t; 8036: typedef _IO_cookie_io_functions_t cookie_io_functions_t; 8036: 8036: struct _IO_cookie_file; 8036: 8036: 8036: extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, 8036: void *__cookie, _IO_cookie_io_functions_t __fns); 8036: 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: extern int __underflow (_IO_FILE *); 8036: extern int __uflow (_IO_FILE *); 8036: extern int __overflow (_IO_FILE *, int); 8036: # 429 "/usr/include/libio.h" 3 4 8036: extern int _IO_getc (_IO_FILE *__fp); 8036: extern int _IO_putc (int __c, _IO_FILE *__fp); 8036: extern int _IO_feof (_IO_FILE *__fp) throw (); 8036: extern int _IO_ferror (_IO_FILE *__fp) throw (); 8036: 8036: extern int _IO_peekc_locked (_IO_FILE *__fp); 8036: 8036: 8036: 8036: 8036: 8036: extern void _IO_flockfile (_IO_FILE *) throw (); 8036: extern void _IO_funlockfile (_IO_FILE *) throw (); 8036: extern int _IO_ftrylockfile (_IO_FILE *) throw (); 8036: # 458 "/usr/include/libio.h" 3 4 8036: extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, 8036: __gnuc_va_list, int *__restrict); 8036: extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, 8036: __gnuc_va_list); 8036: extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); 8036: extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); 8036: 8036: extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); 8036: extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); 8036: 8036: extern void _IO_free_backup_area (_IO_FILE *) throw (); 8036: # 520 "/usr/include/libio.h" 3 4 8036: } 8036: # 42 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: 8036: 8036: typedef __gnuc_va_list va_list; 8036: # 78 "/usr/include/stdio.h" 3 4 8036: typedef _G_fpos_t fpos_t; 8036: 8036: 8036: 8036: 8036: typedef _G_fpos64_t fpos64_t; 8036: # 131 "/usr/include/stdio.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdio_lim.h" 1 3 4 8036: # 132 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: 8036: extern struct _IO_FILE *stdin; 8036: extern struct _IO_FILE *stdout; 8036: extern struct _IO_FILE *stderr; 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int remove (const char *__filename) throw (); 8036: 8036: extern int rename (const char *__old, const char *__new) throw (); 8036: 8036: 8036: 8036: extern int renameat (int __oldfd, const char *__old, int __newfd, 8036: const char *__new) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 8036: # 169 "/usr/include/stdio.h" 3 4 8036: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8036: # 190 "/usr/include/stdio.h" 3 4 8036: extern char *tempnam (const char *__dir, const char *__pfx) 8036: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fclose (FILE *__stream); 8036: 8036: 8036: 8036: 8036: extern int fflush (FILE *__stream); 8036: # 213 "/usr/include/stdio.h" 3 4 8036: extern int fflush_unlocked (FILE *__stream); 8036: # 223 "/usr/include/stdio.h" 3 4 8036: extern int fcloseall (void); 8036: # 232 "/usr/include/stdio.h" 3 4 8036: extern FILE *fopen (const char *__restrict __filename, 8036: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern FILE *freopen (const char *__restrict __filename, 8036: const char *__restrict __modes, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: # 256 "/usr/include/stdio.h" 3 4 8036: extern FILE *fopen64 (const char *__restrict __filename, 8036: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8036: extern FILE *freopen64 (const char *__restrict __filename, 8036: const char *__restrict __modes, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern FILE *fopencookie (void *__restrict __magic_cookie, 8036: const char *__restrict __modes, 8036: _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 8036: 8036: 8036: 8036: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 8036: int __modes, size_t __n) throw (); 8036: 8036: 8036: 8036: 8036: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 8036: size_t __size) throw (); 8036: 8036: 8036: extern void setlinebuf (FILE *__stream) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fprintf (FILE *__restrict __stream, 8036: const char *__restrict __format, ...); 8036: 8036: 8036: 8036: 8036: extern int printf (const char *__restrict __format, ...); 8036: 8036: extern int sprintf (char *__restrict __s, 8036: const char *__restrict __format, ...) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 8036: __gnuc_va_list __arg); 8036: 8036: 8036: 8036: 8036: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 8036: 8036: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 8036: __gnuc_va_list __arg) throw (); 8036: 8036: 8036: 8036: extern int snprintf (char *__restrict __s, size_t __maxlen, 8036: const char *__restrict __format, ...) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8036: 8036: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 8036: const char *__restrict __format, __gnuc_va_list __arg) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8036: 8036: 8036: 8036: 8036: 8036: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 8036: __gnuc_va_list __arg) 8036: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8036: extern int __asprintf (char **__restrict __ptr, 8036: const char *__restrict __fmt, ...) 8036: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8036: extern int asprintf (char **__restrict __ptr, 8036: const char *__restrict __fmt, ...) 8036: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int vdprintf (int __fd, const char *__restrict __fmt, 8036: __gnuc_va_list __arg) 8036: __attribute__ ((__format__ (__printf__, 2, 0))); 8036: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 8036: __attribute__ ((__format__ (__printf__, 2, 3))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fscanf (FILE *__restrict __stream, 8036: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8036: 8036: extern int sscanf (const char *__restrict __s, 8036: const char *__restrict __format, ...) throw (); 8036: # 420 "/usr/include/stdio.h" 3 4 8036: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 8036: __gnuc_va_list __arg) 8036: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 8036: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern int vsscanf (const char *__restrict __s, 8036: const char *__restrict __format, __gnuc_va_list __arg) 8036: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 8036: # 477 "/usr/include/stdio.h" 3 4 8036: extern int fgetc (FILE *__stream); 8036: extern int getc (FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: extern int getchar (void); 8036: # 495 "/usr/include/stdio.h" 3 4 8036: extern int getc_unlocked (FILE *__stream); 8036: extern int getchar_unlocked (void); 8036: # 506 "/usr/include/stdio.h" 3 4 8036: extern int fgetc_unlocked (FILE *__stream); 8036: # 517 "/usr/include/stdio.h" 3 4 8036: extern int fputc (int __c, FILE *__stream); 8036: extern int putc (int __c, FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: extern int putchar (int __c); 8036: # 537 "/usr/include/stdio.h" 3 4 8036: extern int fputc_unlocked (int __c, FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int putc_unlocked (int __c, FILE *__stream); 8036: extern int putchar_unlocked (int __c); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int getw (FILE *__stream); 8036: 8036: 8036: extern int putw (int __w, FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8036: __attribute__ ((__warn_unused_result__)); 8036: # 577 "/usr/include/stdio.h" 3 4 8036: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 8036: # 587 "/usr/include/stdio.h" 3 4 8036: extern char *fgets_unlocked (char *__restrict __s, int __n, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: # 603 "/usr/include/stdio.h" 3 4 8036: extern __ssize_t __getdelim (char **__restrict __lineptr, 8036: size_t *__restrict __n, int __delimiter, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern __ssize_t getdelim (char **__restrict __lineptr, 8036: size_t *__restrict __n, int __delimiter, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __ssize_t getline (char **__restrict __lineptr, 8036: size_t *__restrict __n, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: extern int puts (const char *__s); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int ungetc (int __c, FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern size_t fread (void *__restrict __ptr, size_t __size, 8036: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 8036: size_t __n, FILE *__restrict __s); 8036: # 662 "/usr/include/stdio.h" 3 4 8036: extern int fputs_unlocked (const char *__restrict __s, 8036: FILE *__restrict __stream); 8036: # 673 "/usr/include/stdio.h" 3 4 8036: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 8036: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 8036: size_t __n, FILE *__restrict __stream); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fseek (FILE *__stream, long int __off, int __whence); 8036: 8036: 8036: 8036: 8036: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern void rewind (FILE *__stream); 8036: # 707 "/usr/include/stdio.h" 3 4 8036: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 8036: 8036: 8036: 8036: 8036: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8036: # 731 "/usr/include/stdio.h" 3 4 8036: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 8036: 8036: 8036: 8036: 8036: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 8036: # 750 "/usr/include/stdio.h" 3 4 8036: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 8036: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8036: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 8036: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 8036: 8036: 8036: 8036: extern void clearerr (FILE *__stream) throw (); 8036: 8036: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern void clearerr_unlocked (FILE *__stream) throw (); 8036: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern void perror (const char *__s); 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/sys_errlist.h" 1 3 4 8036: # 26 "/usr/include/powerpc64le-linux-gnu/bits/sys_errlist.h" 3 4 8036: extern int sys_nerr; 8036: extern const char *const sys_errlist[]; 8036: 8036: 8036: extern int _sys_nerr; 8036: extern const char *const _sys_errlist[]; 8036: # 782 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: 8036: 8036: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: # 800 "/usr/include/stdio.h" 3 4 8036: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int pclose (FILE *__stream); 8036: 8036: 8036: 8036: 8036: 8036: extern char *ctermid (char *__s) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern char *cuserid (char *__s); 8036: 8036: 8036: 8036: 8036: struct obstack; 8036: 8036: 8036: extern int obstack_printf (struct obstack *__restrict __obstack, 8036: const char *__restrict __format, ...) 8036: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 8036: extern int obstack_vprintf (struct obstack *__restrict __obstack, 8036: const char *__restrict __format, 8036: __gnuc_va_list __args) 8036: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern void flockfile (FILE *__stream) throw (); 8036: 8036: 8036: 8036: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern void funlockfile (FILE *__stream) throw (); 8036: # 859 "/usr/include/stdio.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdio.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/bits/stdio.h" 3 4 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: getchar (void) 8036: { 8036: return _IO_getc (stdin); 8036: } 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: fgetc_unlocked (FILE *__fp) 8036: { 8036: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: getc_unlocked (FILE *__fp) 8036: { 8036: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: getchar_unlocked (void) 8036: { 8036: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 8036: } 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: putchar (int __c) 8036: { 8036: return _IO_putc (__c, stdout); 8036: } 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: fputc_unlocked (int __c, FILE *__stream) 8036: { 8036: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: putc_unlocked (int __c, FILE *__stream) 8036: { 8036: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: putchar_unlocked (int __c) 8036: { 8036: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 8036: getline (char **__lineptr, size_t *__n, FILE *__stream) 8036: { 8036: return __getdelim (__lineptr, __n, '\n', __stream); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 8036: { 8036: return (((__stream)->_flags & 0x10) != 0); 8036: } 8036: 8036: 8036: extern __inline __attribute__ ((__gnu_inline__)) int 8036: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 8036: { 8036: return (((__stream)->_flags & 0x20) != 0); 8036: } 8036: # 860 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/stdio2.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/stdio2.h" 3 4 8036: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8036: const char *__restrict __format, ...) throw (); 8036: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8036: const char *__restrict __format, 8036: __gnuc_va_list __ap) throw (); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 8036: { 8036: return __builtin___sprintf_chk (__s, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8036: 8036: { 8036: return __builtin___vsprintf_chk (__s, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8036: } 8036: 8036: 8036: 8036: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 8036: size_t __slen, const char *__restrict __format, 8036: ...) throw (); 8036: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 8036: size_t __slen, const char *__restrict __format, 8036: __gnuc_va_list __ap) throw (); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 8036: 8036: { 8036: return __builtin___snprintf_chk (__s, __n, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8036: 8036: { 8036: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 8036: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 8036: const char *__restrict __format, ...); 8036: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 8036: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 8036: const char *__restrict __format, __gnuc_va_list __ap); 8036: extern int __vprintf_chk (int __flag, const char *__restrict __format, 8036: __gnuc_va_list __ap); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 8036: { 8036: return __fprintf_chk (__stream, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: printf (const char *__restrict __fmt, ...) 8036: { 8036: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 8036: { 8036: 8036: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 8036: 8036: 8036: 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: vfprintf (FILE *__restrict __stream, 8036: const char *__restrict __fmt, __gnuc_va_list __ap) 8036: { 8036: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 8036: } 8036: 8036: 8036: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 8036: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 8036: extern int __vdprintf_chk (int __fd, int __flag, 8036: const char *__restrict __fmt, __gnuc_va_list __arg) 8036: __attribute__ ((__format__ (__printf__, 3, 0))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: dprintf (int __fd, const char *__restrict __fmt, ...) 8036: { 8036: return __dprintf_chk (__fd, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 8036: { 8036: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 8036: } 8036: 8036: 8036: 8036: 8036: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 8036: const char *__restrict __fmt, ...) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 8036: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 8036: const char *__restrict __fmt, __gnuc_va_list __arg) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 8036: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 8036: int __flag, const char *__restrict __format, 8036: ...) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8036: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 8036: int __flag, 8036: const char *__restrict __format, 8036: __gnuc_va_list __args) 8036: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8036: { 8036: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8036: 8036: { 8036: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 8036: 8036: { 8036: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 8036: __builtin_va_arg_pack ()); 8036: } 8036: # 206 "/usr/include/powerpc64le-linux-gnu/bits/stdio2.h" 3 4 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8036: 8036: { 8036: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 8036: } 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8036: 8036: { 8036: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 8036: __ap); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 8036: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8036: gets (char *__str) 8036: { 8036: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 8036: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 8036: return __gets_warn (__str); 8036: } 8036: 8036: 8036: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8036: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n) || __n <= 0) 8036: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8036: 8036: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8036: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8036: } 8036: return __fgets_alias (__s, __n, __stream); 8036: } 8036: 8036: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 8036: size_t __size, size_t __n, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 8036: 8036: 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8036: fread (void *__restrict __ptr, size_t __size, size_t __n, 8036: FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__size) 8036: || !__builtin_constant_p (__n) 8036: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8036: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8036: 8036: if (__size * __n > __builtin_object_size (__ptr, 0)) 8036: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8036: } 8036: return __fread_alias (__ptr, __size, __n, __stream); 8036: } 8036: 8036: 8036: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 8036: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8036: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__n) || __n <= 0) 8036: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8036: 8036: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8036: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8036: } 8036: return __fgets_unlocked_alias (__s, __n, __stream); 8036: } 8036: 8036: 8036: 8036: 8036: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 8036: size_t __size, size_t __n, 8036: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8036: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: 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") 8036: 8036: 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8036: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 8036: FILE *__restrict __stream) 8036: { 8036: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__size) 8036: || !__builtin_constant_p (__n) 8036: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8036: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8036: __stream); 8036: 8036: if (__size * __n > __builtin_object_size (__ptr, 0)) 8036: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8036: __stream); 8036: } 8036: 8036: 8036: if (__builtin_constant_p (__size) 8036: && __builtin_constant_p (__n) 8036: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 8036: && __size * __n <= 8) 8036: { 8036: size_t __cnt = __size * __n; 8036: char *__cptr = (char *) __ptr; 8036: if (__cnt == 0) 8036: return 0; 8036: 8036: for (; __cnt > 0; --__cnt) 8036: { 8036: int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 8036: if (__c == (-1)) 8036: break; 8036: *__cptr++ = __c; 8036: } 8036: return (__cptr - (char *) __ptr) / __size; 8036: } 8036: 8036: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 8036: } 8036: # 863 "/usr/include/stdio.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: } 8036: # 43 "/usr/include/c++/8/cstdio" 2 3 8036: # 96 "/usr/include/c++/8/cstdio" 3 8036: namespace std 8036: { 8036: using ::FILE; 8036: using ::fpos_t; 8036: 8036: using ::clearerr; 8036: using ::fclose; 8036: using ::feof; 8036: using ::ferror; 8036: using ::fflush; 8036: using ::fgetc; 8036: using ::fgetpos; 8036: using ::fgets; 8036: using ::fopen; 8036: using ::fprintf; 8036: using ::fputc; 8036: using ::fputs; 8036: using ::fread; 8036: using ::freopen; 8036: using ::fscanf; 8036: using ::fseek; 8036: using ::fsetpos; 8036: using ::ftell; 8036: using ::fwrite; 8036: using ::getc; 8036: using ::getchar; 8036: 8036: 8036: using ::gets; 8036: 8036: using ::perror; 8036: using ::printf; 8036: using ::putc; 8036: using ::putchar; 8036: using ::puts; 8036: using ::remove; 8036: using ::rename; 8036: using ::rewind; 8036: using ::scanf; 8036: using ::setbuf; 8036: using ::setvbuf; 8036: using ::sprintf; 8036: using ::sscanf; 8036: using ::tmpfile; 8036: 8036: using ::tmpnam; 8036: 8036: using ::ungetc; 8036: using ::vfprintf; 8036: using ::vprintf; 8036: using ::vsprintf; 8036: } 8036: # 157 "/usr/include/c++/8/cstdio" 3 8036: namespace __gnu_cxx 8036: { 8036: # 175 "/usr/include/c++/8/cstdio" 3 8036: using ::snprintf; 8036: using ::vfscanf; 8036: using ::vscanf; 8036: using ::vsnprintf; 8036: using ::vsscanf; 8036: 8036: } 8036: 8036: namespace std 8036: { 8036: using ::__gnu_cxx::snprintf; 8036: using ::__gnu_cxx::vfscanf; 8036: using ::__gnu_cxx::vscanf; 8036: using ::__gnu_cxx::vsnprintf; 8036: using ::__gnu_cxx::vsscanf; 8036: } 8036: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8036: # 1 "/usr/include/c++/8/cerrno" 1 3 8036: # 39 "/usr/include/c++/8/cerrno" 3 8036: 8036: # 40 "/usr/include/c++/8/cerrno" 3 8036: 8036: 8036: # 1 "/usr/include/errno.h" 1 3 4 8036: # 28 "/usr/include/errno.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/errno.h" 1 3 4 8036: # 26 "/usr/include/powerpc64le-linux-gnu/bits/errno.h" 3 4 8036: # 1 "/usr/include/linux/errno.h" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/asm/errno.h" 1 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 8036: # 5 "/usr/include/asm-generic/errno.h" 2 3 4 8036: # 5 "/usr/include/powerpc64le-linux-gnu/asm/errno.h" 2 3 4 8036: # 1 "/usr/include/linux/errno.h" 2 3 4 8036: # 27 "/usr/include/powerpc64le-linux-gnu/bits/errno.h" 2 3 4 8036: # 29 "/usr/include/errno.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *program_invocation_name; 8036: extern char *program_invocation_short_name; 8036: 8036: 8036: 8036: 8036: 8036: typedef int error_t; 8036: 8036: 8036: 8036: 8036: } 8036: # 43 "/usr/include/c++/8/cerrno" 2 3 8036: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8036: 8036: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: _Ret 8036: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 8036: const char* __name, const _CharT* __str, std::size_t* __idx, 8036: _Base... __base) 8036: { 8036: _Ret __ret; 8036: 8036: _CharT* __endptr; 8036: 8036: struct _Save_errno { 8036: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 8036: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 8036: int _M_errno; 8036: } const __save_errno; 8036: 8036: struct _Range_chk { 8036: static bool 8036: _S_chk(_TRet, std::false_type) { return false; } 8036: 8036: static bool 8036: _S_chk(_TRet __val, std::true_type) 8036: { 8036: return __val < _TRet(__numeric_traits::__min) 8036: || __val > _TRet(__numeric_traits::__max); 8036: } 8036: }; 8036: 8036: const _TRet __tmp = __convf(__str, &__endptr, __base...); 8036: 8036: if (__endptr == __str) 8036: std::__throw_invalid_argument(__name); 8036: else if ((*__errno_location ()) == 34 8036: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 8036: std::__throw_out_of_range(__name); 8036: else 8036: __ret = __tmp; 8036: 8036: if (__idx) 8036: *__idx = __endptr - __str; 8036: 8036: return __ret; 8036: } 8036: 8036: 8036: template 8036: _String 8036: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 8036: __builtin_va_list), std::size_t __n, 8036: const _CharT* __fmt, ...) 8036: { 8036: 8036: 8036: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __n)); 8036: 8036: __builtin_va_list __args; 8036: __builtin_va_start(__args, __fmt); 8036: 8036: const int __len = __convf(__s, __n, __fmt, __args); 8036: 8036: __builtin_va_end(__args); 8036: 8036: return _String(__s, __s + __len); 8036: } 8036: 8036: 8036: } 8036: # 6362 "/usr/include/c++/8/bits/basic_string.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: namespace __cxx11 { 8036: 8036: 8036: 8036: inline int 8036: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline long 8036: stol(const string& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline unsigned long 8036: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline long long 8036: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline unsigned long long 8036: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 8036: __idx, __base); } 8036: 8036: 8036: inline float 8036: stof(const string& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 8036: 8036: inline double 8036: stod(const string& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 8036: 8036: inline long double 8036: stold(const string& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline string 8036: to_string(int __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 8036: "%d", __val); } 8036: 8036: inline string 8036: to_string(unsigned __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8036: 4 * sizeof(unsigned), 8036: "%u", __val); } 8036: 8036: inline string 8036: to_string(long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 8036: "%ld", __val); } 8036: 8036: inline string 8036: to_string(unsigned long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8036: 4 * sizeof(unsigned long), 8036: "%lu", __val); } 8036: 8036: inline string 8036: to_string(long long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8036: 4 * sizeof(long long), 8036: "%lld", __val); } 8036: 8036: inline string 8036: to_string(unsigned long long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8036: 4 * sizeof(unsigned long long), 8036: "%llu", __val); } 8036: 8036: inline string 8036: to_string(float __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8036: "%f", __val); 8036: } 8036: 8036: inline string 8036: to_string(double __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8036: "%f", __val); 8036: } 8036: 8036: inline string 8036: to_string(long double __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8036: "%Lf", __val); 8036: } 8036: 8036: 8036: 8036: inline int 8036: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline long 8036: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline unsigned long 8036: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline long long 8036: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 8036: __idx, __base); } 8036: 8036: inline unsigned long long 8036: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 8036: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 8036: __idx, __base); } 8036: 8036: 8036: inline float 8036: stof(const wstring& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 8036: 8036: inline double 8036: stod(const wstring& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 8036: 8036: inline long double 8036: stold(const wstring& __str, size_t* __idx = 0) 8036: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 8036: 8036: 8036: 8036: inline wstring 8036: to_wstring(int __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 8036: L"%d", __val); } 8036: 8036: inline wstring 8036: to_wstring(unsigned __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8036: 4 * sizeof(unsigned), 8036: L"%u", __val); } 8036: 8036: inline wstring 8036: to_wstring(long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 8036: L"%ld", __val); } 8036: 8036: inline wstring 8036: to_wstring(unsigned long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8036: 4 * sizeof(unsigned long), 8036: L"%lu", __val); } 8036: 8036: inline wstring 8036: to_wstring(long long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8036: 4 * sizeof(long long), 8036: L"%lld", __val); } 8036: 8036: inline wstring 8036: to_wstring(unsigned long long __val) 8036: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8036: 4 * sizeof(unsigned long long), 8036: L"%llu", __val); } 8036: 8036: inline wstring 8036: to_wstring(float __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8036: L"%f", __val); 8036: } 8036: 8036: inline wstring 8036: to_wstring(double __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8036: L"%f", __val); 8036: } 8036: 8036: inline wstring 8036: to_wstring(long double __val) 8036: { 8036: const int __n = 8036: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8036: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8036: L"%Lf", __val); 8036: } 8036: 8036: 8036: 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 8036: template 8036: struct __hash_base 8036: { 8036: typedef _Result result_type ; 8036: typedef _Arg argument_type ; 8036: }; 8036: 8036: 8036: template 8036: struct hash; 8036: 8036: template 8036: struct __poison_hash 8036: { 8036: static constexpr bool __enable_hash_call = false; 8036: private: 8036: 8036: __poison_hash(__poison_hash&&); 8036: ~__poison_hash(); 8036: }; 8036: 8036: template 8036: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 8036: { 8036: static constexpr bool __enable_hash_call = true; 8036: }; 8036: 8036: 8036: template::value> 8036: struct __hash_enum 8036: { 8036: private: 8036: 8036: __hash_enum(__hash_enum&&); 8036: ~__hash_enum(); 8036: }; 8036: 8036: 8036: template 8036: struct __hash_enum<_Tp, true> : public __hash_base 8036: { 8036: size_t 8036: operator()(_Tp __val) const noexcept 8036: { 8036: using __type = typename underlying_type<_Tp>::type; 8036: return hash<__type>{}(static_cast<__type>(__val)); 8036: } 8036: }; 8036: 8036: 8036: 8036: template 8036: struct hash : __hash_enum<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct hash<_Tp*> : public __hash_base 8036: { 8036: size_t 8036: operator()(_Tp* __p) const noexcept 8036: { return reinterpret_cast(__p); } 8036: }; 8036: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 8036: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 8036: 8036: 8036: template<> struct hash<__int128> : public __hash_base { size_t operator()(__int128 __val) const noexcept { return static_cast(__val); } }; 8036: template<> struct hash<__int128 unsigned> : public __hash_base { size_t operator()(__int128 unsigned __val) const noexcept { return static_cast(__val); } }; 8036: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 8036: struct _Hash_impl 8036: { 8036: static size_t 8036: hash(const void* __ptr, size_t __clength, 8036: size_t __seed = static_cast(0xc70f6907UL)) 8036: { return _Hash_bytes(__ptr, __clength, __seed); } 8036: 8036: template 8036: static size_t 8036: hash(const _Tp& __val) 8036: { return hash(&__val, sizeof(__val)); } 8036: 8036: template 8036: static size_t 8036: __hash_combine(const _Tp& __val, size_t __hash) 8036: { return hash(&__val, sizeof(__val), __hash); } 8036: }; 8036: 8036: 8036: struct _Fnv_hash_impl 8036: { 8036: static size_t 8036: hash(const void* __ptr, size_t __clength, 8036: size_t __seed = static_cast(2166136261UL)) 8036: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 8036: 8036: template 8036: static size_t 8036: hash(const _Tp& __val) 8036: { return hash(&__val, sizeof(__val)); } 8036: 8036: template 8036: static size_t 8036: __hash_combine(const _Tp& __val, size_t __hash) 8036: { return hash(&__val, sizeof(__val), __hash); } 8036: }; 8036: 8036: 8036: template<> 8036: struct hash : public __hash_base 8036: { 8036: size_t 8036: operator()(float __val) const noexcept 8036: { 8036: 8036: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct hash : public __hash_base 8036: { 8036: size_t 8036: operator()(double __val) const noexcept 8036: { 8036: 8036: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 8036: } 8036: }; 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: __attribute__ ((__pure__)) size_t 8036: operator()(long double __val) const noexcept; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_fast_hash : public std::true_type 8036: { }; 8036: 8036: template<> 8036: struct __is_fast_hash> : public std::false_type 8036: { }; 8036: 8036: 8036: } 8036: # 6588 "/usr/include/c++/8/bits/basic_string.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: size_t 8036: operator()(const string& __s) const noexcept 8036: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 8036: }; 8036: 8036: template<> 8036: struct __is_fast_hash> : std::false_type 8036: { }; 8036: 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: size_t 8036: operator()(const wstring& __s) const noexcept 8036: { return std::_Hash_impl::hash(__s.data(), 8036: __s.length() * sizeof(wchar_t)); } 8036: }; 8036: 8036: template<> 8036: struct __is_fast_hash> : std::false_type 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: size_t 8036: operator()(const u16string& __s) const noexcept 8036: { return std::_Hash_impl::hash(__s.data(), 8036: __s.length() * sizeof(char16_t)); } 8036: }; 8036: 8036: template<> 8036: struct __is_fast_hash> : std::false_type 8036: { }; 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: size_t 8036: operator()(const u32string& __s) const noexcept 8036: { return std::_Hash_impl::hash(__s.data(), 8036: __s.length() * sizeof(char32_t)); } 8036: }; 8036: 8036: template<> 8036: struct __is_fast_hash> : std::false_type 8036: { }; 8036: # 6700 "/usr/include/c++/8/bits/basic_string.h" 3 8036: 8036: } 8036: # 53 "/usr/include/c++/8/string" 2 3 8036: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 8036: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 8036: 8036: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>::npos; 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: swap(basic_string& __s) noexcept 8036: { 8036: if (this == &__s) 8036: return; 8036: 8036: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 8036: 8036: if (_M_is_local()) 8036: if (__s._M_is_local()) 8036: { 8036: if (length() && __s.length()) 8036: { 8036: _CharT __tmp_data[_S_local_capacity + 1]; 8036: traits_type::copy(__tmp_data, __s._M_local_buf, 8036: _S_local_capacity + 1); 8036: traits_type::copy(__s._M_local_buf, _M_local_buf, 8036: _S_local_capacity + 1); 8036: traits_type::copy(_M_local_buf, __tmp_data, 8036: _S_local_capacity + 1); 8036: } 8036: else if (__s.length()) 8036: { 8036: traits_type::copy(_M_local_buf, __s._M_local_buf, 8036: _S_local_capacity + 1); 8036: _M_length(__s.length()); 8036: __s._M_set_length(0); 8036: return; 8036: } 8036: else if (length()) 8036: { 8036: traits_type::copy(__s._M_local_buf, _M_local_buf, 8036: _S_local_capacity + 1); 8036: __s._M_length(length()); 8036: _M_set_length(0); 8036: return; 8036: } 8036: } 8036: else 8036: { 8036: const size_type __tmp_capacity = __s._M_allocated_capacity; 8036: traits_type::copy(__s._M_local_buf, _M_local_buf, 8036: _S_local_capacity + 1); 8036: _M_data(__s._M_data()); 8036: __s._M_data(__s._M_local_buf); 8036: _M_capacity(__tmp_capacity); 8036: } 8036: else 8036: { 8036: const size_type __tmp_capacity = _M_allocated_capacity; 8036: if (__s._M_is_local()) 8036: { 8036: traits_type::copy(_M_local_buf, __s._M_local_buf, 8036: _S_local_capacity + 1); 8036: __s._M_data(_M_data()); 8036: _M_data(_M_local_buf); 8036: } 8036: else 8036: { 8036: pointer __tmp_ptr = _M_data(); 8036: _M_data(__s._M_data()); 8036: __s._M_data(__tmp_ptr); 8036: _M_capacity(__s._M_allocated_capacity); 8036: } 8036: __s._M_capacity(__tmp_capacity); 8036: } 8036: 8036: const size_type __tmp_length = length(); 8036: _M_length(__s.length()); 8036: __s._M_length(__tmp_length); 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::pointer 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_create(size_type& __capacity, size_type __old_capacity) 8036: { 8036: 8036: 8036: if (__capacity > max_size()) 8036: std::__throw_length_error(("basic_string::_M_create")); 8036: 8036: 8036: 8036: 8036: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 8036: { 8036: __capacity = 2 * __old_capacity; 8036: 8036: if (__capacity > max_size()) 8036: __capacity = max_size(); 8036: } 8036: 8036: 8036: 8036: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_construct(_InIterator __beg, _InIterator __end, 8036: std::input_iterator_tag) 8036: { 8036: size_type __len = 0; 8036: size_type __capacity = size_type(_S_local_capacity); 8036: 8036: while (__beg != __end && __len < __capacity) 8036: { 8036: _M_data()[__len++] = *__beg; 8036: ++__beg; 8036: } 8036: 8036: if (true) 8036: { 8036: while (__beg != __end) 8036: { 8036: if (__len == __capacity) 8036: { 8036: 8036: __capacity = __len + 1; 8036: pointer __another = _M_create(__capacity, __len); 8036: this->_S_copy(__another, _M_data(), __len); 8036: _M_dispose(); 8036: _M_data(__another); 8036: _M_capacity(__capacity); 8036: } 8036: _M_data()[__len++] = *__beg; 8036: ++__beg; 8036: } 8036: } 8036: if (false) 8036: { 8036: _M_dispose(); 8036: ; 8036: } 8036: 8036: _M_set_length(__len); 8036: } 8036: 8036: template 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_construct(_InIterator __beg, _InIterator __end, 8036: std::forward_iterator_tag) 8036: { 8036: 8036: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 8036: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 8036: ); 8036: 8036: size_type __dnew = static_cast(std::distance(__beg, __end)); 8036: 8036: if (__dnew > size_type(_S_local_capacity)) 8036: { 8036: _M_data(_M_create(__dnew, size_type(0))); 8036: _M_capacity(__dnew); 8036: } 8036: 8036: 8036: if (true) 8036: { this->_S_copy_chars(_M_data(), __beg, __end); } 8036: if (false) 8036: { 8036: _M_dispose(); 8036: ; 8036: } 8036: 8036: _M_set_length(__dnew); 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_construct(size_type __n, _CharT __c) 8036: { 8036: if (__n > size_type(_S_local_capacity)) 8036: { 8036: _M_data(_M_create(__n, size_type(0))); 8036: _M_capacity(__n); 8036: } 8036: 8036: if (__n) 8036: this->_S_assign(_M_data(), __n, __c); 8036: 8036: _M_set_length(__n); 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_assign(const basic_string& __str) 8036: { 8036: if (this != &__str) 8036: { 8036: const size_type __rsize = __str.length(); 8036: const size_type __capacity = capacity(); 8036: 8036: if (__rsize > __capacity) 8036: { 8036: size_type __new_capacity = __rsize; 8036: pointer __tmp = _M_create(__new_capacity, __capacity); 8036: _M_dispose(); 8036: _M_data(__tmp); 8036: _M_capacity(__new_capacity); 8036: } 8036: 8036: if (__rsize) 8036: this->_S_copy(_M_data(), __str._M_data(), __rsize); 8036: 8036: _M_set_length(__rsize); 8036: } 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: reserve(size_type __res) 8036: { 8036: 8036: if (__res < length()) 8036: __res = length(); 8036: 8036: const size_type __capacity = capacity(); 8036: if (__res != __capacity) 8036: { 8036: if (__res > __capacity 8036: || __res > size_type(_S_local_capacity)) 8036: { 8036: pointer __tmp = _M_create(__res, __capacity); 8036: this->_S_copy(__tmp, _M_data(), length() + 1); 8036: _M_dispose(); 8036: _M_data(__tmp); 8036: _M_capacity(__res); 8036: } 8036: else if (!_M_is_local()) 8036: { 8036: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 8036: _M_destroy(__capacity); 8036: _M_data(_M_local_data()); 8036: } 8036: } 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8036: size_type __len2) 8036: { 8036: const size_type __how_much = length() - __pos - __len1; 8036: 8036: size_type __new_capacity = length() + __len2 - __len1; 8036: pointer __r = _M_create(__new_capacity, capacity()); 8036: 8036: if (__pos) 8036: this->_S_copy(__r, _M_data(), __pos); 8036: if (__s && __len2) 8036: this->_S_copy(__r + __pos, __s, __len2); 8036: if (__how_much) 8036: this->_S_copy(__r + __pos + __len2, 8036: _M_data() + __pos + __len1, __how_much); 8036: 8036: _M_dispose(); 8036: _M_data(__r); 8036: _M_capacity(__new_capacity); 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_erase(size_type __pos, size_type __n) 8036: { 8036: const size_type __how_much = length() - __pos - __n; 8036: 8036: if (__how_much && __n) 8036: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 8036: 8036: _M_set_length(length() - __n); 8036: } 8036: 8036: template 8036: void 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: resize(size_type __n, _CharT __c) 8036: { 8036: const size_type __size = this->size(); 8036: if (__size < __n) 8036: this->append(__n - __size, __c); 8036: else if (__n < __size) 8036: this->_M_set_length(__n); 8036: } 8036: 8036: template 8036: basic_string<_CharT, _Traits, _Alloc>& 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_append(const _CharT* __s, size_type __n) 8036: { 8036: const size_type __len = __n + this->size(); 8036: 8036: if (__len <= this->capacity()) 8036: { 8036: if (__n) 8036: this->_S_copy(this->_M_data() + this->size(), __s, __n); 8036: } 8036: else 8036: this->_M_mutate(this->size(), size_type(0), __s, __n); 8036: 8036: this->_M_set_length(__len); 8036: return *this; 8036: } 8036: 8036: template 8036: template 8036: basic_string<_CharT, _Traits, _Alloc>& 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8036: _InputIterator __k1, _InputIterator __k2, 8036: std::__false_type) 8036: { 8036: const basic_string __s(__k1, __k2); 8036: const size_type __n1 = __i2 - __i1; 8036: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 8036: __s.size()); 8036: } 8036: 8036: template 8036: basic_string<_CharT, _Traits, _Alloc>& 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8036: _CharT __c) 8036: { 8036: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 8036: 8036: const size_type __old_size = this->size(); 8036: const size_type __new_size = __old_size + __n2 - __n1; 8036: 8036: if (__new_size <= this->capacity()) 8036: { 8036: pointer __p = this->_M_data() + __pos1; 8036: 8036: const size_type __how_much = __old_size - __pos1 - __n1; 8036: if (__how_much && __n1 != __n2) 8036: this->_S_move(__p + __n2, __p + __n1, __how_much); 8036: } 8036: else 8036: this->_M_mutate(__pos1, __n1, 0, __n2); 8036: 8036: if (__n2) 8036: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 8036: 8036: this->_M_set_length(__new_size); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_string<_CharT, _Traits, _Alloc>& 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8036: const size_type __len2) 8036: { 8036: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 8036: 8036: const size_type __old_size = this->size(); 8036: const size_type __new_size = __old_size + __len2 - __len1; 8036: 8036: if (__new_size <= this->capacity()) 8036: { 8036: pointer __p = this->_M_data() + __pos; 8036: 8036: const size_type __how_much = __old_size - __pos - __len1; 8036: if (_M_disjunct(__s)) 8036: { 8036: if (__how_much && __len1 != __len2) 8036: this->_S_move(__p + __len2, __p + __len1, __how_much); 8036: if (__len2) 8036: this->_S_copy(__p, __s, __len2); 8036: } 8036: else 8036: { 8036: 8036: if (__len2 && __len2 <= __len1) 8036: this->_S_move(__p, __s, __len2); 8036: if (__how_much && __len1 != __len2) 8036: this->_S_move(__p + __len2, __p + __len1, __how_much); 8036: if (__len2 > __len1) 8036: { 8036: if (__s + __len2 <= __p + __len1) 8036: this->_S_move(__p, __s, __len2); 8036: else if (__s >= __p + __len1) 8036: this->_S_copy(__p, __s + __len2 - __len1, __len2); 8036: else 8036: { 8036: const size_type __nleft = (__p + __len1) - __s; 8036: this->_S_move(__p, __s, __nleft); 8036: this->_S_copy(__p + __nleft, __p + __len2, 8036: __len2 - __nleft); 8036: } 8036: } 8036: } 8036: } 8036: else 8036: this->_M_mutate(__pos, __len1, __s, __len2); 8036: 8036: this->_M_set_length(__new_size); 8036: return *this; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: copy(_CharT* __s, size_type __n, size_type __pos) const 8036: { 8036: _M_check(__pos, "basic_string::copy"); 8036: __n = _M_limit(__pos, __n); 8036: ; 8036: if (__n) 8036: _S_copy(__s, _M_data() + __pos, __n); 8036: 8036: return __n; 8036: } 8036: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 8036: template 8036: basic_string<_CharT, _Traits, _Alloc> 8036: operator+(const _CharT* __lhs, 8036: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { 8036: ; 8036: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8036: typedef typename __string_type::size_type __size_type; 8036: const __size_type __len = _Traits::length(__lhs); 8036: __string_type __str; 8036: __str.reserve(__len + __rhs.size()); 8036: __str.append(__lhs, __len); 8036: __str.append(__rhs); 8036: return __str; 8036: } 8036: 8036: template 8036: basic_string<_CharT, _Traits, _Alloc> 8036: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8036: { 8036: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8036: typedef typename __string_type::size_type __size_type; 8036: __string_type __str; 8036: const __size_type __len = __rhs.size(); 8036: __str.reserve(__len + 1); 8036: __str.append(__size_type(1), __lhs); 8036: __str.append(__rhs); 8036: return __str; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: const size_type __size = this->size(); 8036: 8036: if (__n == 0) 8036: return __pos <= __size ? __pos : npos; 8036: if (__pos >= __size) 8036: return npos; 8036: 8036: const _CharT __elem0 = __s[0]; 8036: const _CharT* const __data = data(); 8036: const _CharT* __first = __data + __pos; 8036: const _CharT* const __last = __data + __size; 8036: size_type __len = __size - __pos; 8036: 8036: while (__len >= __n) 8036: { 8036: 8036: __first = traits_type::find(__first, __len - __n + 1, __elem0); 8036: if (!__first) 8036: return npos; 8036: 8036: 8036: 8036: if (traits_type::compare(__first, __s, __n) == 0) 8036: return __first - __data; 8036: __len = __last - ++__first; 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find(_CharT __c, size_type __pos) const noexcept 8036: { 8036: size_type __ret = npos; 8036: const size_type __size = this->size(); 8036: if (__pos < __size) 8036: { 8036: const _CharT* __data = _M_data(); 8036: const size_type __n = __size - __pos; 8036: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 8036: if (__p) 8036: __ret = __p - __data; 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: const size_type __size = this->size(); 8036: if (__n <= __size) 8036: { 8036: __pos = std::min(size_type(__size - __n), __pos); 8036: const _CharT* __data = _M_data(); 8036: do 8036: { 8036: if (traits_type::compare(__data + __pos, __s, __n) == 0) 8036: return __pos; 8036: } 8036: while (__pos-- > 0); 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: rfind(_CharT __c, size_type __pos) const noexcept 8036: { 8036: size_type __size = this->size(); 8036: if (__size) 8036: { 8036: if (--__size > __pos) 8036: __size = __pos; 8036: for (++__size; __size-- > 0; ) 8036: if (traits_type::eq(_M_data()[__size], __c)) 8036: return __size; 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: for (; __n && __pos < this->size(); ++__pos) 8036: { 8036: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 8036: if (__p) 8036: return __pos; 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: size_type __size = this->size(); 8036: if (__size && __n) 8036: { 8036: if (--__size > __pos) 8036: __size = __pos; 8036: do 8036: { 8036: if (traits_type::find(__s, __n, _M_data()[__size])) 8036: return __size; 8036: } 8036: while (__size-- != 0); 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: for (; __pos < this->size(); ++__pos) 8036: if (!traits_type::find(__s, __n, _M_data()[__pos])) 8036: return __pos; 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_first_not_of(_CharT __c, size_type __pos) const noexcept 8036: { 8036: for (; __pos < this->size(); ++__pos) 8036: if (!traits_type::eq(_M_data()[__pos], __c)) 8036: return __pos; 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8036: noexcept 8036: { 8036: ; 8036: size_type __size = this->size(); 8036: if (__size) 8036: { 8036: if (--__size > __pos) 8036: __size = __pos; 8036: do 8036: { 8036: if (!traits_type::find(__s, __n, _M_data()[__size])) 8036: return __size; 8036: } 8036: while (__size--); 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: find_last_not_of(_CharT __c, size_type __pos) const noexcept 8036: { 8036: size_type __size = this->size(); 8036: if (__size) 8036: { 8036: if (--__size > __pos) 8036: __size = __pos; 8036: do 8036: { 8036: if (!traits_type::eq(_M_data()[__size], __c)) 8036: return __size; 8036: } 8036: while (__size--); 8036: } 8036: return npos; 8036: } 8036: 8036: template 8036: int 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: compare(size_type __pos, size_type __n, const basic_string& __str) const 8036: { 8036: _M_check(__pos, "basic_string::compare"); 8036: __n = _M_limit(__pos, __n); 8036: const size_type __osize = __str.size(); 8036: const size_type __len = std::min(__n, __osize); 8036: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 8036: if (!__r) 8036: __r = _S_compare(__n, __osize); 8036: return __r; 8036: } 8036: 8036: template 8036: int 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8036: size_type __pos2, size_type __n2) const 8036: { 8036: _M_check(__pos1, "basic_string::compare"); 8036: __str._M_check(__pos2, "basic_string::compare"); 8036: __n1 = _M_limit(__pos1, __n1); 8036: __n2 = __str._M_limit(__pos2, __n2); 8036: const size_type __len = std::min(__n1, __n2); 8036: int __r = traits_type::compare(_M_data() + __pos1, 8036: __str.data() + __pos2, __len); 8036: if (!__r) 8036: __r = _S_compare(__n1, __n2); 8036: return __r; 8036: } 8036: 8036: template 8036: int 8036: basic_string<_CharT, _Traits, _Alloc>:: 8036: compare(const _CharT* __s) const noexcept 8036: { 8036: ; 8036: const size_type __size = this->size(); 8036: const size_type __osize = traits_type::length(__s); 8036: const size_type __len = std::min(__size, __osize); 8036: int __r = traits_type::compare(_M_data(), __s, __len); 8036: if (!__r) 8036: __r = _S_compare(__size, __osize); 8036: return __r; 8036: } 8036: 8036: template 8036: int 8036: basic_string <_CharT, _Traits, _Alloc>:: 8036: compare(size_type __pos, size_type __n1, const _CharT* __s) const 8036: { 8036: ; 8036: _M_check(__pos, "basic_string::compare"); 8036: __n1 = _M_limit(__pos, __n1); 8036: const size_type __osize = traits_type::length(__s); 8036: const size_type __len = std::min(__n1, __osize); 8036: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8036: if (!__r) 8036: __r = _S_compare(__n1, __osize); 8036: return __r; 8036: } 8036: 8036: template 8036: int 8036: basic_string <_CharT, _Traits, _Alloc>:: 8036: compare(size_type __pos, size_type __n1, const _CharT* __s, 8036: size_type __n2) const 8036: { 8036: ; 8036: _M_check(__pos, "basic_string::compare"); 8036: __n1 = _M_limit(__pos, __n1); 8036: const size_type __len = std::min(__n1, __n2); 8036: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8036: if (!__r) 8036: __r = _S_compare(__n1, __n2); 8036: return __r; 8036: } 8036: 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __in, 8036: basic_string<_CharT, _Traits, _Alloc>& __str) 8036: { 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8036: typedef typename __istream_type::ios_base __ios_base; 8036: typedef typename __istream_type::int_type __int_type; 8036: typedef typename __string_type::size_type __size_type; 8036: typedef ctype<_CharT> __ctype_type; 8036: typedef typename __ctype_type::ctype_base __ctype_base; 8036: 8036: __size_type __extracted = 0; 8036: typename __ios_base::iostate __err = __ios_base::goodbit; 8036: typename __istream_type::sentry __cerb(__in, false); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: 8036: __str.erase(); 8036: _CharT __buf[128]; 8036: __size_type __len = 0; 8036: const streamsize __w = __in.width(); 8036: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 8036: : __str.max_size(); 8036: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8036: const __int_type __eof = _Traits::eof(); 8036: __int_type __c = __in.rdbuf()->sgetc(); 8036: 8036: while (__extracted < __n 8036: && !_Traits::eq_int_type(__c, __eof) 8036: && !__ct.is(__ctype_base::space, 8036: _Traits::to_char_type(__c))) 8036: { 8036: if (__len == sizeof(__buf) / sizeof(_CharT)) 8036: { 8036: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 8036: __len = 0; 8036: } 8036: __buf[__len++] = _Traits::to_char_type(__c); 8036: ++__extracted; 8036: __c = __in.rdbuf()->snextc(); 8036: } 8036: __str.append(__buf, __len); 8036: 8036: if (_Traits::eq_int_type(__c, __eof)) 8036: __err |= __ios_base::eofbit; 8036: __in.width(0); 8036: } 8036: if (false) 8036: { 8036: __in._M_setstate(__ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { 8036: 8036: 8036: 8036: __in._M_setstate(__ios_base::badbit); 8036: } 8036: } 8036: 8036: if (!__extracted) 8036: __err |= __ios_base::failbit; 8036: if (__err) 8036: __in.setstate(__err); 8036: return __in; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: getline(basic_istream<_CharT, _Traits>& __in, 8036: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8036: { 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8036: typedef typename __istream_type::ios_base __ios_base; 8036: typedef typename __istream_type::int_type __int_type; 8036: typedef typename __string_type::size_type __size_type; 8036: 8036: __size_type __extracted = 0; 8036: const __size_type __n = __str.max_size(); 8036: typename __ios_base::iostate __err = __ios_base::goodbit; 8036: typename __istream_type::sentry __cerb(__in, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: __str.erase(); 8036: const __int_type __idelim = _Traits::to_int_type(__delim); 8036: const __int_type __eof = _Traits::eof(); 8036: __int_type __c = __in.rdbuf()->sgetc(); 8036: 8036: while (__extracted < __n 8036: && !_Traits::eq_int_type(__c, __eof) 8036: && !_Traits::eq_int_type(__c, __idelim)) 8036: { 8036: __str += _Traits::to_char_type(__c); 8036: ++__extracted; 8036: __c = __in.rdbuf()->snextc(); 8036: } 8036: 8036: if (_Traits::eq_int_type(__c, __eof)) 8036: __err |= __ios_base::eofbit; 8036: else if (_Traits::eq_int_type(__c, __idelim)) 8036: { 8036: ++__extracted; 8036: __in.rdbuf()->sbumpc(); 8036: } 8036: else 8036: __err |= __ios_base::failbit; 8036: } 8036: if (false) 8036: { 8036: __in._M_setstate(__ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { 8036: 8036: 8036: 8036: __in._M_setstate(__ios_base::badbit); 8036: } 8036: } 8036: if (!__extracted) 8036: __err |= __ios_base::failbit; 8036: if (__err) 8036: __in.setstate(__err); 8036: return __in; 8036: } 8036: 8036: 8036: 8036: 8036: extern template class basic_string; 8036: extern template 8036: basic_istream& 8036: operator>>(basic_istream&, string&); 8036: extern template 8036: basic_ostream& 8036: operator<<(basic_ostream&, const string&); 8036: extern template 8036: basic_istream& 8036: getline(basic_istream&, string&, char); 8036: extern template 8036: basic_istream& 8036: getline(basic_istream&, string&); 8036: 8036: 8036: extern template class basic_string; 8036: extern template 8036: basic_istream& 8036: operator>>(basic_istream&, wstring&); 8036: extern template 8036: basic_ostream& 8036: operator<<(basic_ostream&, const wstring&); 8036: extern template 8036: basic_istream& 8036: getline(basic_istream&, wstring&, wchar_t); 8036: extern template 8036: basic_istream& 8036: getline(basic_istream&, wstring&); 8036: 8036: 8036: 8036: 8036: } 8036: # 54 "/usr/include/c++/8/string" 2 3 8036: # 41 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: class locale 8036: { 8036: public: 8036: 8036: 8036: typedef int category; 8036: 8036: 8036: class facet; 8036: class id; 8036: class _Impl; 8036: 8036: friend class facet; 8036: friend class _Impl; 8036: 8036: template 8036: friend bool 8036: has_facet(const locale&) throw(); 8036: 8036: template 8036: friend const _Facet& 8036: use_facet(const locale&); 8036: 8036: template 8036: friend struct __use_cache; 8036: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: static const category none = 0; 8036: static const category ctype = 1L << 0; 8036: static const category numeric = 1L << 1; 8036: static const category collate = 1L << 2; 8036: static const category time = 1L << 3; 8036: static const category monetary = 1L << 4; 8036: static const category messages = 1L << 5; 8036: static const category all = (ctype | numeric | collate | 8036: time | monetary | messages); 8036: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: locale() throw(); 8036: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: locale(const locale& __other) throw(); 8036: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: explicit 8036: locale(const char* __s); 8036: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: locale(const locale& __base, const char* __s, category __cat); 8036: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: explicit 8036: locale(const std::string& __s) : locale(__s.c_str()) { } 8036: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: locale(const locale& __base, const std::string& __s, category __cat) 8036: : locale(__base, __s.c_str(), __cat) { } 8036: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: locale(const locale& __base, const locale& __add, category __cat); 8036: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: template 8036: locale(const locale& __other, _Facet* __f); 8036: 8036: 8036: ~locale() throw(); 8036: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: const locale& 8036: operator=(const locale& __other) throw(); 8036: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: template 8036: locale 8036: combine(const locale& __other) const; 8036: 8036: 8036: 8036: 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: string 8036: name() const; 8036: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: bool 8036: operator==(const locale& __other) const throw(); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: operator!=(const locale& __other) const throw() 8036: { return !(this->operator==(__other)); } 8036: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: template 8036: bool 8036: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 8036: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 8036: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: static locale 8036: global(const locale& __loc); 8036: 8036: 8036: 8036: 8036: static const locale& 8036: classic(); 8036: 8036: private: 8036: 8036: _Impl* _M_impl; 8036: 8036: 8036: static _Impl* _S_classic; 8036: 8036: 8036: static _Impl* _S_global; 8036: 8036: 8036: 8036: 8036: 8036: static const char* const* const _S_categories; 8036: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: enum { _S_categories_size = 6 + 6 }; 8036: 8036: 8036: static __gthread_once_t _S_once; 8036: 8036: 8036: explicit 8036: locale(_Impl*) throw(); 8036: 8036: static void 8036: _S_initialize(); 8036: 8036: static void 8036: _S_initialize_once() throw(); 8036: 8036: static category 8036: _S_normalize_category(category); 8036: 8036: void 8036: _M_coalesce(const locale& __base, const locale& __add, category __cat); 8036: 8036: 8036: static const id* const _S_twinned_facets[]; 8036: 8036: }; 8036: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: class locale::facet 8036: { 8036: private: 8036: friend class locale; 8036: friend class locale::_Impl; 8036: 8036: mutable _Atomic_word _M_refcount; 8036: 8036: 8036: static __c_locale _S_c_locale; 8036: 8036: 8036: static const char _S_c_name[2]; 8036: 8036: 8036: static __gthread_once_t _S_once; 8036: 8036: 8036: static void 8036: _S_initialize_once(); 8036: 8036: protected: 8036: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: explicit 8036: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 8036: { } 8036: 8036: 8036: virtual 8036: ~facet(); 8036: 8036: static void 8036: _S_create_c_locale(__c_locale& __cloc, const char* __s, 8036: __c_locale __old = 0); 8036: 8036: static __c_locale 8036: _S_clone_c_locale(__c_locale& __cloc) throw(); 8036: 8036: static void 8036: _S_destroy_c_locale(__c_locale& __cloc); 8036: 8036: static __c_locale 8036: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 8036: 8036: 8036: 8036: static __c_locale 8036: _S_get_c_locale(); 8036: 8036: __attribute__ ((__const__)) static const char* 8036: _S_get_c_name() throw(); 8036: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: facet(const facet&) = delete; 8036: 8036: facet& 8036: operator=(const facet&) = delete; 8036: 8036: 8036: private: 8036: void 8036: _M_add_reference() const throw() 8036: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8036: 8036: void 8036: _M_remove_reference() const throw() 8036: { 8036: 8036: ; 8036: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8036: { 8036: ; 8036: if (true) 8036: { delete this; } 8036: if (false) 8036: { } 8036: } 8036: } 8036: 8036: const facet* _M_sso_shim(const id*) const; 8036: const facet* _M_cow_shim(const id*) const; 8036: 8036: protected: 8036: class __shim; 8036: }; 8036: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: class locale::id 8036: { 8036: private: 8036: friend class locale; 8036: friend class locale::_Impl; 8036: 8036: template 8036: friend const _Facet& 8036: use_facet(const locale&); 8036: 8036: template 8036: friend bool 8036: has_facet(const locale&) throw(); 8036: 8036: 8036: 8036: 8036: mutable size_t _M_index; 8036: 8036: 8036: static _Atomic_word _S_refcount; 8036: 8036: void 8036: operator=(const id&); 8036: 8036: id(const id&); 8036: 8036: public: 8036: 8036: 8036: 8036: id() { } 8036: 8036: size_t 8036: _M_id() const throw(); 8036: }; 8036: 8036: 8036: 8036: class locale::_Impl 8036: { 8036: public: 8036: 8036: friend class locale; 8036: friend class locale::facet; 8036: 8036: template 8036: friend bool 8036: has_facet(const locale&) throw(); 8036: 8036: template 8036: friend const _Facet& 8036: use_facet(const locale&); 8036: 8036: template 8036: friend struct __use_cache; 8036: 8036: private: 8036: 8036: _Atomic_word _M_refcount; 8036: const facet** _M_facets; 8036: size_t _M_facets_size; 8036: const facet** _M_caches; 8036: char** _M_names; 8036: static const locale::id* const _S_id_ctype[]; 8036: static const locale::id* const _S_id_numeric[]; 8036: static const locale::id* const _S_id_collate[]; 8036: static const locale::id* const _S_id_time[]; 8036: static const locale::id* const _S_id_monetary[]; 8036: static const locale::id* const _S_id_messages[]; 8036: static const locale::id* const* const _S_facet_categories[]; 8036: 8036: void 8036: _M_add_reference() throw() 8036: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8036: 8036: void 8036: _M_remove_reference() throw() 8036: { 8036: 8036: ; 8036: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8036: { 8036: ; 8036: if (true) 8036: { delete this; } 8036: if (false) 8036: { } 8036: } 8036: } 8036: 8036: _Impl(const _Impl&, size_t); 8036: _Impl(const char*, size_t); 8036: _Impl(size_t) throw(); 8036: 8036: ~_Impl() throw(); 8036: 8036: _Impl(const _Impl&); 8036: 8036: void 8036: operator=(const _Impl&); 8036: 8036: bool 8036: _M_check_same_name() 8036: { 8036: bool __ret = true; 8036: if (_M_names[1]) 8036: 8036: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 8036: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 8036: return __ret; 8036: } 8036: 8036: void 8036: _M_replace_categories(const _Impl*, category); 8036: 8036: void 8036: _M_replace_category(const _Impl*, const locale::id* const*); 8036: 8036: void 8036: _M_replace_facet(const _Impl*, const locale::id*); 8036: 8036: void 8036: _M_install_facet(const locale::id*, const facet*); 8036: 8036: template 8036: void 8036: _M_init_facet(_Facet* __facet) 8036: { _M_install_facet(&_Facet::id, __facet); } 8036: 8036: template 8036: void 8036: _M_init_facet_unchecked(_Facet* __facet) 8036: { 8036: __facet->_M_add_reference(); 8036: _M_facets[_Facet::id._M_id()] = __facet; 8036: } 8036: 8036: void 8036: _M_install_cache(const facet*, size_t); 8036: 8036: void _M_init_extra(facet**); 8036: void _M_init_extra(void*, void*, const char*, const char*); 8036: }; 8036: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: template 8036: class __cxx11:: collate : public locale::facet 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef basic_string<_CharT> string_type; 8036: 8036: 8036: protected: 8036: 8036: 8036: __c_locale _M_c_locale_collate; 8036: 8036: public: 8036: 8036: static locale::id id; 8036: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: explicit 8036: collate(size_t __refs = 0) 8036: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 8036: { } 8036: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: explicit 8036: collate(__c_locale __cloc, size_t __refs = 0) 8036: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 8036: { } 8036: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: int 8036: compare(const _CharT* __lo1, const _CharT* __hi1, 8036: const _CharT* __lo2, const _CharT* __hi2) const 8036: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 8036: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: string_type 8036: transform(const _CharT* __lo, const _CharT* __hi) const 8036: { return this->do_transform(__lo, __hi); } 8036: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: long 8036: hash(const _CharT* __lo, const _CharT* __hi) const 8036: { return this->do_hash(__lo, __hi); } 8036: 8036: 8036: int 8036: _M_compare(const _CharT*, const _CharT*) const throw(); 8036: 8036: size_t 8036: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 8036: 8036: protected: 8036: 8036: virtual 8036: ~collate() 8036: { _S_destroy_c_locale(_M_c_locale_collate); } 8036: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: virtual int 8036: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8036: const _CharT* __lo2, const _CharT* __hi2) const; 8036: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: virtual string_type 8036: do_transform(const _CharT* __lo, const _CharT* __hi) const; 8036: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 8036: virtual long 8036: do_hash(const _CharT* __lo, const _CharT* __hi) const; 8036: }; 8036: 8036: template 8036: locale::id collate<_CharT>::id; 8036: 8036: 8036: template<> 8036: int 8036: collate::_M_compare(const char*, const char*) const throw(); 8036: 8036: template<> 8036: size_t 8036: collate::_M_transform(char*, const char*, size_t) const throw(); 8036: 8036: 8036: template<> 8036: int 8036: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 8036: 8036: template<> 8036: size_t 8036: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 8036: 8036: 8036: 8036: template 8036: class __cxx11:: collate_byname : public collate<_CharT> 8036: { 8036: public: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef basic_string<_CharT> string_type; 8036: 8036: 8036: explicit 8036: collate_byname(const char* __s, size_t __refs = 0) 8036: : collate<_CharT>(__refs) 8036: { 8036: if (__builtin_strcmp(__s, "C") != 0 8036: && __builtin_strcmp(__s, "POSIX") != 0) 8036: { 8036: this->_S_destroy_c_locale(this->_M_c_locale_collate); 8036: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 8036: } 8036: } 8036: 8036: 8036: explicit 8036: collate_byname(const string& __s, size_t __refs = 0) 8036: : collate_byname(__s.c_str(), __refs) { } 8036: 8036: 8036: protected: 8036: virtual 8036: ~collate_byname() { } 8036: }; 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 8036: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: locale:: 8036: locale(const locale& __other, _Facet* __f) 8036: { 8036: _M_impl = new _Impl(*__other._M_impl, 1); 8036: 8036: if (true) 8036: { _M_impl->_M_install_facet(&_Facet::id, __f); } 8036: if (false) 8036: { 8036: _M_impl->_M_remove_reference(); 8036: ; 8036: } 8036: delete [] _M_impl->_M_names[0]; 8036: _M_impl->_M_names[0] = 0; 8036: } 8036: 8036: template 8036: locale 8036: locale:: 8036: combine(const locale& __other) const 8036: { 8036: _Impl* __tmp = new _Impl(*_M_impl, 1); 8036: if (true) 8036: { 8036: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 8036: } 8036: if (false) 8036: { 8036: __tmp->_M_remove_reference(); 8036: ; 8036: } 8036: return locale(__tmp); 8036: } 8036: 8036: template 8036: bool 8036: locale:: 8036: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 8036: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 8036: { 8036: typedef std::collate<_CharT> __collate_type; 8036: const __collate_type& __collate = use_facet<__collate_type>(*this); 8036: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 8036: __s2.data(), __s2.data() + __s2.length()) < 0); 8036: } 8036: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8036: template 8036: bool 8036: has_facet(const locale& __loc) throw() 8036: { 8036: const size_t __i = _Facet::id._M_id(); 8036: const locale::facet** __facets = __loc._M_impl->_M_facets; 8036: return (__i < __loc._M_impl->_M_facets_size 8036: 8036: && dynamic_cast(__facets[__i])); 8036: 8036: 8036: 8036: } 8036: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8036: template 8036: const _Facet& 8036: use_facet(const locale& __loc) 8036: { 8036: const size_t __i = _Facet::id._M_id(); 8036: const locale::facet** __facets = __loc._M_impl->_M_facets; 8036: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 8036: __throw_bad_cast(); 8036: 8036: return dynamic_cast(*__facets[__i]); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: template 8036: int 8036: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 8036: { return 0; } 8036: 8036: 8036: template 8036: size_t 8036: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 8036: { return 0; } 8036: 8036: template 8036: int 8036: collate<_CharT>:: 8036: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8036: const _CharT* __lo2, const _CharT* __hi2) const 8036: { 8036: 8036: 8036: const string_type __one(__lo1, __hi1); 8036: const string_type __two(__lo2, __hi2); 8036: 8036: const _CharT* __p = __one.c_str(); 8036: const _CharT* __pend = __one.data() + __one.length(); 8036: const _CharT* __q = __two.c_str(); 8036: const _CharT* __qend = __two.data() + __two.length(); 8036: 8036: 8036: 8036: 8036: for (;;) 8036: { 8036: const int __res = _M_compare(__p, __q); 8036: if (__res) 8036: return __res; 8036: 8036: __p += char_traits<_CharT>::length(__p); 8036: __q += char_traits<_CharT>::length(__q); 8036: if (__p == __pend && __q == __qend) 8036: return 0; 8036: else if (__p == __pend) 8036: return -1; 8036: else if (__q == __qend) 8036: return 1; 8036: 8036: __p++; 8036: __q++; 8036: } 8036: } 8036: 8036: template 8036: typename collate<_CharT>::string_type 8036: collate<_CharT>:: 8036: do_transform(const _CharT* __lo, const _CharT* __hi) const 8036: { 8036: string_type __ret; 8036: 8036: 8036: const string_type __str(__lo, __hi); 8036: 8036: const _CharT* __p = __str.c_str(); 8036: const _CharT* __pend = __str.data() + __str.length(); 8036: 8036: size_t __len = (__hi - __lo) * 2; 8036: 8036: _CharT* __c = new _CharT[__len]; 8036: 8036: if (true) 8036: { 8036: 8036: 8036: 8036: for (;;) 8036: { 8036: 8036: size_t __res = _M_transform(__c, __p, __len); 8036: 8036: 8036: if (__res >= __len) 8036: { 8036: __len = __res + 1; 8036: delete [] __c, __c = 0; 8036: __c = new _CharT[__len]; 8036: __res = _M_transform(__c, __p, __len); 8036: } 8036: 8036: __ret.append(__c, __res); 8036: __p += char_traits<_CharT>::length(__p); 8036: if (__p == __pend) 8036: break; 8036: 8036: __p++; 8036: __ret.push_back(_CharT()); 8036: } 8036: } 8036: if (false) 8036: { 8036: delete [] __c; 8036: ; 8036: } 8036: 8036: delete [] __c; 8036: 8036: return __ret; 8036: } 8036: 8036: template 8036: long 8036: collate<_CharT>:: 8036: do_hash(const _CharT* __lo, const _CharT* __hi) const 8036: { 8036: unsigned long __val = 0; 8036: for (; __lo < __hi; ++__lo) 8036: __val = 8036: *__lo + ((__val << 7) 8036: | (__val >> (__gnu_cxx::__numeric_traits:: 8036: __digits - 7))); 8036: return static_cast(__val); 8036: } 8036: 8036: 8036: 8036: 8036: extern template class collate; 8036: extern template class collate_byname; 8036: 8036: extern template 8036: const collate& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: 8036: extern template class collate; 8036: extern template class collate_byname; 8036: 8036: extern template 8036: const collate& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: 8036: 8036: 8036: } 8036: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8036: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/system_error" 1 3 8036: # 32 "/usr/include/c++/8/system_error" 3 8036: 8036: # 33 "/usr/include/c++/8/system_error" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/error_constants.h" 1 3 8036: # 34 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/error_constants.h" 3 8036: # 1 "/usr/include/c++/8/cerrno" 1 3 8036: # 39 "/usr/include/c++/8/cerrno" 3 8036: 8036: # 40 "/usr/include/c++/8/cerrno" 3 8036: # 35 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/error_constants.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: enum class errc 8036: { 8036: address_family_not_supported = 97, 8036: address_in_use = 98, 8036: address_not_available = 99, 8036: already_connected = 106, 8036: argument_list_too_long = 7, 8036: argument_out_of_domain = 33, 8036: bad_address = 14, 8036: bad_file_descriptor = 9, 8036: 8036: 8036: bad_message = 74, 8036: 8036: 8036: broken_pipe = 32, 8036: connection_aborted = 103, 8036: connection_already_in_progress = 114, 8036: connection_refused = 111, 8036: connection_reset = 104, 8036: cross_device_link = 18, 8036: destination_address_required = 89, 8036: device_or_resource_busy = 16, 8036: directory_not_empty = 39, 8036: executable_format_error = 8, 8036: file_exists = 17, 8036: file_too_large = 27, 8036: filename_too_long = 36, 8036: function_not_supported = 38, 8036: host_unreachable = 113, 8036: 8036: 8036: identifier_removed = 43, 8036: 8036: 8036: illegal_byte_sequence = 84, 8036: inappropriate_io_control_operation = 25, 8036: interrupted = 4, 8036: invalid_argument = 22, 8036: invalid_seek = 29, 8036: io_error = 5, 8036: is_a_directory = 21, 8036: message_size = 90, 8036: network_down = 100, 8036: network_reset = 102, 8036: network_unreachable = 101, 8036: no_buffer_space = 105, 8036: no_child_process = 10, 8036: 8036: 8036: no_link = 67, 8036: 8036: 8036: no_lock_available = 37, 8036: 8036: 8036: no_message_available = 61, 8036: 8036: 8036: no_message = 42, 8036: no_protocol_option = 92, 8036: no_space_on_device = 28, 8036: 8036: 8036: no_stream_resources = 63, 8036: 8036: 8036: no_such_device_or_address = 6, 8036: no_such_device = 19, 8036: no_such_file_or_directory = 2, 8036: no_such_process = 3, 8036: not_a_directory = 20, 8036: not_a_socket = 88, 8036: 8036: 8036: not_a_stream = 60, 8036: 8036: 8036: not_connected = 107, 8036: not_enough_memory = 12, 8036: 8036: 8036: not_supported = 95, 8036: 8036: 8036: 8036: operation_canceled = 125, 8036: 8036: 8036: operation_in_progress = 115, 8036: operation_not_permitted = 1, 8036: operation_not_supported = 95, 8036: operation_would_block = 11, 8036: 8036: 8036: owner_dead = 130, 8036: 8036: 8036: permission_denied = 13, 8036: 8036: 8036: protocol_error = 71, 8036: 8036: 8036: protocol_not_supported = 93, 8036: read_only_file_system = 30, 8036: resource_deadlock_would_occur = 35, 8036: resource_unavailable_try_again = 11, 8036: result_out_of_range = 34, 8036: 8036: 8036: state_not_recoverable = 131, 8036: 8036: 8036: 8036: stream_timeout = 62, 8036: 8036: 8036: 8036: text_file_busy = 26, 8036: 8036: 8036: timed_out = 110, 8036: too_many_files_open_in_system = 23, 8036: too_many_files_open = 24, 8036: too_many_links = 31, 8036: too_many_symbolic_link_levels = 40, 8036: 8036: 8036: value_too_large = 75, 8036: 8036: 8036: wrong_protocol_type = 91 8036: }; 8036: 8036: 8036: } 8036: # 40 "/usr/include/c++/8/system_error" 2 3 8036: 8036: # 1 "/usr/include/c++/8/stdexcept" 1 3 8036: # 36 "/usr/include/c++/8/stdexcept" 3 8036: 8036: # 37 "/usr/include/c++/8/stdexcept" 3 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: struct __cow_string 8036: { 8036: union { 8036: const char* _M_p; 8036: char _M_bytes[sizeof(const char*)]; 8036: }; 8036: 8036: __cow_string(); 8036: __cow_string(const std::string&); 8036: __cow_string(const char*, size_t); 8036: __cow_string(const __cow_string&) noexcept; 8036: __cow_string& operator=(const __cow_string&) noexcept; 8036: ~__cow_string(); 8036: 8036: __cow_string(__cow_string&&) noexcept; 8036: __cow_string& operator=(__cow_string&&) noexcept; 8036: 8036: }; 8036: 8036: typedef basic_string __sso_string; 8036: # 113 "/usr/include/c++/8/stdexcept" 3 8036: class logic_error : public exception 8036: { 8036: __cow_string _M_msg; 8036: 8036: public: 8036: 8036: explicit 8036: logic_error(const string& __arg) ; 8036: 8036: 8036: explicit 8036: logic_error(const char*) ; 8036: 8036: 8036: 8036: logic_error(const logic_error&) noexcept; 8036: logic_error& operator=(const logic_error&) noexcept; 8036: 8036: 8036: virtual ~logic_error() noexcept; 8036: 8036: 8036: 8036: virtual const char* 8036: what() const noexcept; 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: 8036: class domain_error : public logic_error 8036: { 8036: public: 8036: explicit domain_error(const string& __arg) ; 8036: 8036: explicit domain_error(const char*) ; 8036: 8036: virtual ~domain_error() noexcept; 8036: }; 8036: 8036: 8036: class invalid_argument : public logic_error 8036: { 8036: public: 8036: explicit invalid_argument(const string& __arg) ; 8036: 8036: explicit invalid_argument(const char*) ; 8036: 8036: virtual ~invalid_argument() noexcept; 8036: }; 8036: 8036: 8036: 8036: class length_error : public logic_error 8036: { 8036: public: 8036: explicit length_error(const string& __arg) ; 8036: 8036: explicit length_error(const char*) ; 8036: 8036: virtual ~length_error() noexcept; 8036: }; 8036: 8036: 8036: 8036: class out_of_range : public logic_error 8036: { 8036: public: 8036: explicit out_of_range(const string& __arg) ; 8036: 8036: explicit out_of_range(const char*) ; 8036: 8036: virtual ~out_of_range() noexcept; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: class runtime_error : public exception 8036: { 8036: __cow_string _M_msg; 8036: 8036: public: 8036: 8036: explicit 8036: runtime_error(const string& __arg) ; 8036: 8036: 8036: explicit 8036: runtime_error(const char*) ; 8036: 8036: 8036: 8036: runtime_error(const runtime_error&) noexcept; 8036: runtime_error& operator=(const runtime_error&) noexcept; 8036: 8036: 8036: virtual ~runtime_error() noexcept; 8036: 8036: 8036: 8036: virtual const char* 8036: what() const noexcept; 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: class range_error : public runtime_error 8036: { 8036: public: 8036: explicit range_error(const string& __arg) ; 8036: 8036: explicit range_error(const char*) ; 8036: 8036: virtual ~range_error() noexcept; 8036: }; 8036: 8036: 8036: class overflow_error : public runtime_error 8036: { 8036: public: 8036: explicit overflow_error(const string& __arg) ; 8036: 8036: explicit overflow_error(const char*) ; 8036: 8036: virtual ~overflow_error() noexcept; 8036: }; 8036: 8036: 8036: class underflow_error : public runtime_error 8036: { 8036: public: 8036: explicit underflow_error(const string& __arg) ; 8036: 8036: explicit underflow_error(const char*) ; 8036: 8036: virtual ~underflow_error() noexcept; 8036: }; 8036: 8036: 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/system_error" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: class error_code; 8036: class error_condition; 8036: class system_error; 8036: 8036: 8036: template 8036: struct is_error_code_enum : public false_type { }; 8036: 8036: 8036: template 8036: struct is_error_condition_enum : public false_type { }; 8036: 8036: template<> 8036: struct is_error_condition_enum 8036: : public true_type { }; 8036: # 71 "/usr/include/c++/8/system_error" 3 8036: inline namespace _V2 { 8036: 8036: 8036: class error_category 8036: { 8036: public: 8036: constexpr error_category() noexcept = default; 8036: 8036: virtual ~error_category(); 8036: 8036: error_category(const error_category&) = delete; 8036: error_category& operator=(const error_category&) = delete; 8036: 8036: virtual const char* 8036: name() const noexcept = 0; 8036: 8036: 8036: 8036: 8036: 8036: 8036: private: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: virtual __cow_string 8036: _M_message(int) const; 8036: 8036: public: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: virtual string 8036: message(int) const = 0; 8036: # 110 "/usr/include/c++/8/system_error" 3 8036: public: 8036: virtual error_condition 8036: default_error_condition(int __i) const noexcept; 8036: 8036: virtual bool 8036: equivalent(int __i, const error_condition& __cond) const noexcept; 8036: 8036: virtual bool 8036: equivalent(const error_code& __code, int __i) const noexcept; 8036: 8036: bool 8036: operator<(const error_category& __other) const noexcept 8036: { return less()(this, &__other); } 8036: 8036: bool 8036: operator==(const error_category& __other) const noexcept 8036: { return this == &__other; } 8036: 8036: bool 8036: operator!=(const error_category& __other) const noexcept 8036: { return this != &__other; } 8036: }; 8036: 8036: 8036: __attribute__ ((__const__)) const error_category& system_category() noexcept; 8036: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 8036: 8036: } 8036: 8036: error_code make_error_code(errc) noexcept; 8036: 8036: template 8036: struct hash; 8036: 8036: 8036: 8036: struct error_code 8036: { 8036: error_code() noexcept 8036: : _M_value(0), _M_cat(&system_category()) { } 8036: 8036: error_code(int __v, const error_category& __cat) noexcept 8036: : _M_value(__v), _M_cat(&__cat) { } 8036: 8036: template::value>::type> 8036: error_code(_ErrorCodeEnum __e) noexcept 8036: { *this = make_error_code(__e); } 8036: 8036: void 8036: assign(int __v, const error_category& __cat) noexcept 8036: { 8036: _M_value = __v; 8036: _M_cat = &__cat; 8036: } 8036: 8036: void 8036: clear() noexcept 8036: { assign(0, system_category()); } 8036: 8036: 8036: template 8036: typename enable_if::value, 8036: error_code&>::type 8036: operator=(_ErrorCodeEnum __e) noexcept 8036: { return *this = make_error_code(__e); } 8036: 8036: int 8036: value() const noexcept { return _M_value; } 8036: 8036: const error_category& 8036: category() const noexcept { return *_M_cat; } 8036: 8036: error_condition 8036: default_error_condition() const noexcept; 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: string 8036: message() const 8036: { return category().message(value()); } 8036: 8036: explicit operator bool() const noexcept 8036: { return _M_value != 0; } 8036: 8036: 8036: private: 8036: friend class hash; 8036: 8036: int _M_value; 8036: const error_category* _M_cat; 8036: }; 8036: 8036: 8036: inline error_code 8036: make_error_code(errc __e) noexcept 8036: { return error_code(static_cast(__e), generic_category()); } 8036: 8036: inline bool 8036: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 8036: { 8036: return (__lhs.category() < __rhs.category() 8036: || (__lhs.category() == __rhs.category() 8036: && __lhs.value() < __rhs.value())); 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 8036: { return (__os << __e.category().name() << ':' << __e.value()); } 8036: 8036: error_condition make_error_condition(errc) noexcept; 8036: 8036: 8036: 8036: struct error_condition 8036: { 8036: error_condition() noexcept 8036: : _M_value(0), _M_cat(&generic_category()) { } 8036: 8036: error_condition(int __v, const error_category& __cat) noexcept 8036: : _M_value(__v), _M_cat(&__cat) { } 8036: 8036: template::value>::type> 8036: error_condition(_ErrorConditionEnum __e) noexcept 8036: { *this = make_error_condition(__e); } 8036: 8036: void 8036: assign(int __v, const error_category& __cat) noexcept 8036: { 8036: _M_value = __v; 8036: _M_cat = &__cat; 8036: } 8036: 8036: 8036: template 8036: typename enable_if::value, error_condition&>::type 8036: operator=(_ErrorConditionEnum __e) noexcept 8036: { return *this = make_error_condition(__e); } 8036: 8036: void 8036: clear() noexcept 8036: { assign(0, generic_category()); } 8036: 8036: 8036: int 8036: value() const noexcept { return _M_value; } 8036: 8036: const error_category& 8036: category() const noexcept { return *_M_cat; } 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: string 8036: message() const 8036: { return category().message(value()); } 8036: 8036: explicit operator bool() const noexcept 8036: { return _M_value != 0; } 8036: 8036: 8036: private: 8036: int _M_value; 8036: const error_category* _M_cat; 8036: }; 8036: 8036: 8036: inline error_condition 8036: make_error_condition(errc __e) noexcept 8036: { return error_condition(static_cast(__e), generic_category()); } 8036: 8036: inline bool 8036: operator<(const error_condition& __lhs, 8036: const error_condition& __rhs) noexcept 8036: { 8036: return (__lhs.category() < __rhs.category() 8036: || (__lhs.category() == __rhs.category() 8036: && __lhs.value() < __rhs.value())); 8036: } 8036: 8036: 8036: inline bool 8036: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 8036: { return (__lhs.category() == __rhs.category() 8036: && __lhs.value() == __rhs.value()); } 8036: 8036: inline bool 8036: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 8036: { 8036: return (__lhs.category().equivalent(__lhs.value(), __rhs) 8036: || __rhs.category().equivalent(__lhs, __rhs.value())); 8036: } 8036: 8036: inline bool 8036: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 8036: { 8036: return (__rhs.category().equivalent(__rhs.value(), __lhs) 8036: || __lhs.category().equivalent(__rhs, __lhs.value())); 8036: } 8036: 8036: inline bool 8036: operator==(const error_condition& __lhs, 8036: const error_condition& __rhs) noexcept 8036: { 8036: return (__lhs.category() == __rhs.category() 8036: && __lhs.value() == __rhs.value()); 8036: } 8036: 8036: inline bool 8036: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 8036: { return !(__lhs == __rhs); } 8036: 8036: inline bool 8036: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 8036: { return !(__lhs == __rhs); } 8036: 8036: inline bool 8036: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 8036: { return !(__lhs == __rhs); } 8036: 8036: inline bool 8036: operator!=(const error_condition& __lhs, 8036: const error_condition& __rhs) noexcept 8036: { return !(__lhs == __rhs); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class system_error : public std::runtime_error 8036: { 8036: private: 8036: error_code _M_code; 8036: 8036: public: 8036: system_error(error_code __ec = error_code()) 8036: : runtime_error(__ec.message()), _M_code(__ec) { } 8036: 8036: system_error(error_code __ec, const string& __what) 8036: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 8036: 8036: system_error(error_code __ec, const char* __what) 8036: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 8036: 8036: system_error(int __v, const error_category& __ecat, const char* __what) 8036: : system_error(error_code(__v, __ecat), __what) { } 8036: 8036: system_error(int __v, const error_category& __ecat) 8036: : runtime_error(error_code(__v, __ecat).message()), 8036: _M_code(__v, __ecat) { } 8036: 8036: system_error(int __v, const error_category& __ecat, const string& __what) 8036: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 8036: _M_code(__v, __ecat) { } 8036: 8036: virtual ~system_error() noexcept; 8036: 8036: const error_code& 8036: code() const noexcept { return _M_code; } 8036: }; 8036: 8036: 8036: } 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: template<> 8036: struct hash 8036: : public __hash_base 8036: { 8036: size_t 8036: operator()(const error_code& __e) const noexcept 8036: { 8036: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 8036: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 8036: } 8036: }; 8036: # 414 "/usr/include/c++/8/system_error" 3 8036: 8036: } 8036: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum _Ios_Fmtflags 8036: { 8036: _S_boolalpha = 1L << 0, 8036: _S_dec = 1L << 1, 8036: _S_fixed = 1L << 2, 8036: _S_hex = 1L << 3, 8036: _S_internal = 1L << 4, 8036: _S_left = 1L << 5, 8036: _S_oct = 1L << 6, 8036: _S_right = 1L << 7, 8036: _S_scientific = 1L << 8, 8036: _S_showbase = 1L << 9, 8036: _S_showpoint = 1L << 10, 8036: _S_showpos = 1L << 11, 8036: _S_skipws = 1L << 12, 8036: _S_unitbuf = 1L << 13, 8036: _S_uppercase = 1L << 14, 8036: _S_adjustfield = _S_left | _S_right | _S_internal, 8036: _S_basefield = _S_dec | _S_oct | _S_hex, 8036: _S_floatfield = _S_scientific | _S_fixed, 8036: _S_ios_fmtflags_end = 1L << 16, 8036: _S_ios_fmtflags_max = 0x7fffffff, 8036: _S_ios_fmtflags_min = ~0x7fffffff 8036: }; 8036: 8036: inline constexpr _Ios_Fmtflags 8036: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8036: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Fmtflags 8036: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8036: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Fmtflags 8036: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8036: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Fmtflags 8036: operator~(_Ios_Fmtflags __a) 8036: { return _Ios_Fmtflags(~static_cast(__a)); } 8036: 8036: inline const _Ios_Fmtflags& 8036: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8036: { return __a = __a | __b; } 8036: 8036: inline const _Ios_Fmtflags& 8036: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8036: { return __a = __a & __b; } 8036: 8036: inline const _Ios_Fmtflags& 8036: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8036: { return __a = __a ^ __b; } 8036: 8036: 8036: enum _Ios_Openmode 8036: { 8036: _S_app = 1L << 0, 8036: _S_ate = 1L << 1, 8036: _S_bin = 1L << 2, 8036: _S_in = 1L << 3, 8036: _S_out = 1L << 4, 8036: _S_trunc = 1L << 5, 8036: _S_ios_openmode_end = 1L << 16, 8036: _S_ios_openmode_max = 0x7fffffff, 8036: _S_ios_openmode_min = ~0x7fffffff 8036: }; 8036: 8036: inline constexpr _Ios_Openmode 8036: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 8036: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Openmode 8036: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 8036: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Openmode 8036: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 8036: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Openmode 8036: operator~(_Ios_Openmode __a) 8036: { return _Ios_Openmode(~static_cast(__a)); } 8036: 8036: inline const _Ios_Openmode& 8036: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 8036: { return __a = __a | __b; } 8036: 8036: inline const _Ios_Openmode& 8036: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 8036: { return __a = __a & __b; } 8036: 8036: inline const _Ios_Openmode& 8036: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 8036: { return __a = __a ^ __b; } 8036: 8036: 8036: enum _Ios_Iostate 8036: { 8036: _S_goodbit = 0, 8036: _S_badbit = 1L << 0, 8036: _S_eofbit = 1L << 1, 8036: _S_failbit = 1L << 2, 8036: _S_ios_iostate_end = 1L << 16, 8036: _S_ios_iostate_max = 0x7fffffff, 8036: _S_ios_iostate_min = ~0x7fffffff 8036: }; 8036: 8036: inline constexpr _Ios_Iostate 8036: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 8036: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Iostate 8036: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 8036: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Iostate 8036: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 8036: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 8036: 8036: inline constexpr _Ios_Iostate 8036: operator~(_Ios_Iostate __a) 8036: { return _Ios_Iostate(~static_cast(__a)); } 8036: 8036: inline const _Ios_Iostate& 8036: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 8036: { return __a = __a | __b; } 8036: 8036: inline const _Ios_Iostate& 8036: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 8036: { return __a = __a & __b; } 8036: 8036: inline const _Ios_Iostate& 8036: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 8036: { return __a = __a ^ __b; } 8036: 8036: 8036: enum _Ios_Seekdir 8036: { 8036: _S_beg = 0, 8036: _S_cur = 1, 8036: _S_end = 2, 8036: _S_ios_seekdir_end = 1L << 16 8036: }; 8036: 8036: 8036: 8036: enum class io_errc { stream = 1 }; 8036: 8036: template <> struct is_error_code_enum : public true_type { }; 8036: 8036: const error_category& iostream_category() noexcept; 8036: 8036: inline error_code 8036: make_error_code(io_errc __e) noexcept 8036: { return error_code(static_cast(__e), iostream_category()); } 8036: 8036: inline error_condition 8036: make_error_condition(io_errc __e) noexcept 8036: { return error_condition(static_cast(__e), iostream_category()); } 8036: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 8036: class ios_base 8036: { 8036: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 8036: public: 8036: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 8036: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 8036: { 8036: public: 8036: explicit 8036: failure(const string& __str); 8036: 8036: 8036: explicit 8036: failure(const string&, const error_code&); 8036: 8036: explicit 8036: failure(const char*, const error_code& = io_errc::stream); 8036: 8036: 8036: virtual 8036: ~failure() throw(); 8036: 8036: virtual const char* 8036: what() const throw(); 8036: }; 8036: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 8036: typedef _Ios_Fmtflags fmtflags; 8036: 8036: 8036: static const fmtflags boolalpha = _S_boolalpha; 8036: 8036: 8036: static const fmtflags dec = _S_dec; 8036: 8036: 8036: static const fmtflags fixed = _S_fixed; 8036: 8036: 8036: static const fmtflags hex = _S_hex; 8036: 8036: 8036: 8036: 8036: static const fmtflags internal = _S_internal; 8036: 8036: 8036: 8036: static const fmtflags left = _S_left; 8036: 8036: 8036: static const fmtflags oct = _S_oct; 8036: 8036: 8036: 8036: static const fmtflags right = _S_right; 8036: 8036: 8036: static const fmtflags scientific = _S_scientific; 8036: 8036: 8036: 8036: static const fmtflags showbase = _S_showbase; 8036: 8036: 8036: 8036: static const fmtflags showpoint = _S_showpoint; 8036: 8036: 8036: static const fmtflags showpos = _S_showpos; 8036: 8036: 8036: static const fmtflags skipws = _S_skipws; 8036: 8036: 8036: static const fmtflags unitbuf = _S_unitbuf; 8036: 8036: 8036: 8036: static const fmtflags uppercase = _S_uppercase; 8036: 8036: 8036: static const fmtflags adjustfield = _S_adjustfield; 8036: 8036: 8036: static const fmtflags basefield = _S_basefield; 8036: 8036: 8036: static const fmtflags floatfield = _S_floatfield; 8036: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 8036: typedef _Ios_Iostate iostate; 8036: 8036: 8036: 8036: static const iostate badbit = _S_badbit; 8036: 8036: 8036: static const iostate eofbit = _S_eofbit; 8036: 8036: 8036: 8036: 8036: static const iostate failbit = _S_failbit; 8036: 8036: 8036: static const iostate goodbit = _S_goodbit; 8036: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 8036: typedef _Ios_Openmode openmode; 8036: 8036: 8036: static const openmode app = _S_app; 8036: 8036: 8036: static const openmode ate = _S_ate; 8036: 8036: 8036: 8036: 8036: static const openmode binary = _S_bin; 8036: 8036: 8036: static const openmode in = _S_in; 8036: 8036: 8036: static const openmode out = _S_out; 8036: 8036: 8036: static const openmode trunc = _S_trunc; 8036: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 8036: typedef _Ios_Seekdir seekdir; 8036: 8036: 8036: static const seekdir beg = _S_beg; 8036: 8036: 8036: static const seekdir cur = _S_cur; 8036: 8036: 8036: static const seekdir end = _S_end; 8036: 8036: 8036: 8036: typedef int io_state; 8036: typedef int open_mode; 8036: typedef int seek_dir; 8036: 8036: typedef std::streampos streampos; 8036: typedef std::streamoff streamoff; 8036: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 8036: enum event 8036: { 8036: erase_event, 8036: imbue_event, 8036: copyfmt_event 8036: }; 8036: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 8036: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 8036: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 8036: void 8036: register_callback(event_callback __fn, int __index); 8036: 8036: protected: 8036: streamsize _M_precision; 8036: streamsize _M_width; 8036: fmtflags _M_flags; 8036: iostate _M_exception; 8036: iostate _M_streambuf_state; 8036: 8036: 8036: 8036: struct _Callback_list 8036: { 8036: 8036: _Callback_list* _M_next; 8036: ios_base::event_callback _M_fn; 8036: int _M_index; 8036: _Atomic_word _M_refcount; 8036: 8036: _Callback_list(ios_base::event_callback __fn, int __index, 8036: _Callback_list* __cb) 8036: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 8036: 8036: void 8036: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8036: 8036: 8036: int 8036: _M_remove_reference() 8036: { 8036: 8036: ; 8036: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 8036: if (__res == 0) 8036: { 8036: ; 8036: } 8036: return __res; 8036: } 8036: }; 8036: 8036: _Callback_list* _M_callbacks; 8036: 8036: void 8036: _M_call_callbacks(event __ev) throw(); 8036: 8036: void 8036: _M_dispose_callbacks(void) throw(); 8036: 8036: 8036: struct _Words 8036: { 8036: void* _M_pword; 8036: long _M_iword; 8036: _Words() : _M_pword(0), _M_iword(0) { } 8036: }; 8036: 8036: 8036: _Words _M_word_zero; 8036: 8036: 8036: 8036: enum { _S_local_word_size = 8 }; 8036: _Words _M_local_word[_S_local_word_size]; 8036: 8036: 8036: int _M_word_size; 8036: _Words* _M_word; 8036: 8036: _Words& 8036: _M_grow_words(int __index, bool __iword); 8036: 8036: 8036: locale _M_ios_locale; 8036: 8036: void 8036: _M_init() throw(); 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: class Init 8036: { 8036: friend class ios_base; 8036: public: 8036: Init(); 8036: ~Init(); 8036: 8036: private: 8036: static _Atomic_word _S_refcount; 8036: static bool _S_synced_with_stdio; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: fmtflags 8036: flags() const 8036: { return _M_flags; } 8036: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 8036: fmtflags 8036: flags(fmtflags __fmtfl) 8036: { 8036: fmtflags __old = _M_flags; 8036: _M_flags = __fmtfl; 8036: return __old; 8036: } 8036: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 8036: fmtflags 8036: setf(fmtflags __fmtfl) 8036: { 8036: fmtflags __old = _M_flags; 8036: _M_flags |= __fmtfl; 8036: return __old; 8036: } 8036: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 8036: fmtflags 8036: setf(fmtflags __fmtfl, fmtflags __mask) 8036: { 8036: fmtflags __old = _M_flags; 8036: _M_flags &= ~__mask; 8036: _M_flags |= (__fmtfl & __mask); 8036: return __old; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: unsetf(fmtflags __mask) 8036: { _M_flags &= ~__mask; } 8036: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 8036: streamsize 8036: precision() const 8036: { return _M_precision; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: streamsize 8036: precision(streamsize __prec) 8036: { 8036: streamsize __old = _M_precision; 8036: _M_precision = __prec; 8036: return __old; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: streamsize 8036: width() const 8036: { return _M_width; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: streamsize 8036: width(streamsize __wide) 8036: { 8036: streamsize __old = _M_width; 8036: _M_width = __wide; 8036: return __old; 8036: } 8036: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 8036: static bool 8036: sync_with_stdio(bool __sync = true); 8036: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 8036: locale 8036: imbue(const locale& __loc) throw(); 8036: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 8036: locale 8036: getloc() const 8036: { return _M_ios_locale; } 8036: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 8036: const locale& 8036: _M_getloc() const 8036: { return _M_ios_locale; } 8036: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 8036: static int 8036: xalloc() throw(); 8036: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 8036: long& 8036: iword(int __ix) 8036: { 8036: _Words& __word = (__ix < _M_word_size) 8036: ? _M_word[__ix] : _M_grow_words(__ix, true); 8036: return __word._M_iword; 8036: } 8036: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 8036: void*& 8036: pword(int __ix) 8036: { 8036: _Words& __word = (__ix < _M_word_size) 8036: ? _M_word[__ix] : _M_grow_words(__ix, false); 8036: return __word._M_pword; 8036: } 8036: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 8036: virtual ~ios_base(); 8036: 8036: protected: 8036: ios_base() throw (); 8036: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 8036: public: 8036: ios_base(const ios_base&) = delete; 8036: 8036: ios_base& 8036: operator=(const ios_base&) = delete; 8036: 8036: protected: 8036: void 8036: _M_move(ios_base&) noexcept; 8036: 8036: void 8036: _M_swap(ios_base& __rhs) noexcept; 8036: 8036: }; 8036: 8036: 8036: 8036: inline ios_base& 8036: boolalpha(ios_base& __base) 8036: { 8036: __base.setf(ios_base::boolalpha); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: noboolalpha(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::boolalpha); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: showbase(ios_base& __base) 8036: { 8036: __base.setf(ios_base::showbase); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: noshowbase(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::showbase); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: showpoint(ios_base& __base) 8036: { 8036: __base.setf(ios_base::showpoint); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: noshowpoint(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::showpoint); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: showpos(ios_base& __base) 8036: { 8036: __base.setf(ios_base::showpos); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: noshowpos(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::showpos); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: skipws(ios_base& __base) 8036: { 8036: __base.setf(ios_base::skipws); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: noskipws(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::skipws); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: uppercase(ios_base& __base) 8036: { 8036: __base.setf(ios_base::uppercase); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: nouppercase(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::uppercase); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: unitbuf(ios_base& __base) 8036: { 8036: __base.setf(ios_base::unitbuf); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: nounitbuf(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::unitbuf); 8036: return __base; 8036: } 8036: 8036: 8036: 8036: inline ios_base& 8036: internal(ios_base& __base) 8036: { 8036: __base.setf(ios_base::internal, ios_base::adjustfield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: left(ios_base& __base) 8036: { 8036: __base.setf(ios_base::left, ios_base::adjustfield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: right(ios_base& __base) 8036: { 8036: __base.setf(ios_base::right, ios_base::adjustfield); 8036: return __base; 8036: } 8036: 8036: 8036: 8036: inline ios_base& 8036: dec(ios_base& __base) 8036: { 8036: __base.setf(ios_base::dec, ios_base::basefield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: hex(ios_base& __base) 8036: { 8036: __base.setf(ios_base::hex, ios_base::basefield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: oct(ios_base& __base) 8036: { 8036: __base.setf(ios_base::oct, ios_base::basefield); 8036: return __base; 8036: } 8036: 8036: 8036: 8036: inline ios_base& 8036: fixed(ios_base& __base) 8036: { 8036: __base.setf(ios_base::fixed, ios_base::floatfield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: scientific(ios_base& __base) 8036: { 8036: __base.setf(ios_base::scientific, ios_base::floatfield); 8036: return __base; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: inline ios_base& 8036: hexfloat(ios_base& __base) 8036: { 8036: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 8036: return __base; 8036: } 8036: 8036: 8036: inline ios_base& 8036: defaultfloat(ios_base& __base) 8036: { 8036: __base.unsetf(ios_base::floatfield); 8036: return __base; 8036: } 8036: 8036: 8036: 8036: } 8036: # 43 "/usr/include/c++/8/ios" 2 3 8036: # 1 "/usr/include/c++/8/streambuf" 1 3 8036: # 36 "/usr/include/c++/8/streambuf" 3 8036: 8036: # 37 "/usr/include/c++/8/streambuf" 3 8036: # 45 "/usr/include/c++/8/streambuf" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 8036: basic_streambuf<_CharT, _Traits>*, bool&); 8036: # 121 "/usr/include/c++/8/streambuf" 3 8036: template 8036: class basic_streambuf 8036: { 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _Traits traits_type; 8036: typedef typename traits_type::int_type int_type; 8036: typedef typename traits_type::pos_type pos_type; 8036: typedef typename traits_type::off_type off_type; 8036: 8036: 8036: 8036: 8036: typedef basic_streambuf __streambuf_type; 8036: 8036: 8036: friend class basic_ios; 8036: friend class basic_istream; 8036: friend class basic_ostream; 8036: friend class istreambuf_iterator; 8036: friend class ostreambuf_iterator; 8036: 8036: friend streamsize 8036: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: _CharT2*>::__type 8036: __copy_move_a2(istreambuf_iterator<_CharT2>, 8036: istreambuf_iterator<_CharT2>, _CharT2*); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: istreambuf_iterator<_CharT2> >::__type 8036: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8036: const _CharT2&); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: void>::__type 8036: advance(istreambuf_iterator<_CharT2>&, _Distance); 8036: 8036: template 8036: friend basic_istream<_CharT2, _Traits2>& 8036: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 8036: 8036: template 8036: friend basic_istream<_CharT2, _Traits2>& 8036: operator>>(basic_istream<_CharT2, _Traits2>&, 8036: basic_string<_CharT2, _Traits2, _Alloc>&); 8036: 8036: template 8036: friend basic_istream<_CharT2, _Traits2>& 8036: getline(basic_istream<_CharT2, _Traits2>&, 8036: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: char_type* _M_in_beg; 8036: char_type* _M_in_cur; 8036: char_type* _M_in_end; 8036: char_type* _M_out_beg; 8036: char_type* _M_out_cur; 8036: char_type* _M_out_end; 8036: 8036: 8036: locale _M_buf_locale; 8036: 8036: public: 8036: 8036: virtual 8036: ~basic_streambuf() 8036: { } 8036: # 215 "/usr/include/c++/8/streambuf" 3 8036: locale 8036: pubimbue(const locale& __loc) 8036: { 8036: locale __tmp(this->getloc()); 8036: this->imbue(__loc); 8036: _M_buf_locale = __loc; 8036: return __tmp; 8036: } 8036: # 232 "/usr/include/c++/8/streambuf" 3 8036: locale 8036: getloc() const 8036: { return _M_buf_locale; } 8036: # 245 "/usr/include/c++/8/streambuf" 3 8036: basic_streambuf* 8036: pubsetbuf(char_type* __s, streamsize __n) 8036: { return this->setbuf(__s, __n); } 8036: # 257 "/usr/include/c++/8/streambuf" 3 8036: pos_type 8036: pubseekoff(off_type __off, ios_base::seekdir __way, 8036: ios_base::openmode __mode = ios_base::in | ios_base::out) 8036: { return this->seekoff(__off, __way, __mode); } 8036: # 269 "/usr/include/c++/8/streambuf" 3 8036: pos_type 8036: pubseekpos(pos_type __sp, 8036: ios_base::openmode __mode = ios_base::in | ios_base::out) 8036: { return this->seekpos(__sp, __mode); } 8036: 8036: 8036: 8036: 8036: int 8036: pubsync() { return this->sync(); } 8036: # 290 "/usr/include/c++/8/streambuf" 3 8036: streamsize 8036: in_avail() 8036: { 8036: const streamsize __ret = this->egptr() - this->gptr(); 8036: return __ret ? __ret : this->showmanyc(); 8036: } 8036: # 304 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: snextc() 8036: { 8036: int_type __ret = traits_type::eof(); 8036: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 8036: __ret), true)) 8036: __ret = this->sgetc(); 8036: return __ret; 8036: } 8036: # 322 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: sbumpc() 8036: { 8036: int_type __ret; 8036: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8036: { 8036: __ret = traits_type::to_int_type(*this->gptr()); 8036: this->gbump(1); 8036: } 8036: else 8036: __ret = this->uflow(); 8036: return __ret; 8036: } 8036: # 344 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: sgetc() 8036: { 8036: int_type __ret; 8036: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8036: __ret = traits_type::to_int_type(*this->gptr()); 8036: else 8036: __ret = this->underflow(); 8036: return __ret; 8036: } 8036: # 363 "/usr/include/c++/8/streambuf" 3 8036: streamsize 8036: sgetn(char_type* __s, streamsize __n) 8036: { return this->xsgetn(__s, __n); } 8036: # 378 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: sputbackc(char_type __c) 8036: { 8036: int_type __ret; 8036: const bool __testpos = this->eback() < this->gptr(); 8036: if (__builtin_expect(!__testpos || 8036: !traits_type::eq(__c, this->gptr()[-1]), false)) 8036: __ret = this->pbackfail(traits_type::to_int_type(__c)); 8036: else 8036: { 8036: this->gbump(-1); 8036: __ret = traits_type::to_int_type(*this->gptr()); 8036: } 8036: return __ret; 8036: } 8036: # 403 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: sungetc() 8036: { 8036: int_type __ret; 8036: if (__builtin_expect(this->eback() < this->gptr(), true)) 8036: { 8036: this->gbump(-1); 8036: __ret = traits_type::to_int_type(*this->gptr()); 8036: } 8036: else 8036: __ret = this->pbackfail(); 8036: return __ret; 8036: } 8036: # 430 "/usr/include/c++/8/streambuf" 3 8036: int_type 8036: sputc(char_type __c) 8036: { 8036: int_type __ret; 8036: if (__builtin_expect(this->pptr() < this->epptr(), true)) 8036: { 8036: *this->pptr() = __c; 8036: this->pbump(1); 8036: __ret = traits_type::to_int_type(__c); 8036: } 8036: else 8036: __ret = this->overflow(traits_type::to_int_type(__c)); 8036: return __ret; 8036: } 8036: # 456 "/usr/include/c++/8/streambuf" 3 8036: streamsize 8036: sputn(const char_type* __s, streamsize __n) 8036: { return this->xsputn(__s, __n); } 8036: 8036: protected: 8036: # 470 "/usr/include/c++/8/streambuf" 3 8036: basic_streambuf() 8036: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 8036: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 8036: _M_buf_locale(locale()) 8036: { } 8036: # 488 "/usr/include/c++/8/streambuf" 3 8036: char_type* 8036: eback() const { return _M_in_beg; } 8036: 8036: char_type* 8036: gptr() const { return _M_in_cur; } 8036: 8036: char_type* 8036: egptr() const { return _M_in_end; } 8036: # 504 "/usr/include/c++/8/streambuf" 3 8036: void 8036: gbump(int __n) { _M_in_cur += __n; } 8036: # 515 "/usr/include/c++/8/streambuf" 3 8036: void 8036: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 8036: { 8036: _M_in_beg = __gbeg; 8036: _M_in_cur = __gnext; 8036: _M_in_end = __gend; 8036: } 8036: # 535 "/usr/include/c++/8/streambuf" 3 8036: char_type* 8036: pbase() const { return _M_out_beg; } 8036: 8036: char_type* 8036: pptr() const { return _M_out_cur; } 8036: 8036: char_type* 8036: epptr() const { return _M_out_end; } 8036: # 551 "/usr/include/c++/8/streambuf" 3 8036: void 8036: pbump(int __n) { _M_out_cur += __n; } 8036: # 561 "/usr/include/c++/8/streambuf" 3 8036: void 8036: setp(char_type* __pbeg, char_type* __pend) 8036: { 8036: _M_out_beg = _M_out_cur = __pbeg; 8036: _M_out_end = __pend; 8036: } 8036: # 582 "/usr/include/c++/8/streambuf" 3 8036: virtual void 8036: imbue(const locale& __loc __attribute__ ((__unused__))) 8036: { } 8036: # 597 "/usr/include/c++/8/streambuf" 3 8036: virtual basic_streambuf* 8036: setbuf(char_type*, streamsize) 8036: { return this; } 8036: # 608 "/usr/include/c++/8/streambuf" 3 8036: virtual pos_type 8036: seekoff(off_type, ios_base::seekdir, 8036: ios_base::openmode = ios_base::in | ios_base::out) 8036: { return pos_type(off_type(-1)); } 8036: # 620 "/usr/include/c++/8/streambuf" 3 8036: virtual pos_type 8036: seekpos(pos_type, 8036: ios_base::openmode = ios_base::in | ios_base::out) 8036: { return pos_type(off_type(-1)); } 8036: # 633 "/usr/include/c++/8/streambuf" 3 8036: virtual int 8036: sync() { return 0; } 8036: # 655 "/usr/include/c++/8/streambuf" 3 8036: virtual streamsize 8036: showmanyc() { return 0; } 8036: # 671 "/usr/include/c++/8/streambuf" 3 8036: virtual streamsize 8036: xsgetn(char_type* __s, streamsize __n); 8036: # 693 "/usr/include/c++/8/streambuf" 3 8036: virtual int_type 8036: underflow() 8036: { return traits_type::eof(); } 8036: # 706 "/usr/include/c++/8/streambuf" 3 8036: virtual int_type 8036: uflow() 8036: { 8036: int_type __ret = traits_type::eof(); 8036: const bool __testeof = traits_type::eq_int_type(this->underflow(), 8036: __ret); 8036: if (!__testeof) 8036: { 8036: __ret = traits_type::to_int_type(*this->gptr()); 8036: this->gbump(1); 8036: } 8036: return __ret; 8036: } 8036: # 730 "/usr/include/c++/8/streambuf" 3 8036: virtual int_type 8036: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8036: { return traits_type::eof(); } 8036: # 748 "/usr/include/c++/8/streambuf" 3 8036: virtual streamsize 8036: xsputn(const char_type* __s, streamsize __n); 8036: # 774 "/usr/include/c++/8/streambuf" 3 8036: virtual int_type 8036: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8036: { return traits_type::eof(); } 8036: 8036: 8036: 8036: public: 8036: # 790 "/usr/include/c++/8/streambuf" 3 8036: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 8036: 8036: void 8036: stossc() 8036: { 8036: if (this->gptr() < this->egptr()) 8036: this->gbump(1); 8036: else 8036: this->uflow(); 8036: } 8036: 8036: 8036: 8036: void 8036: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 8036: 8036: void 8036: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 8036: 8036: 8036: 8036: 8036: protected: 8036: 8036: basic_streambuf(const basic_streambuf&); 8036: 8036: basic_streambuf& 8036: operator=(const basic_streambuf&); 8036: 8036: 8036: void 8036: swap(basic_streambuf& __sb) 8036: { 8036: std::swap(_M_in_beg, __sb._M_in_beg); 8036: std::swap(_M_in_cur, __sb._M_in_cur); 8036: std::swap(_M_in_end, __sb._M_in_end); 8036: std::swap(_M_out_beg, __sb._M_out_beg); 8036: std::swap(_M_out_cur, __sb._M_out_cur); 8036: std::swap(_M_out_end, __sb._M_out_end); 8036: std::swap(_M_buf_locale, __sb._M_buf_locale); 8036: } 8036: 8036: }; 8036: 8036: 8036: template 8036: std::basic_streambuf<_CharT, _Traits>:: 8036: basic_streambuf(const basic_streambuf&) = default; 8036: 8036: template 8036: std::basic_streambuf<_CharT, _Traits>& 8036: std::basic_streambuf<_CharT, _Traits>:: 8036: operator=(const basic_streambuf&) = default; 8036: 8036: 8036: 8036: template<> 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf* __sbin, 8036: basic_streambuf* __sbout, bool& __ineof); 8036: 8036: template<> 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf* __sbin, 8036: basic_streambuf* __sbout, bool& __ineof); 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 8036: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: streamsize 8036: basic_streambuf<_CharT, _Traits>:: 8036: xsgetn(char_type* __s, streamsize __n) 8036: { 8036: streamsize __ret = 0; 8036: while (__ret < __n) 8036: { 8036: const streamsize __buf_len = this->egptr() - this->gptr(); 8036: if (__buf_len) 8036: { 8036: const streamsize __remaining = __n - __ret; 8036: const streamsize __len = std::min(__buf_len, __remaining); 8036: traits_type::copy(__s, this->gptr(), __len); 8036: __ret += __len; 8036: __s += __len; 8036: this->__safe_gbump(__len); 8036: } 8036: 8036: if (__ret < __n) 8036: { 8036: const int_type __c = this->uflow(); 8036: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8036: { 8036: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 8036: ++__ret; 8036: } 8036: else 8036: break; 8036: } 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: streamsize 8036: basic_streambuf<_CharT, _Traits>:: 8036: xsputn(const char_type* __s, streamsize __n) 8036: { 8036: streamsize __ret = 0; 8036: while (__ret < __n) 8036: { 8036: const streamsize __buf_len = this->epptr() - this->pptr(); 8036: if (__buf_len) 8036: { 8036: const streamsize __remaining = __n - __ret; 8036: const streamsize __len = std::min(__buf_len, __remaining); 8036: traits_type::copy(this->pptr(), __s, __len); 8036: __ret += __len; 8036: __s += __len; 8036: this->__safe_pbump(__len); 8036: } 8036: 8036: if (__ret < __n) 8036: { 8036: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 8036: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8036: { 8036: ++__ret; 8036: ++__s; 8036: } 8036: else 8036: break; 8036: } 8036: } 8036: return __ret; 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 8036: basic_streambuf<_CharT, _Traits>* __sbout, 8036: bool& __ineof) 8036: { 8036: streamsize __ret = 0; 8036: __ineof = true; 8036: typename _Traits::int_type __c = __sbin->sgetc(); 8036: while (!_Traits::eq_int_type(__c, _Traits::eof())) 8036: { 8036: __c = __sbout->sputc(_Traits::to_char_type(__c)); 8036: if (_Traits::eq_int_type(__c, _Traits::eof())) 8036: { 8036: __ineof = false; 8036: break; 8036: } 8036: ++__ret; 8036: __c = __sbin->snextc(); 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: inline streamsize 8036: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 8036: basic_streambuf<_CharT, _Traits>* __sbout) 8036: { 8036: bool __ineof; 8036: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 8036: } 8036: 8036: 8036: 8036: 8036: extern template class basic_streambuf; 8036: extern template 8036: streamsize 8036: __copy_streambufs(basic_streambuf*, 8036: basic_streambuf*); 8036: extern template 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf*, 8036: basic_streambuf*, bool&); 8036: 8036: 8036: extern template class basic_streambuf; 8036: extern template 8036: streamsize 8036: __copy_streambufs(basic_streambuf*, 8036: basic_streambuf*); 8036: extern template 8036: streamsize 8036: __copy_streambufs_eof(basic_streambuf*, 8036: basic_streambuf*, bool&); 8036: 8036: 8036: 8036: 8036: } 8036: # 863 "/usr/include/c++/8/streambuf" 2 3 8036: # 44 "/usr/include/c++/8/ios" 2 3 8036: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 8036: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: 8036: # 1 "/usr/include/c++/8/cwctype" 1 3 8036: # 39 "/usr/include/c++/8/cwctype" 3 8036: 8036: # 40 "/usr/include/c++/8/cwctype" 3 8036: # 50 "/usr/include/c++/8/cwctype" 3 8036: # 1 "/usr/include/wctype.h" 1 3 4 8036: # 38 "/usr/include/wctype.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wctype-wchar.h" 1 3 4 8036: # 38 "/usr/include/powerpc64le-linux-gnu/bits/wctype-wchar.h" 3 4 8036: typedef unsigned long int wctype_t; 8036: # 56 "/usr/include/powerpc64le-linux-gnu/bits/wctype-wchar.h" 3 4 8036: enum 8036: { 8036: __ISwupper = 0, 8036: __ISwlower = 1, 8036: __ISwalpha = 2, 8036: __ISwdigit = 3, 8036: __ISwxdigit = 4, 8036: __ISwspace = 5, 8036: __ISwprint = 6, 8036: __ISwgraph = 7, 8036: __ISwblank = 8, 8036: __ISwcntrl = 9, 8036: __ISwpunct = 10, 8036: __ISwalnum = 11, 8036: 8036: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 8036: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 8036: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 8036: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 8036: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 8036: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 8036: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 8036: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 8036: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 8036: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 8036: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 8036: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 8036: }; 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int iswalnum (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int iswalpha (wint_t __wc) throw (); 8036: 8036: 8036: extern int iswcntrl (wint_t __wc) throw (); 8036: 8036: 8036: 8036: extern int iswdigit (wint_t __wc) throw (); 8036: 8036: 8036: 8036: extern int iswgraph (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswlower (wint_t __wc) throw (); 8036: 8036: 8036: extern int iswprint (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswpunct (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswspace (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswupper (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswxdigit (wint_t __wc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int iswblank (wint_t __wc) throw (); 8036: # 155 "/usr/include/powerpc64le-linux-gnu/bits/wctype-wchar.h" 3 4 8036: extern wctype_t wctype (const char *__property) throw (); 8036: 8036: 8036: 8036: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t towlower (wint_t __wc) throw (); 8036: 8036: 8036: extern wint_t towupper (wint_t __wc) throw (); 8036: 8036: } 8036: # 39 "/usr/include/wctype.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: extern "C" { 8036: 8036: 8036: 8036: typedef const __int32_t *wctrans_t; 8036: 8036: 8036: 8036: extern wctrans_t wctrans (const char *__property) throw (); 8036: 8036: 8036: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: 8036: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: extern wctype_t wctype_l (const char *__property, locale_t __locale) 8036: throw (); 8036: 8036: 8036: 8036: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 8036: 8036: 8036: 8036: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 8036: throw (); 8036: 8036: 8036: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 8036: locale_t __locale) throw (); 8036: 8036: 8036: 8036: } 8036: # 51 "/usr/include/c++/8/cwctype" 2 3 8036: # 80 "/usr/include/c++/8/cwctype" 3 8036: namespace std 8036: { 8036: using ::wctrans_t; 8036: using ::wctype_t; 8036: using ::wint_t; 8036: 8036: using ::iswalnum; 8036: using ::iswalpha; 8036: 8036: using ::iswblank; 8036: 8036: using ::iswcntrl; 8036: using ::iswctype; 8036: using ::iswdigit; 8036: using ::iswgraph; 8036: using ::iswlower; 8036: using ::iswprint; 8036: using ::iswpunct; 8036: using ::iswspace; 8036: using ::iswupper; 8036: using ::iswxdigit; 8036: using ::towctrans; 8036: using ::towlower; 8036: using ::towupper; 8036: using ::wctrans; 8036: using ::wctype; 8036: } 8036: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: # 1 "/usr/include/c++/8/cctype" 1 3 8036: # 39 "/usr/include/c++/8/cctype" 3 8036: 8036: # 40 "/usr/include/c++/8/cctype" 3 8036: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/ctype_base.h" 1 3 8036: # 36 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/ctype_base.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: struct ctype_base 8036: { 8036: 8036: typedef const int* __to_type; 8036: 8036: 8036: 8036: typedef unsigned short mask; 8036: static const mask upper = _ISupper; 8036: static const mask lower = _ISlower; 8036: static const mask alpha = _ISalpha; 8036: static const mask digit = _ISdigit; 8036: static const mask xdigit = _ISxdigit; 8036: static const mask space = _ISspace; 8036: static const mask print = _ISprint; 8036: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 8036: static const mask cntrl = _IScntrl; 8036: static const mask punct = _ISpunct; 8036: static const mask alnum = _ISalpha | _ISdigit; 8036: 8036: static const mask blank = _ISblank; 8036: 8036: }; 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8036: template 8036: class istreambuf_iterator 8036: : public iterator 8036: 8036: 8036: 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _Traits traits_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8036: typedef basic_istream<_CharT, _Traits> istream_type; 8036: 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: ostreambuf_iterator<_CharT2> >::__type 8036: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8036: ostreambuf_iterator<_CharT2>); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: _CharT2*>::__type 8036: __copy_move_a2(istreambuf_iterator<_CharT2>, 8036: istreambuf_iterator<_CharT2>, _CharT2*); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: istreambuf_iterator<_CharT2> >::__type 8036: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8036: const _CharT2&); 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: void>::__type 8036: advance(istreambuf_iterator<_CharT2>&, _Distance); 8036: 8036: private: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: mutable streambuf_type* _M_sbuf; 8036: int_type _M_c; 8036: 8036: public: 8036: 8036: constexpr istreambuf_iterator() noexcept 8036: : _M_sbuf(0), _M_c(traits_type::eof()) { } 8036: 8036: 8036: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 8036: 8036: ~istreambuf_iterator() = default; 8036: 8036: 8036: 8036: istreambuf_iterator(istream_type& __s) noexcept 8036: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 8036: 8036: 8036: istreambuf_iterator(streambuf_type* __s) noexcept 8036: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 8036: 8036: 8036: 8036: 8036: char_type 8036: operator*() const 8036: { 8036: int_type __c = _M_get(); 8036: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8036: return traits_type::to_char_type(__c); 8036: } 8036: 8036: 8036: istreambuf_iterator& 8036: operator++() 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: _M_sbuf->sbumpc(); 8036: _M_c = traits_type::eof(); 8036: return *this; 8036: } 8036: 8036: 8036: istreambuf_iterator 8036: operator++(int) 8036: { 8036: 8036: 8036: 8036: ; 8036: 8036: istreambuf_iterator __old = *this; 8036: __old._M_c = _M_sbuf->sbumpc(); 8036: _M_c = traits_type::eof(); 8036: return __old; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: equal(const istreambuf_iterator& __b) const 8036: { return _M_at_eof() == __b._M_at_eof(); } 8036: 8036: private: 8036: int_type 8036: _M_get() const 8036: { 8036: int_type __ret = _M_c; 8036: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 8036: _M_sbuf = 0; 8036: return __ret; 8036: } 8036: 8036: bool 8036: _M_at_eof() const 8036: { return _S_is_eof(_M_get()); } 8036: 8036: static bool 8036: _S_is_eof(int_type __c) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: return traits_type::eq_int_type(__c, __eof); 8036: } 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 8036: const istreambuf_iterator<_CharT, _Traits>& __b) 8036: { return __a.equal(__b); } 8036: 8036: template 8036: inline bool 8036: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 8036: const istreambuf_iterator<_CharT, _Traits>& __b) 8036: { return !__a.equal(__b); } 8036: 8036: 8036: template 8036: class ostreambuf_iterator 8036: : public iterator 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _Traits traits_type; 8036: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8036: typedef basic_ostream<_CharT, _Traits> ostream_type; 8036: 8036: 8036: template 8036: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8036: ostreambuf_iterator<_CharT2> >::__type 8036: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8036: ostreambuf_iterator<_CharT2>); 8036: 8036: private: 8036: streambuf_type* _M_sbuf; 8036: bool _M_failed; 8036: 8036: public: 8036: 8036: ostreambuf_iterator(ostream_type& __s) noexcept 8036: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 8036: 8036: 8036: ostreambuf_iterator(streambuf_type* __s) noexcept 8036: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 8036: 8036: 8036: ostreambuf_iterator& 8036: operator=(_CharT __c) 8036: { 8036: if (!_M_failed && 8036: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 8036: _M_failed = true; 8036: return *this; 8036: } 8036: 8036: 8036: ostreambuf_iterator& 8036: operator*() 8036: { return *this; } 8036: 8036: 8036: ostreambuf_iterator& 8036: operator++(int) 8036: { return *this; } 8036: 8036: 8036: ostreambuf_iterator& 8036: operator++() 8036: { return *this; } 8036: 8036: 8036: bool 8036: failed() const noexcept 8036: { return _M_failed; } 8036: 8036: ostreambuf_iterator& 8036: _M_put(const _CharT* __ws, streamsize __len) 8036: { 8036: if (__builtin_expect(!_M_failed, true) 8036: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 8036: false)) 8036: _M_failed = true; 8036: return *this; 8036: } 8036: }; 8036: 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: ostreambuf_iterator<_CharT> >::__type 8036: copy(istreambuf_iterator<_CharT> __first, 8036: istreambuf_iterator<_CharT> __last, 8036: ostreambuf_iterator<_CharT> __result) 8036: { 8036: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 8036: { 8036: bool __ineof; 8036: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 8036: if (!__ineof) 8036: __result._M_failed = true; 8036: } 8036: return __result; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: ostreambuf_iterator<_CharT> >::__type 8036: __copy_move_a2(_CharT* __first, _CharT* __last, 8036: ostreambuf_iterator<_CharT> __result) 8036: { 8036: const streamsize __num = __last - __first; 8036: if (__num > 0) 8036: __result._M_put(__first, __num); 8036: return __result; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: ostreambuf_iterator<_CharT> >::__type 8036: __copy_move_a2(const _CharT* __first, const _CharT* __last, 8036: ostreambuf_iterator<_CharT> __result) 8036: { 8036: const streamsize __num = __last - __first; 8036: if (__num > 0) 8036: __result._M_put(__first, __num); 8036: return __result; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: _CharT*>::__type 8036: __copy_move_a2(istreambuf_iterator<_CharT> __first, 8036: istreambuf_iterator<_CharT> __last, _CharT* __result) 8036: { 8036: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8036: typedef typename __is_iterator_type::traits_type traits_type; 8036: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8036: typedef typename traits_type::int_type int_type; 8036: 8036: if (__first._M_sbuf && !__last._M_sbuf) 8036: { 8036: streambuf_type* __sb = __first._M_sbuf; 8036: int_type __c = __sb->sgetc(); 8036: while (!traits_type::eq_int_type(__c, traits_type::eof())) 8036: { 8036: const streamsize __n = __sb->egptr() - __sb->gptr(); 8036: if (__n > 1) 8036: { 8036: traits_type::copy(__result, __sb->gptr(), __n); 8036: __sb->__safe_gbump(__n); 8036: __result += __n; 8036: __c = __sb->underflow(); 8036: } 8036: else 8036: { 8036: *__result++ = traits_type::to_char_type(__c); 8036: __c = __sb->snextc(); 8036: } 8036: } 8036: } 8036: return __result; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: istreambuf_iterator<_CharT> >::__type 8036: find(istreambuf_iterator<_CharT> __first, 8036: istreambuf_iterator<_CharT> __last, const _CharT& __val) 8036: { 8036: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8036: typedef typename __is_iterator_type::traits_type traits_type; 8036: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8036: typedef typename traits_type::int_type int_type; 8036: const int_type __eof = traits_type::eof(); 8036: 8036: if (__first._M_sbuf && !__last._M_sbuf) 8036: { 8036: const int_type __ival = traits_type::to_int_type(__val); 8036: streambuf_type* __sb = __first._M_sbuf; 8036: int_type __c = __sb->sgetc(); 8036: while (!traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __ival)) 8036: { 8036: streamsize __n = __sb->egptr() - __sb->gptr(); 8036: if (__n > 1) 8036: { 8036: const _CharT* __p = traits_type::find(__sb->gptr(), 8036: __n, __val); 8036: if (__p) 8036: __n = __p - __sb->gptr(); 8036: __sb->__safe_gbump(__n); 8036: __c = __sb->sgetc(); 8036: } 8036: else 8036: __c = __sb->snextc(); 8036: } 8036: 8036: __first._M_c = __eof; 8036: } 8036: 8036: return __first; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8036: void>::__type 8036: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 8036: { 8036: if (__n == 0) 8036: return; 8036: 8036: ; 8036: 8036: 8036: ; 8036: 8036: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8036: typedef typename __is_iterator_type::traits_type traits_type; 8036: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8036: typedef typename traits_type::int_type int_type; 8036: const int_type __eof = traits_type::eof(); 8036: 8036: streambuf_type* __sb = __i._M_sbuf; 8036: while (__n > 0) 8036: { 8036: streamsize __size = __sb->egptr() - __sb->gptr(); 8036: if (__size > __n) 8036: { 8036: __sb->__safe_gbump(__n); 8036: break; 8036: } 8036: 8036: __sb->__safe_gbump(__size); 8036: __n -= __size; 8036: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 8036: { 8036: 8036: 8036: ; 8036: break; 8036: } 8036: } 8036: 8036: __i._M_c = __eof; 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: void 8036: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 8036: const __c_locale&) throw(); 8036: 8036: 8036: template<> 8036: void 8036: __convert_to_v(const char*, float&, ios_base::iostate&, 8036: const __c_locale&) throw(); 8036: 8036: template<> 8036: void 8036: __convert_to_v(const char*, double&, ios_base::iostate&, 8036: const __c_locale&) throw(); 8036: 8036: template<> 8036: void 8036: __convert_to_v(const char*, long double&, ios_base::iostate&, 8036: const __c_locale&) throw(); 8036: 8036: 8036: 8036: template 8036: struct __pad 8036: { 8036: static void 8036: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 8036: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _CharT* 8036: __add_grouping(_CharT* __s, _CharT __sep, 8036: const char* __gbeg, size_t __gsize, 8036: const _CharT* __first, const _CharT* __last); 8036: 8036: 8036: 8036: 8036: template 8036: inline 8036: ostreambuf_iterator<_CharT> 8036: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 8036: { 8036: __s._M_put(__ws, __len); 8036: return __s; 8036: } 8036: 8036: 8036: template 8036: inline 8036: _OutIter 8036: __write(_OutIter __s, const _CharT* __ws, int __len) 8036: { 8036: for (int __j = 0; __j < __len; __j++, ++__s) 8036: *__s = __ws[__j]; 8036: return __s; 8036: } 8036: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: class __ctype_abstract_base : public locale::facet, public ctype_base 8036: { 8036: public: 8036: 8036: 8036: typedef _CharT char_type; 8036: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: bool 8036: is(mask __m, char_type __c) const 8036: { return this->do_is(__m, __c); } 8036: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 8036: { return this->do_is(__lo, __hi, __vec); } 8036: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 8036: { return this->do_scan_is(__m, __lo, __hi); } 8036: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 8036: { return this->do_scan_not(__m, __lo, __hi); } 8036: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: toupper(char_type __c) const 8036: { return this->do_toupper(__c); } 8036: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: toupper(char_type *__lo, const char_type* __hi) const 8036: { return this->do_toupper(__lo, __hi); } 8036: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: tolower(char_type __c) const 8036: { return this->do_tolower(__c); } 8036: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: tolower(char_type* __lo, const char_type* __hi) const 8036: { return this->do_tolower(__lo, __hi); } 8036: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: widen(char __c) const 8036: { return this->do_widen(__c); } 8036: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char* 8036: widen(const char* __lo, const char* __hi, char_type* __to) const 8036: { return this->do_widen(__lo, __hi, __to); } 8036: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char 8036: narrow(char_type __c, char __dfault) const 8036: { return this->do_narrow(__c, __dfault); } 8036: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault, char* __to) const 8036: { return this->do_narrow(__lo, __hi, __dfault, __to); } 8036: 8036: protected: 8036: explicit 8036: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 8036: 8036: virtual 8036: ~__ctype_abstract_base() { } 8036: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual bool 8036: do_is(mask __m, char_type __c) const = 0; 8036: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_is(const char_type* __lo, const char_type* __hi, 8036: mask* __vec) const = 0; 8036: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_scan_is(mask __m, const char_type* __lo, 8036: const char_type* __hi) const = 0; 8036: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_scan_not(mask __m, const char_type* __lo, 8036: const char_type* __hi) const = 0; 8036: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_toupper(char_type __c) const = 0; 8036: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 8036: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_tolower(char_type __c) const = 0; 8036: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 8036: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_widen(char __c) const = 0; 8036: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char* 8036: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 8036: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char 8036: do_narrow(char_type __c, char __dfault) const = 0; 8036: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault, char* __to) const = 0; 8036: }; 8036: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: class ctype : public __ctype_abstract_base<_CharT> 8036: { 8036: public: 8036: 8036: typedef _CharT char_type; 8036: typedef typename __ctype_abstract_base<_CharT>::mask mask; 8036: 8036: 8036: static locale::id id; 8036: 8036: explicit 8036: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 8036: 8036: protected: 8036: virtual 8036: ~ctype(); 8036: 8036: virtual bool 8036: do_is(mask __m, char_type __c) const; 8036: 8036: virtual const char_type* 8036: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8036: 8036: virtual const char_type* 8036: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8036: 8036: virtual const char_type* 8036: do_scan_not(mask __m, const char_type* __lo, 8036: const char_type* __hi) const; 8036: 8036: virtual char_type 8036: do_toupper(char_type __c) const; 8036: 8036: virtual const char_type* 8036: do_toupper(char_type* __lo, const char_type* __hi) const; 8036: 8036: virtual char_type 8036: do_tolower(char_type __c) const; 8036: 8036: virtual const char_type* 8036: do_tolower(char_type* __lo, const char_type* __hi) const; 8036: 8036: virtual char_type 8036: do_widen(char __c) const; 8036: 8036: virtual const char* 8036: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 8036: 8036: virtual char 8036: do_narrow(char_type, char __dfault) const; 8036: 8036: virtual const char_type* 8036: do_narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault, char* __to) const; 8036: }; 8036: 8036: template 8036: locale::id ctype<_CharT>::id; 8036: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template<> 8036: class ctype : public locale::facet, public ctype_base 8036: { 8036: public: 8036: 8036: 8036: typedef char char_type; 8036: 8036: protected: 8036: 8036: __c_locale _M_c_locale_ctype; 8036: bool _M_del; 8036: __to_type _M_toupper; 8036: __to_type _M_tolower; 8036: const mask* _M_table; 8036: mutable char _M_widen_ok; 8036: mutable char _M_widen[1 + static_cast(-1)]; 8036: mutable char _M_narrow[1 + static_cast(-1)]; 8036: mutable char _M_narrow_ok; 8036: 8036: 8036: public: 8036: 8036: static locale::id id; 8036: 8036: static const size_t table_size = 1 + static_cast(-1); 8036: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 8036: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 8036: size_t __refs = 0); 8036: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: inline bool 8036: is(mask __m, char __c) const; 8036: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: inline const char* 8036: is(const char* __lo, const char* __hi, mask* __vec) const; 8036: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: inline const char* 8036: scan_is(mask __m, const char* __lo, const char* __hi) const; 8036: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: inline const char* 8036: scan_not(mask __m, const char* __lo, const char* __hi) const; 8036: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: toupper(char_type __c) const 8036: { return this->do_toupper(__c); } 8036: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: toupper(char_type *__lo, const char_type* __hi) const 8036: { return this->do_toupper(__lo, __hi); } 8036: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: tolower(char_type __c) const 8036: { return this->do_tolower(__c); } 8036: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: tolower(char_type* __lo, const char_type* __hi) const 8036: { return this->do_tolower(__lo, __hi); } 8036: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: widen(char __c) const 8036: { 8036: if (_M_widen_ok) 8036: return _M_widen[static_cast(__c)]; 8036: this->_M_widen_init(); 8036: return this->do_widen(__c); 8036: } 8036: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char* 8036: widen(const char* __lo, const char* __hi, char_type* __to) const 8036: { 8036: if (_M_widen_ok == 1) 8036: { 8036: __builtin_memcpy(__to, __lo, __hi - __lo); 8036: return __hi; 8036: } 8036: if (!_M_widen_ok) 8036: _M_widen_init(); 8036: return this->do_widen(__lo, __hi, __to); 8036: } 8036: # 929 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char 8036: narrow(char_type __c, char __dfault) const 8036: { 8036: if (_M_narrow[static_cast(__c)]) 8036: return _M_narrow[static_cast(__c)]; 8036: const char __t = do_narrow(__c, __dfault); 8036: if (__t != __dfault) 8036: _M_narrow[static_cast(__c)] = __t; 8036: return __t; 8036: } 8036: # 962 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: const char_type* 8036: narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault, char* __to) const 8036: { 8036: if (__builtin_expect(_M_narrow_ok == 1, true)) 8036: { 8036: __builtin_memcpy(__to, __lo, __hi - __lo); 8036: return __hi; 8036: } 8036: if (!_M_narrow_ok) 8036: _M_narrow_init(); 8036: return this->do_narrow(__lo, __hi, __dfault, __to); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const mask* 8036: table() const throw() 8036: { return _M_table; } 8036: 8036: 8036: static const mask* 8036: classic_table() throw(); 8036: protected: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual 8036: ~ctype(); 8036: # 1011 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_toupper(char_type __c) const; 8036: # 1028 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_toupper(char_type* __lo, const char_type* __hi) const; 8036: # 1044 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_tolower(char_type __c) const; 8036: # 1061 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_tolower(char_type* __lo, const char_type* __hi) const; 8036: # 1081 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_widen(char __c) const 8036: { return __c; } 8036: # 1104 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char* 8036: do_widen(const char* __lo, const char* __hi, char_type* __to) const 8036: { 8036: __builtin_memcpy(__to, __lo, __hi - __lo); 8036: return __hi; 8036: } 8036: # 1130 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char 8036: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 8036: { return __c; } 8036: # 1156 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault __attribute__((__unused__)), char* __to) const 8036: { 8036: __builtin_memcpy(__to, __lo, __hi - __lo); 8036: return __hi; 8036: } 8036: 8036: private: 8036: void _M_narrow_init() const; 8036: void _M_widen_init() const; 8036: }; 8036: # 1181 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template<> 8036: class ctype : public __ctype_abstract_base 8036: { 8036: public: 8036: 8036: 8036: typedef wchar_t char_type; 8036: typedef wctype_t __wmask_type; 8036: 8036: protected: 8036: __c_locale _M_c_locale_ctype; 8036: 8036: 8036: bool _M_narrow_ok; 8036: char _M_narrow[128]; 8036: wint_t _M_widen[1 + static_cast(-1)]; 8036: 8036: 8036: mask _M_bit[16]; 8036: __wmask_type _M_wmask[16]; 8036: 8036: public: 8036: 8036: 8036: static locale::id id; 8036: # 1214 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: ctype(size_t __refs = 0); 8036: # 1225 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: ctype(__c_locale __cloc, size_t __refs = 0); 8036: 8036: protected: 8036: __wmask_type 8036: _M_convert_to_wmask(const mask __m) const throw(); 8036: 8036: 8036: virtual 8036: ~ctype(); 8036: # 1249 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual bool 8036: do_is(mask __m, char_type __c) const; 8036: # 1268 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8036: # 1286 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8036: # 1304 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_scan_not(mask __m, const char_type* __lo, 8036: const char_type* __hi) const; 8036: # 1321 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_toupper(char_type __c) const; 8036: # 1338 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_toupper(char_type* __lo, const char_type* __hi) const; 8036: # 1354 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_tolower(char_type __c) const; 8036: # 1371 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_tolower(char_type* __lo, const char_type* __hi) const; 8036: # 1391 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_widen(char __c) const; 8036: # 1413 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char* 8036: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 8036: # 1436 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char 8036: do_narrow(char_type __c, char __dfault) const; 8036: # 1462 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual const char_type* 8036: do_narrow(const char_type* __lo, const char_type* __hi, 8036: char __dfault, char* __to) const; 8036: 8036: 8036: void 8036: _M_initialize_ctype() throw(); 8036: }; 8036: 8036: 8036: 8036: template 8036: class ctype_byname : public ctype<_CharT> 8036: { 8036: public: 8036: typedef typename ctype<_CharT>::mask mask; 8036: 8036: explicit 8036: ctype_byname(const char* __s, size_t __refs = 0); 8036: 8036: 8036: explicit 8036: ctype_byname(const string& __s, size_t __refs = 0) 8036: : ctype_byname(__s.c_str(), __refs) { } 8036: 8036: 8036: protected: 8036: virtual 8036: ~ctype_byname() { } 8036: }; 8036: 8036: 8036: template<> 8036: class ctype_byname : public ctype 8036: { 8036: public: 8036: explicit 8036: ctype_byname(const char* __s, size_t __refs = 0); 8036: 8036: 8036: explicit 8036: ctype_byname(const string& __s, size_t __refs = 0); 8036: 8036: 8036: protected: 8036: virtual 8036: ~ctype_byname(); 8036: }; 8036: 8036: 8036: template<> 8036: class ctype_byname : public ctype 8036: { 8036: public: 8036: explicit 8036: ctype_byname(const char* __s, size_t __refs = 0); 8036: 8036: 8036: explicit 8036: ctype_byname(const string& __s, size_t __refs = 0); 8036: 8036: 8036: protected: 8036: virtual 8036: ~ctype_byname(); 8036: }; 8036: 8036: 8036: 8036: } 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/ctype_inline.h" 1 3 8036: # 37 "/usr/include/powerpc64le-linux-gnu/c++/8/bits/ctype_inline.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: bool 8036: ctype:: 8036: is(mask __m, char __c) const 8036: { return _M_table[static_cast(__c)] & __m; } 8036: 8036: const char* 8036: ctype:: 8036: is(const char* __low, const char* __high, mask* __vec) const 8036: { 8036: while (__low < __high) 8036: *__vec++ = _M_table[static_cast(*__low++)]; 8036: return __high; 8036: } 8036: 8036: const char* 8036: ctype:: 8036: scan_is(mask __m, const char* __low, const char* __high) const 8036: { 8036: while (__low < __high 8036: && !(_M_table[static_cast(*__low)] & __m)) 8036: ++__low; 8036: return __low; 8036: } 8036: 8036: const char* 8036: ctype:: 8036: scan_not(mask __m, const char* __low, const char* __high) const 8036: { 8036: while (__low < __high 8036: && (_M_table[static_cast(*__low)] & __m) != 0) 8036: ++__low; 8036: return __low; 8036: } 8036: 8036: 8036: } 8036: # 1535 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: class __num_base 8036: { 8036: public: 8036: 8036: 8036: enum 8036: { 8036: _S_ominus, 8036: _S_oplus, 8036: _S_ox, 8036: _S_oX, 8036: _S_odigits, 8036: _S_odigits_end = _S_odigits + 16, 8036: _S_oudigits = _S_odigits_end, 8036: _S_oudigits_end = _S_oudigits + 16, 8036: _S_oe = _S_odigits + 14, 8036: _S_oE = _S_oudigits + 14, 8036: _S_oend = _S_oudigits_end 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: static const char* _S_atoms_out; 8036: 8036: 8036: 8036: static const char* _S_atoms_in; 8036: 8036: enum 8036: { 8036: _S_iminus, 8036: _S_iplus, 8036: _S_ix, 8036: _S_iX, 8036: _S_izero, 8036: _S_ie = _S_izero + 14, 8036: _S_iE = _S_izero + 20, 8036: _S_iend = 26 8036: }; 8036: 8036: 8036: 8036: static void 8036: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 8036: }; 8036: 8036: template 8036: struct __numpunct_cache : public locale::facet 8036: { 8036: const char* _M_grouping; 8036: size_t _M_grouping_size; 8036: bool _M_use_grouping; 8036: const _CharT* _M_truename; 8036: size_t _M_truename_size; 8036: const _CharT* _M_falsename; 8036: size_t _M_falsename_size; 8036: _CharT _M_decimal_point; 8036: _CharT _M_thousands_sep; 8036: 8036: 8036: 8036: 8036: 8036: _CharT _M_atoms_out[__num_base::_S_oend]; 8036: 8036: 8036: 8036: 8036: 8036: _CharT _M_atoms_in[__num_base::_S_iend]; 8036: 8036: bool _M_allocated; 8036: 8036: __numpunct_cache(size_t __refs = 0) 8036: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 8036: _M_use_grouping(false), 8036: _M_truename(0), _M_truename_size(0), _M_falsename(0), 8036: _M_falsename_size(0), _M_decimal_point(_CharT()), 8036: _M_thousands_sep(_CharT()), _M_allocated(false) 8036: { } 8036: 8036: ~__numpunct_cache(); 8036: 8036: void 8036: _M_cache(const locale& __loc); 8036: 8036: private: 8036: __numpunct_cache& 8036: operator=(const __numpunct_cache&); 8036: 8036: explicit 8036: __numpunct_cache(const __numpunct_cache&); 8036: }; 8036: 8036: template 8036: __numpunct_cache<_CharT>::~__numpunct_cache() 8036: { 8036: if (_M_allocated) 8036: { 8036: delete [] _M_grouping; 8036: delete [] _M_truename; 8036: delete [] _M_falsename; 8036: } 8036: } 8036: 8036: namespace __cxx11 { 8036: # 1665 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: class numpunct : public locale::facet 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef basic_string<_CharT> string_type; 8036: 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: 8036: protected: 8036: __cache_type* _M_data; 8036: 8036: public: 8036: 8036: static locale::id id; 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: numpunct(size_t __refs = 0) 8036: : facet(__refs), _M_data(0) 8036: { _M_initialize_numpunct(); } 8036: # 1703 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: numpunct(__cache_type* __cache, size_t __refs = 0) 8036: : facet(__refs), _M_data(__cache) 8036: { _M_initialize_numpunct(); } 8036: # 1717 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: numpunct(__c_locale __cloc, size_t __refs = 0) 8036: : facet(__refs), _M_data(0) 8036: { _M_initialize_numpunct(__cloc); } 8036: # 1731 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: decimal_point() const 8036: { return this->do_decimal_point(); } 8036: # 1744 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: char_type 8036: thousands_sep() const 8036: { return this->do_thousands_sep(); } 8036: # 1775 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: string 8036: grouping() const 8036: { return this->do_grouping(); } 8036: # 1788 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: string_type 8036: truename() const 8036: { return this->do_truename(); } 8036: # 1801 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: string_type 8036: falsename() const 8036: { return this->do_falsename(); } 8036: 8036: protected: 8036: 8036: virtual 8036: ~numpunct(); 8036: # 1818 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_decimal_point() const 8036: { return _M_data->_M_decimal_point; } 8036: # 1830 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual char_type 8036: do_thousands_sep() const 8036: { return _M_data->_M_thousands_sep; } 8036: # 1843 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual string 8036: do_grouping() const 8036: { return _M_data->_M_grouping; } 8036: # 1856 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual string_type 8036: do_truename() const 8036: { return _M_data->_M_truename; } 8036: # 1869 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual string_type 8036: do_falsename() const 8036: { return _M_data->_M_falsename; } 8036: 8036: 8036: void 8036: _M_initialize_numpunct(__c_locale __cloc = 0); 8036: }; 8036: 8036: template 8036: locale::id numpunct<_CharT>::id; 8036: 8036: template<> 8036: numpunct::~numpunct(); 8036: 8036: template<> 8036: void 8036: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8036: 8036: 8036: template<> 8036: numpunct::~numpunct(); 8036: 8036: template<> 8036: void 8036: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8036: 8036: 8036: 8036: template 8036: class numpunct_byname : public numpunct<_CharT> 8036: { 8036: public: 8036: typedef _CharT char_type; 8036: typedef basic_string<_CharT> string_type; 8036: 8036: explicit 8036: numpunct_byname(const char* __s, size_t __refs = 0) 8036: : numpunct<_CharT>(__refs) 8036: { 8036: if (__builtin_strcmp(__s, "C") != 0 8036: && __builtin_strcmp(__s, "POSIX") != 0) 8036: { 8036: __c_locale __tmp; 8036: this->_S_create_c_locale(__tmp, __s); 8036: this->_M_initialize_numpunct(__tmp); 8036: this->_S_destroy_c_locale(__tmp); 8036: } 8036: } 8036: 8036: 8036: explicit 8036: numpunct_byname(const string& __s, size_t __refs = 0) 8036: : numpunct_byname(__s.c_str(), __refs) { } 8036: 8036: 8036: protected: 8036: virtual 8036: ~numpunct_byname() { } 8036: }; 8036: 8036: } 8036: 8036: namespace __gnu_cxx_ldbl128 { 8036: # 1947 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: class num_get : public locale::facet 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _InIter iter_type; 8036: 8036: 8036: 8036: static locale::id id; 8036: # 1968 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: num_get(size_t __refs = 0) : facet(__refs) { } 8036: # 1994 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, bool& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: # 2031 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned short& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned int& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned long& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long long& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned long long& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: # 2091 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, float& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, double& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long double& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: # 2134 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: get(iter_type __in, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, void*& __v) const 8036: { return this->do_get(__in, __end, __io, __err, __v); } 8036: 8036: protected: 8036: 8036: virtual ~num_get() { } 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iter_type 8036: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 8036: string&) const; 8036: 8036: template 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iter_type 8036: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 8036: _ValueT&) const; 8036: 8036: template 8036: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 8036: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 8036: { 8036: int __ret = -1; 8036: if (__len <= 10) 8036: { 8036: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 8036: __ret = __c - _CharT2('0'); 8036: } 8036: else 8036: { 8036: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 8036: __ret = __c - _CharT2('0'); 8036: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 8036: __ret = 10 + (__c - _CharT2('a')); 8036: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 8036: __ret = 10 + (__c - _CharT2('A')); 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: typename __gnu_cxx::__enable_if::__value, 8036: int>::__type 8036: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 8036: { 8036: int __ret = -1; 8036: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 8036: if (__q) 8036: { 8036: __ret = __q - __zero; 8036: if (__ret > 15) 8036: __ret -= 6; 8036: } 8036: return __ret; 8036: } 8036: # 2207 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual iter_type 8036: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned short& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned int& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned long& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long long& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: virtual iter_type 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, unsigned long long& __v) const 8036: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8036: 8036: 8036: virtual iter_type 8036: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 8036: 8036: virtual iter_type 8036: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8036: double&) const; 8036: 8036: 8036: 8036: virtual iter_type 8036: __do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8036: double&) const; 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual iter_type 8036: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 8036: 8036: 8036: 8036: virtual iter_type 8036: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8036: long double&) const; 8036: 8036: 8036: }; 8036: 8036: template 8036: locale::id num_get<_CharT, _InIter>::id; 8036: # 2288 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: template 8036: class num_put : public locale::facet 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _OutIter iter_type; 8036: 8036: 8036: 8036: static locale::id id; 8036: # 2309 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: explicit 8036: num_put(size_t __refs = 0) : facet(__refs) { } 8036: # 2327 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: # 2369 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, 8036: unsigned long __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: 8036: 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, 8036: unsigned long long __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: # 2432 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, 8036: long double __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: # 2457 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: iter_type 8036: put(iter_type __s, ios_base& __io, char_type __fill, 8036: const void* __v) const 8036: { return this->do_put(__s, __io, __fill, __v); } 8036: 8036: protected: 8036: template 8036: iter_type 8036: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 8036: char __mod, _ValueT __v) const; 8036: 8036: void 8036: _M_group_float(const char* __grouping, size_t __grouping_size, 8036: char_type __sep, const char_type* __p, char_type* __new, 8036: char_type* __cs, int& __len) const; 8036: 8036: template 8036: iter_type 8036: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 8036: _ValueT __v) const; 8036: 8036: void 8036: _M_group_int(const char* __grouping, size_t __grouping_size, 8036: char_type __sep, ios_base& __io, char_type* __new, 8036: char_type* __cs, int& __len) const; 8036: 8036: void 8036: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 8036: char_type* __new, const char_type* __cs, int& __len) const; 8036: 8036: 8036: virtual 8036: ~num_put() { } 8036: # 2505 "/usr/include/c++/8/bits/locale_facets.h" 3 8036: virtual iter_type 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 8036: 8036: virtual iter_type 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8036: { return _M_insert_int(__s, __io, __fill, __v); } 8036: 8036: virtual iter_type 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, 8036: unsigned long __v) const 8036: { return _M_insert_int(__s, __io, __fill, __v); } 8036: 8036: 8036: virtual iter_type 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, 8036: long long __v) const 8036: { return _M_insert_int(__s, __io, __fill, __v); } 8036: 8036: virtual iter_type 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, 8036: unsigned long long __v) const 8036: { return _M_insert_int(__s, __io, __fill, __v); } 8036: 8036: 8036: virtual iter_type 8036: do_put(iter_type, ios_base&, char_type, double) const; 8036: 8036: 8036: 8036: virtual iter_type 8036: __do_put(iter_type, ios_base&, char_type, double) const; 8036: 8036: 8036: 8036: 8036: 8036: virtual iter_type 8036: do_put(iter_type, ios_base&, char_type, const void*) const; 8036: 8036: 8036: 8036: virtual iter_type 8036: do_put(iter_type, ios_base&, char_type, long double) const; 8036: 8036: 8036: }; 8036: 8036: template 8036: locale::id num_put<_CharT, _OutIter>::id; 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline bool 8036: isspace(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::space, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isprint(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::print, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: iscntrl(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isupper(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::upper, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: islower(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::lower, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isalpha(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isdigit(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::digit, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: ispunct(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::punct, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isxdigit(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isalnum(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 8036: 8036: 8036: template 8036: inline bool 8036: isgraph(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::graph, __c); } 8036: 8036: 8036: 8036: template 8036: inline bool 8036: isblank(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).is(ctype_base::blank, __c); } 8036: 8036: 8036: 8036: template 8036: inline _CharT 8036: toupper(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).toupper(__c); } 8036: 8036: 8036: template 8036: inline _CharT 8036: tolower(_CharT __c, const locale& __loc) 8036: { return use_facet >(__loc).tolower(__c); } 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 8036: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: struct __use_cache 8036: { 8036: const _Facet* 8036: operator() (const locale& __loc) const; 8036: }; 8036: 8036: 8036: template 8036: struct __use_cache<__numpunct_cache<_CharT> > 8036: { 8036: const __numpunct_cache<_CharT>* 8036: operator() (const locale& __loc) const 8036: { 8036: const size_t __i = numpunct<_CharT>::id._M_id(); 8036: const locale::facet** __caches = __loc._M_impl->_M_caches; 8036: if (!__caches[__i]) 8036: { 8036: __numpunct_cache<_CharT>* __tmp = 0; 8036: if (true) 8036: { 8036: __tmp = new __numpunct_cache<_CharT>; 8036: __tmp->_M_cache(__loc); 8036: } 8036: if (false) 8036: { 8036: delete __tmp; 8036: ; 8036: } 8036: __loc._M_impl->_M_install_cache(__tmp, __i); 8036: } 8036: return static_cast*>(__caches[__i]); 8036: } 8036: }; 8036: 8036: template 8036: void 8036: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 8036: { 8036: const numpunct<_CharT>& __np = use_facet >(__loc); 8036: 8036: char* __grouping = 0; 8036: _CharT* __truename = 0; 8036: _CharT* __falsename = 0; 8036: if (true) 8036: { 8036: const string& __g = __np.grouping(); 8036: _M_grouping_size = __g.size(); 8036: __grouping = new char[_M_grouping_size]; 8036: __g.copy(__grouping, _M_grouping_size); 8036: _M_use_grouping = (_M_grouping_size 8036: && static_cast(__grouping[0]) > 0 8036: && (__grouping[0] 8036: != __gnu_cxx::__numeric_traits::__max)); 8036: 8036: const basic_string<_CharT>& __tn = __np.truename(); 8036: _M_truename_size = __tn.size(); 8036: __truename = new _CharT[_M_truename_size]; 8036: __tn.copy(__truename, _M_truename_size); 8036: 8036: const basic_string<_CharT>& __fn = __np.falsename(); 8036: _M_falsename_size = __fn.size(); 8036: __falsename = new _CharT[_M_falsename_size]; 8036: __fn.copy(__falsename, _M_falsename_size); 8036: 8036: _M_decimal_point = __np.decimal_point(); 8036: _M_thousands_sep = __np.thousands_sep(); 8036: 8036: const ctype<_CharT>& __ct = use_facet >(__loc); 8036: __ct.widen(__num_base::_S_atoms_out, 8036: __num_base::_S_atoms_out 8036: + __num_base::_S_oend, _M_atoms_out); 8036: __ct.widen(__num_base::_S_atoms_in, 8036: __num_base::_S_atoms_in 8036: + __num_base::_S_iend, _M_atoms_in); 8036: 8036: _M_grouping = __grouping; 8036: _M_truename = __truename; 8036: _M_falsename = __falsename; 8036: _M_allocated = true; 8036: } 8036: if (false) 8036: { 8036: delete [] __grouping; 8036: delete [] __truename; 8036: delete [] __falsename; 8036: ; 8036: } 8036: } 8036: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: __attribute__ ((__pure__)) bool 8036: __verify_grouping(const char* __grouping, size_t __grouping_size, 8036: const string& __grouping_tmp) throw (); 8036: 8036: namespace __gnu_cxx_ldbl128 { 8036: 8036: template 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 8036: ios_base::iostate& __err, string& __xtrc) const 8036: { 8036: typedef char_traits<_CharT> __traits_type; 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: const _CharT* __lit = __lc->_M_atoms_in; 8036: char_type __c = char_type(); 8036: 8036: 8036: bool __testeof = __beg == __end; 8036: 8036: 8036: if (!__testeof) 8036: { 8036: __c = *__beg; 8036: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8036: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8036: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: && !(__c == __lc->_M_decimal_point)) 8036: { 8036: __xtrc += __plus ? '+' : '-'; 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: } 8036: 8036: 8036: bool __found_mantissa = false; 8036: int __sep_pos = 0; 8036: while (!__testeof) 8036: { 8036: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: || __c == __lc->_M_decimal_point) 8036: break; 8036: else if (__c == __lit[__num_base::_S_izero]) 8036: { 8036: if (!__found_mantissa) 8036: { 8036: __xtrc += '0'; 8036: __found_mantissa = true; 8036: } 8036: ++__sep_pos; 8036: 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: else 8036: break; 8036: } 8036: 8036: 8036: bool __found_dec = false; 8036: bool __found_sci = false; 8036: string __found_grouping; 8036: if (__lc->_M_use_grouping) 8036: __found_grouping.reserve(32); 8036: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8036: 8036: if (!__lc->_M_allocated) 8036: 8036: while (!__testeof) 8036: { 8036: const int __digit = _M_find(__lit_zero, 10, __c); 8036: if (__digit != -1) 8036: { 8036: __xtrc += '0' + __digit; 8036: __found_mantissa = true; 8036: } 8036: else if (__c == __lc->_M_decimal_point 8036: && !__found_dec && !__found_sci) 8036: { 8036: __xtrc += '.'; 8036: __found_dec = true; 8036: } 8036: else if ((__c == __lit[__num_base::_S_ie] 8036: || __c == __lit[__num_base::_S_iE]) 8036: && !__found_sci && __found_mantissa) 8036: { 8036: 8036: __xtrc += 'e'; 8036: __found_sci = true; 8036: 8036: 8036: if (++__beg != __end) 8036: { 8036: __c = *__beg; 8036: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8036: if (__plus || __c == __lit[__num_base::_S_iminus]) 8036: __xtrc += __plus ? '+' : '-'; 8036: else 8036: continue; 8036: } 8036: else 8036: { 8036: __testeof = true; 8036: break; 8036: } 8036: } 8036: else 8036: break; 8036: 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: else 8036: while (!__testeof) 8036: { 8036: 8036: 8036: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: { 8036: if (!__found_dec && !__found_sci) 8036: { 8036: 8036: 8036: if (__sep_pos) 8036: { 8036: __found_grouping += static_cast(__sep_pos); 8036: __sep_pos = 0; 8036: } 8036: else 8036: { 8036: 8036: 8036: __xtrc.clear(); 8036: break; 8036: } 8036: } 8036: else 8036: break; 8036: } 8036: else if (__c == __lc->_M_decimal_point) 8036: { 8036: if (!__found_dec && !__found_sci) 8036: { 8036: 8036: 8036: 8036: if (__found_grouping.size()) 8036: __found_grouping += static_cast(__sep_pos); 8036: __xtrc += '.'; 8036: __found_dec = true; 8036: } 8036: else 8036: break; 8036: } 8036: else 8036: { 8036: const char_type* __q = 8036: __traits_type::find(__lit_zero, 10, __c); 8036: if (__q) 8036: { 8036: __xtrc += '0' + (__q - __lit_zero); 8036: __found_mantissa = true; 8036: ++__sep_pos; 8036: } 8036: else if ((__c == __lit[__num_base::_S_ie] 8036: || __c == __lit[__num_base::_S_iE]) 8036: && !__found_sci && __found_mantissa) 8036: { 8036: 8036: if (__found_grouping.size() && !__found_dec) 8036: __found_grouping += static_cast(__sep_pos); 8036: __xtrc += 'e'; 8036: __found_sci = true; 8036: 8036: 8036: if (++__beg != __end) 8036: { 8036: __c = *__beg; 8036: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8036: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8036: && !(__lc->_M_use_grouping 8036: && __c == __lc->_M_thousands_sep) 8036: && !(__c == __lc->_M_decimal_point)) 8036: __xtrc += __plus ? '+' : '-'; 8036: else 8036: continue; 8036: } 8036: else 8036: { 8036: __testeof = true; 8036: break; 8036: } 8036: } 8036: else 8036: break; 8036: } 8036: 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: 8036: 8036: 8036: if (__found_grouping.size()) 8036: { 8036: 8036: if (!__found_dec && !__found_sci) 8036: __found_grouping += static_cast(__sep_pos); 8036: 8036: if (!std::__verify_grouping(__lc->_M_grouping, 8036: __lc->_M_grouping_size, 8036: __found_grouping)) 8036: __err = ios_base::failbit; 8036: } 8036: 8036: return __beg; 8036: } 8036: 8036: template 8036: template 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 8036: ios_base::iostate& __err, _ValueT& __v) const 8036: { 8036: typedef char_traits<_CharT> __traits_type; 8036: using __gnu_cxx::__add_unsigned; 8036: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: const _CharT* __lit = __lc->_M_atoms_in; 8036: char_type __c = char_type(); 8036: 8036: 8036: const ios_base::fmtflags __basefield = __io.flags() 8036: & ios_base::basefield; 8036: const bool __oct = __basefield == ios_base::oct; 8036: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 8036: 8036: 8036: bool __testeof = __beg == __end; 8036: 8036: 8036: bool __negative = false; 8036: if (!__testeof) 8036: { 8036: __c = *__beg; 8036: __negative = __c == __lit[__num_base::_S_iminus]; 8036: if ((__negative || __c == __lit[__num_base::_S_iplus]) 8036: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: && !(__c == __lc->_M_decimal_point)) 8036: { 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: } 8036: 8036: 8036: 8036: bool __found_zero = false; 8036: int __sep_pos = 0; 8036: while (!__testeof) 8036: { 8036: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: || __c == __lc->_M_decimal_point) 8036: break; 8036: else if (__c == __lit[__num_base::_S_izero] 8036: && (!__found_zero || __base == 10)) 8036: { 8036: __found_zero = true; 8036: ++__sep_pos; 8036: if (__basefield == 0) 8036: __base = 8; 8036: if (__base == 8) 8036: __sep_pos = 0; 8036: } 8036: else if (__found_zero 8036: && (__c == __lit[__num_base::_S_ix] 8036: || __c == __lit[__num_base::_S_iX])) 8036: { 8036: if (__basefield == 0) 8036: __base = 16; 8036: if (__base == 16) 8036: { 8036: __found_zero = false; 8036: __sep_pos = 0; 8036: } 8036: else 8036: break; 8036: } 8036: else 8036: break; 8036: 8036: if (++__beg != __end) 8036: { 8036: __c = *__beg; 8036: if (!__found_zero) 8036: break; 8036: } 8036: else 8036: __testeof = true; 8036: } 8036: 8036: 8036: 8036: const size_t __len = (__base == 16 ? __num_base::_S_iend 8036: - __num_base::_S_izero : __base); 8036: 8036: 8036: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 8036: string __found_grouping; 8036: if (__lc->_M_use_grouping) 8036: __found_grouping.reserve(32); 8036: bool __testfail = false; 8036: bool __testoverflow = false; 8036: const __unsigned_type __max = 8036: (__negative && __num_traits::__is_signed) 8036: ? -static_cast<__unsigned_type>(__num_traits::__min) 8036: : __num_traits::__max; 8036: const __unsigned_type __smax = __max / __base; 8036: __unsigned_type __result = 0; 8036: int __digit = 0; 8036: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8036: 8036: if (!__lc->_M_allocated) 8036: 8036: while (!__testeof) 8036: { 8036: __digit = _M_find(__lit_zero, __len, __c); 8036: if (__digit == -1) 8036: break; 8036: 8036: if (__result > __smax) 8036: __testoverflow = true; 8036: else 8036: { 8036: __result *= __base; 8036: __testoverflow |= __result > __max - __digit; 8036: __result += __digit; 8036: ++__sep_pos; 8036: } 8036: 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: else 8036: while (!__testeof) 8036: { 8036: 8036: 8036: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8036: { 8036: 8036: 8036: if (__sep_pos) 8036: { 8036: __found_grouping += static_cast(__sep_pos); 8036: __sep_pos = 0; 8036: } 8036: else 8036: { 8036: __testfail = true; 8036: break; 8036: } 8036: } 8036: else if (__c == __lc->_M_decimal_point) 8036: break; 8036: else 8036: { 8036: const char_type* __q = 8036: __traits_type::find(__lit_zero, __len, __c); 8036: if (!__q) 8036: break; 8036: 8036: __digit = __q - __lit_zero; 8036: if (__digit > 15) 8036: __digit -= 6; 8036: if (__result > __smax) 8036: __testoverflow = true; 8036: else 8036: { 8036: __result *= __base; 8036: __testoverflow |= __result > __max - __digit; 8036: __result += __digit; 8036: ++__sep_pos; 8036: } 8036: } 8036: 8036: if (++__beg != __end) 8036: __c = *__beg; 8036: else 8036: __testeof = true; 8036: } 8036: 8036: 8036: 8036: if (__found_grouping.size()) 8036: { 8036: 8036: __found_grouping += static_cast(__sep_pos); 8036: 8036: if (!std::__verify_grouping(__lc->_M_grouping, 8036: __lc->_M_grouping_size, 8036: __found_grouping)) 8036: __err = ios_base::failbit; 8036: } 8036: 8036: 8036: 8036: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 8036: || __testfail) 8036: { 8036: __v = 0; 8036: __err = ios_base::failbit; 8036: } 8036: else if (__testoverflow) 8036: { 8036: if (__negative && __num_traits::__is_signed) 8036: __v = __num_traits::__min; 8036: else 8036: __v = __num_traits::__max; 8036: __err = ios_base::failbit; 8036: } 8036: else 8036: __v = __negative ? -__result : __result; 8036: 8036: if (__testeof) 8036: __err |= ios_base::eofbit; 8036: return __beg; 8036: } 8036: 8036: 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, bool& __v) const 8036: { 8036: if (!(__io.flags() & ios_base::boolalpha)) 8036: { 8036: 8036: 8036: 8036: long __l = -1; 8036: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 8036: if (__l == 0 || __l == 1) 8036: __v = bool(__l); 8036: else 8036: { 8036: 8036: 8036: __v = true; 8036: __err = ios_base::failbit; 8036: if (__beg == __end) 8036: __err |= ios_base::eofbit; 8036: } 8036: } 8036: else 8036: { 8036: 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: 8036: bool __testf = true; 8036: bool __testt = true; 8036: bool __donef = __lc->_M_falsename_size == 0; 8036: bool __donet = __lc->_M_truename_size == 0; 8036: bool __testeof = false; 8036: size_t __n = 0; 8036: while (!__donef || !__donet) 8036: { 8036: if (__beg == __end) 8036: { 8036: __testeof = true; 8036: break; 8036: } 8036: 8036: const char_type __c = *__beg; 8036: 8036: if (!__donef) 8036: __testf = __c == __lc->_M_falsename[__n]; 8036: 8036: if (!__testf && __donet) 8036: break; 8036: 8036: if (!__donet) 8036: __testt = __c == __lc->_M_truename[__n]; 8036: 8036: if (!__testt && __donef) 8036: break; 8036: 8036: if (!__testt && !__testf) 8036: break; 8036: 8036: ++__n; 8036: ++__beg; 8036: 8036: __donef = !__testf || __n >= __lc->_M_falsename_size; 8036: __donet = !__testt || __n >= __lc->_M_truename_size; 8036: } 8036: if (__testf && __n == __lc->_M_falsename_size && __n) 8036: { 8036: __v = false; 8036: if (__testt && __n == __lc->_M_truename_size) 8036: __err = ios_base::failbit; 8036: else 8036: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8036: } 8036: else if (__testt && __n == __lc->_M_truename_size && __n) 8036: { 8036: __v = true; 8036: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8036: } 8036: else 8036: { 8036: 8036: 8036: __v = false; 8036: __err = ios_base::failbit; 8036: if (__testeof) 8036: __err |= ios_base::eofbit; 8036: } 8036: } 8036: return __beg; 8036: } 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, float& __v) const 8036: { 8036: string __xtrc; 8036: __xtrc.reserve(32); 8036: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8036: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8036: if (__beg == __end) 8036: __err |= ios_base::eofbit; 8036: return __beg; 8036: } 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, double& __v) const 8036: { 8036: string __xtrc; 8036: __xtrc.reserve(32); 8036: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8036: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8036: if (__beg == __end) 8036: __err |= ios_base::eofbit; 8036: return __beg; 8036: } 8036: 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: __do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, double& __v) const 8036: { 8036: string __xtrc; 8036: __xtrc.reserve(32); 8036: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8036: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8036: if (__beg == __end) 8036: __err |= ios_base::eofbit; 8036: return __beg; 8036: } 8036: 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, long double& __v) const 8036: { 8036: string __xtrc; 8036: __xtrc.reserve(32); 8036: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8036: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8036: if (__beg == __end) 8036: __err |= ios_base::eofbit; 8036: return __beg; 8036: } 8036: 8036: template 8036: _InIter 8036: num_get<_CharT, _InIter>:: 8036: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8036: ios_base::iostate& __err, void*& __v) const 8036: { 8036: 8036: typedef ios_base::fmtflags fmtflags; 8036: const fmtflags __fmt = __io.flags(); 8036: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 8036: 8036: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 8036: <= sizeof(unsigned long)), 8036: unsigned long, unsigned long long>::__type _UIntPtrType; 8036: 8036: _UIntPtrType __ul; 8036: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 8036: 8036: 8036: __io.flags(__fmt); 8036: 8036: __v = reinterpret_cast(__ul); 8036: return __beg; 8036: } 8036: 8036: 8036: 8036: template 8036: void 8036: num_put<_CharT, _OutIter>:: 8036: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 8036: _CharT* __new, const _CharT* __cs, int& __len) const 8036: { 8036: 8036: 8036: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 8036: __cs, __w, __len); 8036: __len = static_cast(__w); 8036: } 8036: 8036: } 8036: 8036: template 8036: int 8036: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 8036: ios_base::fmtflags __flags, bool __dec) 8036: { 8036: _CharT* __buf = __bufend; 8036: if (__builtin_expect(__dec, true)) 8036: { 8036: 8036: do 8036: { 8036: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 8036: __v /= 10; 8036: } 8036: while (__v != 0); 8036: } 8036: else if ((__flags & ios_base::basefield) == ios_base::oct) 8036: { 8036: 8036: do 8036: { 8036: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 8036: __v >>= 3; 8036: } 8036: while (__v != 0); 8036: } 8036: else 8036: { 8036: 8036: const bool __uppercase = __flags & ios_base::uppercase; 8036: const int __case_offset = __uppercase ? __num_base::_S_oudigits 8036: : __num_base::_S_odigits; 8036: do 8036: { 8036: *--__buf = __lit[(__v & 0xf) + __case_offset]; 8036: __v >>= 4; 8036: } 8036: while (__v != 0); 8036: } 8036: return __bufend - __buf; 8036: } 8036: 8036: namespace __gnu_cxx_ldbl128 { 8036: 8036: template 8036: void 8036: num_put<_CharT, _OutIter>:: 8036: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 8036: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 8036: { 8036: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 8036: __grouping_size, __cs, __cs + __len); 8036: __len = __p - __new; 8036: } 8036: 8036: template 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 8036: _ValueT __v) const 8036: { 8036: using __gnu_cxx::__add_unsigned; 8036: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: const _CharT* __lit = __lc->_M_atoms_out; 8036: const ios_base::fmtflags __flags = __io.flags(); 8036: 8036: 8036: const int __ilen = 5 * sizeof(_ValueT); 8036: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __ilen)); 8036: 8036: 8036: 8036: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 8036: const bool __dec = (__basefield != ios_base::oct 8036: && __basefield != ios_base::hex); 8036: const __unsigned_type __u = ((__v > 0 || !__dec) 8036: ? __unsigned_type(__v) 8036: : -__unsigned_type(__v)); 8036: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 8036: __cs += __ilen - __len; 8036: 8036: 8036: if (__lc->_M_use_grouping) 8036: { 8036: 8036: 8036: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * (__len + 1) 8036: * 2)); 8036: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 8036: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 8036: __cs = __cs2 + 2; 8036: } 8036: 8036: 8036: if (__builtin_expect(__dec, true)) 8036: { 8036: 8036: if (__v >= 0) 8036: { 8036: if (bool(__flags & ios_base::showpos) 8036: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 8036: *--__cs = __lit[__num_base::_S_oplus], ++__len; 8036: } 8036: else 8036: *--__cs = __lit[__num_base::_S_ominus], ++__len; 8036: } 8036: else if (bool(__flags & ios_base::showbase) && __v) 8036: { 8036: if (__basefield == ios_base::oct) 8036: *--__cs = __lit[__num_base::_S_odigits], ++__len; 8036: else 8036: { 8036: 8036: const bool __uppercase = __flags & ios_base::uppercase; 8036: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 8036: 8036: *--__cs = __lit[__num_base::_S_odigits]; 8036: __len += 2; 8036: } 8036: } 8036: 8036: 8036: const streamsize __w = __io.width(); 8036: if (__w > static_cast(__len)) 8036: { 8036: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __w)); 8036: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 8036: __cs = __cs3; 8036: } 8036: __io.width(0); 8036: 8036: 8036: 8036: return std::__write(__s, __cs, __len); 8036: } 8036: 8036: template 8036: void 8036: num_put<_CharT, _OutIter>:: 8036: _M_group_float(const char* __grouping, size_t __grouping_size, 8036: _CharT __sep, const _CharT* __p, _CharT* __new, 8036: _CharT* __cs, int& __len) const 8036: { 8036: 8036: 8036: 8036: const int __declen = __p ? __p - __cs : __len; 8036: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 8036: __grouping_size, 8036: __cs, __cs + __declen); 8036: 8036: 8036: int __newlen = __p2 - __new; 8036: if (__p) 8036: { 8036: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 8036: __newlen += __len - __declen; 8036: } 8036: __len = __newlen; 8036: } 8036: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: template 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 8036: _ValueT __v) const 8036: { 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: 8036: 8036: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 8036: 8036: const int __max_digits = 8036: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 8036: 8036: 8036: int __len; 8036: 8036: char __fbuf[16]; 8036: __num_base::_S_format_float(__io, __fbuf, __mod); 8036: 8036: 8036: 8036: const bool __use_prec = 8036: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 8036: 8036: 8036: 8036: int __cs_size = __max_digits * 3; 8036: char* __cs = static_cast(__builtin_alloca(__cs_size)); 8036: if (__use_prec) 8036: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8036: __fbuf, __prec, __v); 8036: else 8036: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8036: __fbuf, __v); 8036: 8036: 8036: if (__len >= __cs_size) 8036: { 8036: __cs_size = __len + 1; 8036: __cs = static_cast(__builtin_alloca(__cs_size)); 8036: if (__use_prec) 8036: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8036: __fbuf, __prec, __v); 8036: else 8036: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8036: __fbuf, __v); 8036: } 8036: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: const ctype<_CharT>& __ctype = use_facet >(__loc); 8036: 8036: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __len)); 8036: __ctype.widen(__cs, __cs + __len, __ws); 8036: 8036: 8036: _CharT* __wp = 0; 8036: const char* __p = char_traits::find(__cs, __len, '.'); 8036: if (__p) 8036: { 8036: __wp = __ws + (__p - __cs); 8036: *__wp = __lc->_M_decimal_point; 8036: } 8036: 8036: 8036: 8036: 8036: if (__lc->_M_use_grouping 8036: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 8036: && __cs[1] >= '0' && __cs[2] >= '0'))) 8036: { 8036: 8036: 8036: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __len * 2)); 8036: 8036: streamsize __off = 0; 8036: if (__cs[0] == '-' || __cs[0] == '+') 8036: { 8036: __off = 1; 8036: __ws2[0] = __ws[0]; 8036: __len -= 1; 8036: } 8036: 8036: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 8036: __lc->_M_thousands_sep, __wp, __ws2 + __off, 8036: __ws + __off, __len); 8036: __len += __off; 8036: 8036: __ws = __ws2; 8036: } 8036: 8036: 8036: const streamsize __w = __io.width(); 8036: if (__w > static_cast(__len)) 8036: { 8036: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __w)); 8036: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 8036: __ws = __ws3; 8036: } 8036: __io.width(0); 8036: 8036: 8036: 8036: return std::__write(__s, __ws, __len); 8036: } 8036: 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8036: { 8036: const ios_base::fmtflags __flags = __io.flags(); 8036: if ((__flags & ios_base::boolalpha) == 0) 8036: { 8036: const long __l = __v; 8036: __s = _M_insert_int(__s, __io, __fill, __l); 8036: } 8036: else 8036: { 8036: typedef __numpunct_cache<_CharT> __cache_type; 8036: __use_cache<__cache_type> __uc; 8036: const locale& __loc = __io._M_getloc(); 8036: const __cache_type* __lc = __uc(__loc); 8036: 8036: const _CharT* __name = __v ? __lc->_M_truename 8036: : __lc->_M_falsename; 8036: int __len = __v ? __lc->_M_truename_size 8036: : __lc->_M_falsename_size; 8036: 8036: const streamsize __w = __io.width(); 8036: if (__w > static_cast(__len)) 8036: { 8036: const streamsize __plen = __w - __len; 8036: _CharT* __ps 8036: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8036: * __plen)); 8036: 8036: char_traits<_CharT>::assign(__ps, __plen, __fill); 8036: __io.width(0); 8036: 8036: if ((__flags & ios_base::adjustfield) == ios_base::left) 8036: { 8036: __s = std::__write(__s, __name, __len); 8036: __s = std::__write(__s, __ps, __plen); 8036: } 8036: else 8036: { 8036: __s = std::__write(__s, __ps, __plen); 8036: __s = std::__write(__s, __name, __len); 8036: } 8036: return __s; 8036: } 8036: __io.width(0); 8036: __s = std::__write(__s, __name, __len); 8036: } 8036: return __s; 8036: } 8036: 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8036: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8036: 8036: 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: __do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8036: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8036: 8036: 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, 8036: long double __v) const 8036: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 8036: 8036: template 8036: _OutIter 8036: num_put<_CharT, _OutIter>:: 8036: do_put(iter_type __s, ios_base& __io, char_type __fill, 8036: const void* __v) const 8036: { 8036: const ios_base::fmtflags __flags = __io.flags(); 8036: const ios_base::fmtflags __fmt = ~(ios_base::basefield 8036: | ios_base::uppercase); 8036: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 8036: 8036: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 8036: <= sizeof(unsigned long)), 8036: unsigned long, unsigned long long>::__type _UIntPtrType; 8036: 8036: __s = _M_insert_int(__s, __io, __fill, 8036: reinterpret_cast<_UIntPtrType>(__v)); 8036: __io.flags(__flags); 8036: return __s; 8036: } 8036: 8036: } 8036: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8036: template 8036: void 8036: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 8036: _CharT* __news, const _CharT* __olds, 8036: streamsize __newlen, streamsize __oldlen) 8036: { 8036: const size_t __plen = static_cast(__newlen - __oldlen); 8036: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 8036: 8036: 8036: if (__adjust == ios_base::left) 8036: { 8036: _Traits::copy(__news, __olds, __oldlen); 8036: _Traits::assign(__news + __oldlen, __plen, __fill); 8036: return; 8036: } 8036: 8036: size_t __mod = 0; 8036: if (__adjust == ios_base::internal) 8036: { 8036: 8036: 8036: 8036: const locale& __loc = __io._M_getloc(); 8036: const ctype<_CharT>& __ctype = use_facet >(__loc); 8036: 8036: if (__ctype.widen('-') == __olds[0] 8036: || __ctype.widen('+') == __olds[0]) 8036: { 8036: __news[0] = __olds[0]; 8036: __mod = 1; 8036: ++__news; 8036: } 8036: else if (__ctype.widen('0') == __olds[0] 8036: && __oldlen > 1 8036: && (__ctype.widen('x') == __olds[1] 8036: || __ctype.widen('X') == __olds[1])) 8036: { 8036: __news[0] = __olds[0]; 8036: __news[1] = __olds[1]; 8036: __mod = 2; 8036: __news += 2; 8036: } 8036: 8036: } 8036: _Traits::assign(__news, __plen, __fill); 8036: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 8036: } 8036: 8036: template 8036: _CharT* 8036: __add_grouping(_CharT* __s, _CharT __sep, 8036: const char* __gbeg, size_t __gsize, 8036: const _CharT* __first, const _CharT* __last) 8036: { 8036: size_t __idx = 0; 8036: size_t __ctr = 0; 8036: 8036: while (__last - __first > __gbeg[__idx] 8036: && static_cast(__gbeg[__idx]) > 0 8036: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 8036: { 8036: __last -= __gbeg[__idx]; 8036: __idx < __gsize - 1 ? ++__idx : ++__ctr; 8036: } 8036: 8036: while (__first != __last) 8036: *__s++ = *__first++; 8036: 8036: while (__ctr--) 8036: { 8036: *__s++ = __sep; 8036: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8036: *__s++ = *__first++; 8036: } 8036: 8036: while (__idx--) 8036: { 8036: *__s++ = __sep; 8036: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8036: *__s++ = *__first++; 8036: } 8036: 8036: return __s; 8036: } 8036: 8036: 8036: 8036: 8036: extern template class __cxx11:: numpunct; 8036: extern template class __cxx11:: numpunct_byname; 8036: extern template class __gnu_cxx_ldbl128:: num_get; 8036: extern template class __gnu_cxx_ldbl128:: num_put; 8036: extern template class ctype_byname; 8036: 8036: extern template 8036: const ctype& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const numpunct& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const num_put& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const num_get& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: 8036: extern template class __cxx11:: numpunct; 8036: extern template class __cxx11:: numpunct_byname; 8036: extern template class __gnu_cxx_ldbl128:: num_get; 8036: extern template class __gnu_cxx_ldbl128:: num_put; 8036: extern template class ctype_byname; 8036: 8036: extern template 8036: const ctype& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const numpunct& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const num_put& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: const num_get& 8036: use_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: extern template 8036: bool 8036: has_facet >(const locale&); 8036: 8036: 8036: 8036: 8036: } 8036: # 2652 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8036: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: inline const _Facet& 8036: __check_facet(const _Facet* __f) 8036: { 8036: if (!__f) 8036: __throw_bad_cast(); 8036: return *__f; 8036: } 8036: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: template 8036: class basic_ios : public ios_base 8036: { 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef typename _Traits::pos_type pos_type; 8036: typedef typename _Traits::off_type off_type; 8036: typedef _Traits traits_type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef ctype<_CharT> __ctype_type; 8036: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8036: __num_put_type; 8036: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8036: __num_get_type; 8036: 8036: 8036: 8036: protected: 8036: basic_ostream<_CharT, _Traits>* _M_tie; 8036: mutable char_type _M_fill; 8036: mutable bool _M_fill_init; 8036: basic_streambuf<_CharT, _Traits>* _M_streambuf; 8036: 8036: 8036: const __ctype_type* _M_ctype; 8036: 8036: const __num_put_type* _M_num_put; 8036: 8036: const __num_get_type* _M_num_get; 8036: 8036: public: 8036: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: explicit operator bool() const 8036: { return !this->fail(); } 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: operator!() const 8036: { return this->fail(); } 8036: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: iostate 8036: rdstate() const 8036: { return _M_streambuf_state; } 8036: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: void 8036: clear(iostate __state = goodbit); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: setstate(iostate __state) 8036: { this->clear(this->rdstate() | __state); } 8036: 8036: 8036: 8036: 8036: void 8036: _M_setstate(iostate __state) 8036: { 8036: 8036: 8036: _M_streambuf_state |= __state; 8036: if (this->exceptions() & __state) 8036: ; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: good() const 8036: { return this->rdstate() == 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: eof() const 8036: { return (this->rdstate() & eofbit) != 0; } 8036: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: bool 8036: fail() const 8036: { return (this->rdstate() & (badbit | failbit)) != 0; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: bad() const 8036: { return (this->rdstate() & badbit) != 0; } 8036: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: iostate 8036: exceptions() const 8036: { return _M_exception; } 8036: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: void 8036: exceptions(iostate __except) 8036: { 8036: _M_exception = __except; 8036: this->clear(_M_streambuf_state); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 8036: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 8036: _M_ctype(0), _M_num_put(0), _M_num_get(0) 8036: { this->init(__sb); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual 8036: ~basic_ios() { } 8036: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: basic_ostream<_CharT, _Traits>* 8036: tie() const 8036: { return _M_tie; } 8036: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: basic_ostream<_CharT, _Traits>* 8036: tie(basic_ostream<_CharT, _Traits>* __tiestr) 8036: { 8036: basic_ostream<_CharT, _Traits>* __old = _M_tie; 8036: _M_tie = __tiestr; 8036: return __old; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_streambuf<_CharT, _Traits>* 8036: rdbuf() const 8036: { return _M_streambuf; } 8036: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: basic_streambuf<_CharT, _Traits>* 8036: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 8036: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: basic_ios& 8036: copyfmt(const basic_ios& __rhs); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: char_type 8036: fill() const 8036: { 8036: if (!_M_fill_init) 8036: { 8036: _M_fill = this->widen(' '); 8036: _M_fill_init = true; 8036: } 8036: return _M_fill; 8036: } 8036: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: char_type 8036: fill(char_type __ch) 8036: { 8036: char_type __old = this->fill(); 8036: _M_fill = __ch; 8036: return __old; 8036: } 8036: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: locale 8036: imbue(const locale& __loc); 8036: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: char 8036: narrow(char_type __c, char __dfault) const 8036: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 8036: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 8036: char_type 8036: widen(char __c) const 8036: { return __check_facet(_M_ctype).widen(__c); } 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: basic_ios() 8036: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 8036: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 8036: { } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: init(basic_streambuf<_CharT, _Traits>* __sb); 8036: 8036: 8036: basic_ios(const basic_ios&) = delete; 8036: basic_ios& operator=(const basic_ios&) = delete; 8036: 8036: void 8036: move(basic_ios& __rhs) 8036: { 8036: ios_base::_M_move(__rhs); 8036: _M_cache_locale(_M_ios_locale); 8036: this->tie(__rhs.tie(nullptr)); 8036: _M_fill = __rhs._M_fill; 8036: _M_fill_init = __rhs._M_fill_init; 8036: _M_streambuf = nullptr; 8036: } 8036: 8036: void 8036: move(basic_ios&& __rhs) 8036: { this->move(__rhs); } 8036: 8036: void 8036: swap(basic_ios& __rhs) noexcept 8036: { 8036: ios_base::_M_swap(__rhs); 8036: _M_cache_locale(_M_ios_locale); 8036: __rhs._M_cache_locale(__rhs._M_ios_locale); 8036: std::swap(_M_tie, __rhs._M_tie); 8036: std::swap(_M_fill, __rhs._M_fill); 8036: std::swap(_M_fill_init, __rhs._M_fill_init); 8036: } 8036: 8036: void 8036: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8036: { _M_streambuf = __sb; } 8036: 8036: 8036: void 8036: _M_cache_locale(const locale& __loc); 8036: }; 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 8036: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: void 8036: basic_ios<_CharT, _Traits>::clear(iostate __state) 8036: { 8036: if (this->rdbuf()) 8036: _M_streambuf_state = __state; 8036: else 8036: _M_streambuf_state = __state | badbit; 8036: if (this->exceptions() & this->rdstate()) 8036: __throw_ios_failure(("basic_ios::clear")); 8036: } 8036: 8036: template 8036: basic_streambuf<_CharT, _Traits>* 8036: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8036: { 8036: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 8036: _M_streambuf = __sb; 8036: this->clear(); 8036: return __old; 8036: } 8036: 8036: template 8036: basic_ios<_CharT, _Traits>& 8036: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 8036: { 8036: 8036: 8036: if (this != &__rhs) 8036: { 8036: 8036: 8036: 8036: 8036: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 8036: _M_local_word : new _Words[__rhs._M_word_size]; 8036: 8036: 8036: _Callback_list* __cb = __rhs._M_callbacks; 8036: if (__cb) 8036: __cb->_M_add_reference(); 8036: _M_call_callbacks(erase_event); 8036: if (_M_word != _M_local_word) 8036: { 8036: delete [] _M_word; 8036: _M_word = 0; 8036: } 8036: _M_dispose_callbacks(); 8036: 8036: 8036: _M_callbacks = __cb; 8036: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 8036: __words[__i] = __rhs._M_word[__i]; 8036: _M_word = __words; 8036: _M_word_size = __rhs._M_word_size; 8036: 8036: this->flags(__rhs.flags()); 8036: this->width(__rhs.width()); 8036: this->precision(__rhs.precision()); 8036: this->tie(__rhs.tie()); 8036: this->fill(__rhs.fill()); 8036: _M_ios_locale = __rhs.getloc(); 8036: _M_cache_locale(_M_ios_locale); 8036: 8036: _M_call_callbacks(copyfmt_event); 8036: 8036: 8036: this->exceptions(__rhs.exceptions()); 8036: } 8036: return *this; 8036: } 8036: 8036: 8036: template 8036: locale 8036: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 8036: { 8036: locale __old(this->getloc()); 8036: ios_base::imbue(__loc); 8036: _M_cache_locale(__loc); 8036: if (this->rdbuf() != 0) 8036: this->rdbuf()->pubimbue(__loc); 8036: return __old; 8036: } 8036: 8036: template 8036: void 8036: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 8036: { 8036: 8036: ios_base::_M_init(); 8036: 8036: 8036: _M_cache_locale(_M_ios_locale); 8036: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8036: _M_fill = _CharT(); 8036: _M_fill_init = false; 8036: 8036: _M_tie = 0; 8036: _M_exception = goodbit; 8036: _M_streambuf = __sb; 8036: _M_streambuf_state = __sb ? goodbit : badbit; 8036: } 8036: 8036: template 8036: void 8036: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 8036: { 8036: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 8036: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 8036: else 8036: _M_ctype = 0; 8036: 8036: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 8036: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 8036: else 8036: _M_num_put = 0; 8036: 8036: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 8036: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 8036: else 8036: _M_num_get = 0; 8036: } 8036: 8036: 8036: 8036: 8036: extern template class basic_ios; 8036: 8036: 8036: extern template class basic_ios; 8036: 8036: 8036: 8036: 8036: } 8036: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8036: # 45 "/usr/include/c++/8/ios" 2 3 8036: # 39 "/usr/include/c++/8/ostream" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 57 "/usr/include/c++/8/ostream" 3 8036: template 8036: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 8036: { 8036: public: 8036: 8036: typedef _CharT char_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef typename _Traits::pos_type pos_type; 8036: typedef typename _Traits::off_type off_type; 8036: typedef _Traits traits_type; 8036: 8036: 8036: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8036: typedef basic_ios<_CharT, _Traits> __ios_type; 8036: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8036: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8036: __num_put_type; 8036: typedef ctype<_CharT> __ctype_type; 8036: # 83 "/usr/include/c++/8/ostream" 3 8036: explicit 8036: basic_ostream(__streambuf_type* __sb) 8036: { this->init(__sb); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual 8036: ~basic_ostream() { } 8036: 8036: 8036: class sentry; 8036: friend class sentry; 8036: # 107 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 8036: { 8036: 8036: 8036: 8036: return __pf(*this); 8036: } 8036: 8036: __ostream_type& 8036: operator<<(__ios_type& (*__pf)(__ios_type&)) 8036: { 8036: 8036: 8036: 8036: __pf(*this); 8036: return *this; 8036: } 8036: 8036: __ostream_type& 8036: operator<<(ios_base& (*__pf) (ios_base&)) 8036: { 8036: 8036: 8036: 8036: __pf(*this); 8036: return *this; 8036: } 8036: # 165 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: operator<<(long __n) 8036: { return _M_insert(__n); } 8036: 8036: __ostream_type& 8036: operator<<(unsigned long __n) 8036: { return _M_insert(__n); } 8036: 8036: __ostream_type& 8036: operator<<(bool __n) 8036: { return _M_insert(__n); } 8036: 8036: __ostream_type& 8036: operator<<(short __n); 8036: 8036: __ostream_type& 8036: operator<<(unsigned short __n) 8036: { 8036: 8036: 8036: return _M_insert(static_cast(__n)); 8036: } 8036: 8036: __ostream_type& 8036: operator<<(int __n); 8036: 8036: __ostream_type& 8036: operator<<(unsigned int __n) 8036: { 8036: 8036: 8036: return _M_insert(static_cast(__n)); 8036: } 8036: 8036: 8036: __ostream_type& 8036: operator<<(long long __n) 8036: { return _M_insert(__n); } 8036: 8036: __ostream_type& 8036: operator<<(unsigned long long __n) 8036: { return _M_insert(__n); } 8036: # 219 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: operator<<(double __f) 8036: { return _M_insert(__f); } 8036: 8036: __ostream_type& 8036: operator<<(float __f) 8036: { 8036: 8036: 8036: return _M_insert(static_cast(__f)); 8036: } 8036: 8036: __ostream_type& 8036: operator<<(long double __f) 8036: { return _M_insert(__f); } 8036: # 244 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: operator<<(const void* __p) 8036: { return _M_insert(__p); } 8036: # 269 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: operator<<(__streambuf_type* __sb); 8036: # 302 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: put(char_type __c); 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: _M_write(const char_type* __s, streamsize __n) 8036: { 8036: const streamsize __put = this->rdbuf()->sputn(__s, __n); 8036: if (__put != __n) 8036: this->setstate(ios_base::badbit); 8036: } 8036: # 334 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: write(const char_type* __s, streamsize __n); 8036: # 347 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: flush(); 8036: # 357 "/usr/include/c++/8/ostream" 3 8036: pos_type 8036: tellp(); 8036: # 368 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: seekp(pos_type); 8036: # 380 "/usr/include/c++/8/ostream" 3 8036: __ostream_type& 8036: seekp(off_type, ios_base::seekdir); 8036: 8036: protected: 8036: basic_ostream() 8036: { this->init(0); } 8036: 8036: 8036: 8036: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 8036: 8036: basic_ostream(const basic_ostream&) = delete; 8036: 8036: basic_ostream(basic_ostream&& __rhs) 8036: : __ios_type() 8036: { __ios_type::move(__rhs); } 8036: 8036: 8036: 8036: basic_ostream& operator=(const basic_ostream&) = delete; 8036: 8036: basic_ostream& 8036: operator=(basic_ostream&& __rhs) 8036: { 8036: swap(__rhs); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(basic_ostream& __rhs) 8036: { __ios_type::swap(__rhs); } 8036: 8036: 8036: template 8036: __ostream_type& 8036: _M_insert(_ValueT __v); 8036: }; 8036: # 425 "/usr/include/c++/8/ostream" 3 8036: template 8036: class basic_ostream<_CharT, _Traits>::sentry 8036: { 8036: 8036: bool _M_ok; 8036: basic_ostream<_CharT, _Traits>& _M_os; 8036: 8036: public: 8036: # 444 "/usr/include/c++/8/ostream" 3 8036: explicit 8036: sentry(basic_ostream<_CharT, _Traits>& __os); 8036: # 454 "/usr/include/c++/8/ostream" 3 8036: ~sentry() 8036: { 8036: 8036: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 8036: { 8036: 8036: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 8036: _M_os.setstate(ios_base::badbit); 8036: } 8036: } 8036: # 473 "/usr/include/c++/8/ostream" 3 8036: explicit 8036: 8036: operator bool() const 8036: { return _M_ok; } 8036: }; 8036: # 495 "/usr/include/c++/8/ostream" 3 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 8036: { return __ostream_insert(__out, &__c, 1); } 8036: 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 8036: { return (__out << __out.widen(__c)); } 8036: 8036: 8036: template 8036: inline basic_ostream& 8036: operator<<(basic_ostream& __out, char __c) 8036: { return __ostream_insert(__out, &__c, 1); } 8036: 8036: 8036: template 8036: inline basic_ostream& 8036: operator<<(basic_ostream& __out, signed char __c) 8036: { return (__out << static_cast(__c)); } 8036: 8036: template 8036: inline basic_ostream& 8036: operator<<(basic_ostream& __out, unsigned char __c) 8036: { return (__out << static_cast(__c)); } 8036: # 537 "/usr/include/c++/8/ostream" 3 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 8036: { 8036: if (!__s) 8036: __out.setstate(ios_base::badbit); 8036: else 8036: __ostream_insert(__out, __s, 8036: static_cast(_Traits::length(__s))); 8036: return __out; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits> & 8036: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 8036: 8036: 8036: template 8036: inline basic_ostream& 8036: operator<<(basic_ostream& __out, const char* __s) 8036: { 8036: if (!__s) 8036: __out.setstate(ios_base::badbit); 8036: else 8036: __ostream_insert(__out, __s, 8036: static_cast(_Traits::length(__s))); 8036: return __out; 8036: } 8036: 8036: 8036: template 8036: inline basic_ostream& 8036: operator<<(basic_ostream& __out, const signed char* __s) 8036: { return (__out << reinterpret_cast(__s)); } 8036: 8036: template 8036: inline basic_ostream & 8036: operator<<(basic_ostream& __out, const unsigned char* __s) 8036: { return (__out << reinterpret_cast(__s)); } 8036: # 588 "/usr/include/c++/8/ostream" 3 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: endl(basic_ostream<_CharT, _Traits>& __os) 8036: { return flush(__os.put(__os.widen('\n'))); } 8036: # 600 "/usr/include/c++/8/ostream" 3 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: ends(basic_ostream<_CharT, _Traits>& __os) 8036: { return __os.put(_CharT()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline basic_ostream<_CharT, _Traits>& 8036: flush(basic_ostream<_CharT, _Traits>& __os) 8036: { return __os.flush(); } 8036: 8036: 8036: template 8036: basic_ostream<_Ch, _Up>& 8036: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 8036: 8036: template 8036: struct __is_convertible_to_basic_ostream_impl 8036: { 8036: using __ostream_type = void; 8036: }; 8036: 8036: template 8036: using __do_is_convertible_to_basic_ostream_impl = 8036: decltype(__is_convertible_to_basic_ostream_test 8036: (declval::type*>())); 8036: 8036: template 8036: struct __is_convertible_to_basic_ostream_impl 8036: <_Tp, 8036: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 8036: { 8036: using __ostream_type = 8036: __do_is_convertible_to_basic_ostream_impl<_Tp>; 8036: }; 8036: 8036: template 8036: struct __is_convertible_to_basic_ostream 8036: : __is_convertible_to_basic_ostream_impl<_Tp> 8036: { 8036: public: 8036: using type = __not_::__ostream_type>>; 8036: constexpr static bool value = type::value; 8036: }; 8036: 8036: template 8036: struct __is_insertable : false_type {}; 8036: 8036: template 8036: struct __is_insertable<_Ostream, _Tp, 8036: __void_t() 8036: << declval())>> 8036: : true_type {}; 8036: 8036: template 8036: using __rvalue_ostream_type = 8036: typename __is_convertible_to_basic_ostream< 8036: _Ostream>::__ostream_type; 8036: # 674 "/usr/include/c++/8/ostream" 3 8036: template 8036: inline 8036: typename enable_if<__and_<__not_>, 8036: __is_convertible_to_basic_ostream<_Ostream>, 8036: __is_insertable< 8036: __rvalue_ostream_type<_Ostream>, 8036: const _Tp&>>::value, 8036: __rvalue_ostream_type<_Ostream>>::type 8036: operator<<(_Ostream&& __os, const _Tp& __x) 8036: { 8036: __rvalue_ostream_type<_Ostream> __ret_os = __os; 8036: __ret_os << __x; 8036: return __ret_os; 8036: } 8036: 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 8036: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>::sentry:: 8036: sentry(basic_ostream<_CharT, _Traits>& __os) 8036: : _M_ok(false), _M_os(__os) 8036: { 8036: 8036: if (__os.tie() && __os.good()) 8036: __os.tie()->flush(); 8036: 8036: if (__os.good()) 8036: _M_ok = true; 8036: else 8036: __os.setstate(ios_base::failbit); 8036: } 8036: 8036: template 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: _M_insert(_ValueT __v) 8036: { 8036: sentry __cerb(*this); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const __num_put_type& __np = __check_facet(this->_M_num_put); 8036: if (__np.put(*this, *this, this->fill(), __v).failed()) 8036: __err |= ios_base::badbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: operator<<(short __n) 8036: { 8036: 8036: 8036: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8036: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8036: return _M_insert(static_cast(static_cast(__n))); 8036: else 8036: return _M_insert(static_cast(__n)); 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: operator<<(int __n) 8036: { 8036: 8036: 8036: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8036: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8036: return _M_insert(static_cast(static_cast(__n))); 8036: else 8036: return _M_insert(static_cast(__n)); 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: operator<<(__streambuf_type* __sbin) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this); 8036: if (__cerb && __sbin) 8036: { 8036: if (true) 8036: { 8036: if (!__copy_streambufs(__sbin, this->rdbuf())) 8036: __err |= ios_base::failbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::failbit); } 8036: } 8036: else if (!__sbin) 8036: __err |= ios_base::badbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: put(char_type __c) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: sentry __cerb(*this); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __put = this->rdbuf()->sputc(__c); 8036: if (traits_type::eq_int_type(__put, traits_type::eof())) 8036: __err |= ios_base::badbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: write(const _CharT* __s, streamsize __n) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: sentry __cerb(*this); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { _M_write(__s, __n); } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: flush() 8036: { 8036: 8036: 8036: 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 8036: __err |= ios_base::badbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: typename basic_ostream<_CharT, _Traits>::pos_type 8036: basic_ostream<_CharT, _Traits>:: 8036: tellp() 8036: { 8036: pos_type __ret = pos_type(-1); 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: return __ret; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: seekp(pos_type __pos) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: { 8036: 8036: 8036: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8036: ios_base::out); 8036: 8036: 8036: if (__p == pos_type(off_type(-1))) 8036: __err |= ios_base::failbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: basic_ostream<_CharT, _Traits>:: 8036: seekp(off_type __off, ios_base::seekdir __dir) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: { 8036: 8036: 8036: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8036: ios_base::out); 8036: 8036: 8036: if (__p == pos_type(off_type(-1))) 8036: __err |= ios_base::failbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_ostream<_CharT, _Traits>& 8036: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 8036: { 8036: if (!__s) 8036: __out.setstate(ios_base::badbit); 8036: else 8036: { 8036: 8036: 8036: const size_t __clen = char_traits::length(__s); 8036: if (true) 8036: { 8036: struct __ptr_guard 8036: { 8036: _CharT *__p; 8036: __ptr_guard (_CharT *__ip): __p(__ip) { } 8036: ~__ptr_guard() { delete[] __p; } 8036: _CharT* __get() { return __p; } 8036: } __pg (new _CharT[__clen]); 8036: 8036: _CharT *__ws = __pg.__get(); 8036: for (size_t __i = 0; __i < __clen; ++__i) 8036: __ws[__i] = __out.widen(__s[__i]); 8036: __ostream_insert(__out, __ws, __clen); 8036: } 8036: if (false) 8036: { 8036: __out._M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { __out._M_setstate(ios_base::badbit); } 8036: } 8036: return __out; 8036: } 8036: 8036: 8036: 8036: 8036: extern template class basic_ostream; 8036: extern template ostream& endl(ostream&); 8036: extern template ostream& ends(ostream&); 8036: extern template ostream& flush(ostream&); 8036: extern template ostream& operator<<(ostream&, char); 8036: extern template ostream& operator<<(ostream&, unsigned char); 8036: extern template ostream& operator<<(ostream&, signed char); 8036: extern template ostream& operator<<(ostream&, const char*); 8036: extern template ostream& operator<<(ostream&, const unsigned char*); 8036: extern template ostream& operator<<(ostream&, const signed char*); 8036: 8036: extern template ostream& ostream::_M_insert(long); 8036: extern template ostream& ostream::_M_insert(unsigned long); 8036: extern template ostream& ostream::_M_insert(bool); 8036: 8036: extern template ostream& ostream::_M_insert(long long); 8036: extern template ostream& ostream::_M_insert(unsigned long long); 8036: 8036: extern template ostream& ostream::_M_insert(double); 8036: extern template ostream& ostream::_M_insert(long double); 8036: extern template ostream& ostream::_M_insert(const void*); 8036: 8036: 8036: extern template class basic_ostream; 8036: extern template wostream& endl(wostream&); 8036: extern template wostream& ends(wostream&); 8036: extern template wostream& flush(wostream&); 8036: extern template wostream& operator<<(wostream&, wchar_t); 8036: extern template wostream& operator<<(wostream&, char); 8036: extern template wostream& operator<<(wostream&, const wchar_t*); 8036: extern template wostream& operator<<(wostream&, const char*); 8036: 8036: extern template wostream& wostream::_M_insert(long); 8036: extern template wostream& wostream::_M_insert(unsigned long); 8036: extern template wostream& wostream::_M_insert(bool); 8036: 8036: extern template wostream& wostream::_M_insert(long long); 8036: extern template wostream& wostream::_M_insert(unsigned long long); 8036: 8036: extern template wostream& wostream::_M_insert(double); 8036: extern template wostream& wostream::_M_insert(long double); 8036: extern template wostream& wostream::_M_insert(const void*); 8036: 8036: 8036: 8036: 8036: } 8036: # 694 "/usr/include/c++/8/ostream" 2 3 8036: # 65 "/usr/include/c++/8/iterator" 2 3 8036: # 1 "/usr/include/c++/8/istream" 1 3 8036: # 36 "/usr/include/c++/8/istream" 3 8036: 8036: # 37 "/usr/include/c++/8/istream" 3 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 57 "/usr/include/c++/8/istream" 3 8036: template 8036: class basic_istream : virtual public basic_ios<_CharT, _Traits> 8036: { 8036: public: 8036: 8036: typedef _CharT char_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef typename _Traits::pos_type pos_type; 8036: typedef typename _Traits::off_type off_type; 8036: typedef _Traits traits_type; 8036: 8036: 8036: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8036: typedef basic_ios<_CharT, _Traits> __ios_type; 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8036: __num_get_type; 8036: typedef ctype<_CharT> __ctype_type; 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: 8036: streamsize _M_gcount; 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: basic_istream(__streambuf_type* __sb) 8036: : _M_gcount(streamsize(0)) 8036: { this->init(__sb); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: virtual 8036: ~basic_istream() 8036: { _M_gcount = streamsize(0); } 8036: 8036: 8036: class sentry; 8036: friend class sentry; 8036: # 119 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: operator>>(__istream_type& (*__pf)(__istream_type&)) 8036: { return __pf(*this); } 8036: 8036: __istream_type& 8036: operator>>(__ios_type& (*__pf)(__ios_type&)) 8036: { 8036: __pf(*this); 8036: return *this; 8036: } 8036: 8036: __istream_type& 8036: operator>>(ios_base& (*__pf)(ios_base&)) 8036: { 8036: __pf(*this); 8036: return *this; 8036: } 8036: # 167 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: operator>>(bool& __n) 8036: { return _M_extract(__n); } 8036: 8036: __istream_type& 8036: operator>>(short& __n); 8036: 8036: __istream_type& 8036: operator>>(unsigned short& __n) 8036: { return _M_extract(__n); } 8036: 8036: __istream_type& 8036: operator>>(int& __n); 8036: 8036: __istream_type& 8036: operator>>(unsigned int& __n) 8036: { return _M_extract(__n); } 8036: 8036: __istream_type& 8036: operator>>(long& __n) 8036: { return _M_extract(__n); } 8036: 8036: __istream_type& 8036: operator>>(unsigned long& __n) 8036: { return _M_extract(__n); } 8036: 8036: 8036: __istream_type& 8036: operator>>(long long& __n) 8036: { return _M_extract(__n); } 8036: 8036: __istream_type& 8036: operator>>(unsigned long long& __n) 8036: { return _M_extract(__n); } 8036: # 213 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: operator>>(float& __f) 8036: { return _M_extract(__f); } 8036: 8036: __istream_type& 8036: operator>>(double& __f) 8036: { return _M_extract(__f); } 8036: 8036: __istream_type& 8036: operator>>(long double& __f) 8036: { return _M_extract(__f); } 8036: # 234 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: operator>>(void*& __p) 8036: { return _M_extract(__p); } 8036: # 258 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: operator>>(__streambuf_type* __sb); 8036: # 268 "/usr/include/c++/8/istream" 3 8036: streamsize 8036: gcount() const 8036: { return _M_gcount; } 8036: # 301 "/usr/include/c++/8/istream" 3 8036: int_type 8036: get(); 8036: # 315 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: get(char_type& __c); 8036: # 342 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: get(char_type* __s, streamsize __n, char_type __delim); 8036: # 353 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: get(char_type* __s, streamsize __n) 8036: { return this->get(__s, __n, this->widen('\n')); } 8036: # 376 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: get(__streambuf_type& __sb, char_type __delim); 8036: # 386 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: get(__streambuf_type& __sb) 8036: { return this->get(__sb, this->widen('\n')); } 8036: # 415 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: getline(char_type* __s, streamsize __n, char_type __delim); 8036: # 426 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: getline(char_type* __s, streamsize __n) 8036: { return this->getline(__s, __n, this->widen('\n')); } 8036: # 450 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: ignore(streamsize __n, int_type __delim); 8036: 8036: __istream_type& 8036: ignore(streamsize __n); 8036: 8036: __istream_type& 8036: ignore(); 8036: # 467 "/usr/include/c++/8/istream" 3 8036: int_type 8036: peek(); 8036: # 485 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: read(char_type* __s, streamsize __n); 8036: # 504 "/usr/include/c++/8/istream" 3 8036: streamsize 8036: readsome(char_type* __s, streamsize __n); 8036: # 521 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: putback(char_type __c); 8036: # 537 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: unget(); 8036: # 555 "/usr/include/c++/8/istream" 3 8036: int 8036: sync(); 8036: # 570 "/usr/include/c++/8/istream" 3 8036: pos_type 8036: tellg(); 8036: # 585 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: seekg(pos_type); 8036: # 601 "/usr/include/c++/8/istream" 3 8036: __istream_type& 8036: seekg(off_type, ios_base::seekdir); 8036: 8036: 8036: protected: 8036: basic_istream() 8036: : _M_gcount(streamsize(0)) 8036: { this->init(0); } 8036: 8036: 8036: basic_istream(const basic_istream&) = delete; 8036: 8036: basic_istream(basic_istream&& __rhs) 8036: : __ios_type(), _M_gcount(__rhs._M_gcount) 8036: { 8036: __ios_type::move(__rhs); 8036: __rhs._M_gcount = 0; 8036: } 8036: 8036: 8036: 8036: basic_istream& operator=(const basic_istream&) = delete; 8036: 8036: basic_istream& 8036: operator=(basic_istream&& __rhs) 8036: { 8036: swap(__rhs); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(basic_istream& __rhs) 8036: { 8036: __ios_type::swap(__rhs); 8036: std::swap(_M_gcount, __rhs._M_gcount); 8036: } 8036: 8036: 8036: template 8036: __istream_type& 8036: _M_extract(_ValueT& __v); 8036: }; 8036: 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: getline(char_type* __s, streamsize __n, char_type __delim); 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: ignore(streamsize __n); 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: ignore(streamsize __n, int_type __delim); 8036: 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: getline(char_type* __s, streamsize __n, char_type __delim); 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: ignore(streamsize __n); 8036: 8036: template<> 8036: basic_istream& 8036: basic_istream:: 8036: ignore(streamsize __n, int_type __delim); 8036: # 685 "/usr/include/c++/8/istream" 3 8036: template 8036: class basic_istream<_CharT, _Traits>::sentry 8036: { 8036: 8036: bool _M_ok; 8036: 8036: public: 8036: 8036: typedef _Traits traits_type; 8036: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef typename __istream_type::__ctype_type __ctype_type; 8036: typedef typename _Traits::int_type __int_type; 8036: # 721 "/usr/include/c++/8/istream" 3 8036: explicit 8036: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 8036: # 732 "/usr/include/c++/8/istream" 3 8036: explicit 8036: 8036: operator bool() const 8036: { return _M_ok; } 8036: }; 8036: # 750 "/usr/include/c++/8/istream" 3 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 8036: 8036: template 8036: inline basic_istream& 8036: operator>>(basic_istream& __in, unsigned char& __c) 8036: { return (__in >> reinterpret_cast(__c)); } 8036: 8036: template 8036: inline basic_istream& 8036: operator>>(basic_istream& __in, signed char& __c) 8036: { return (__in >> reinterpret_cast(__c)); } 8036: # 792 "/usr/include/c++/8/istream" 3 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 8036: 8036: 8036: template<> 8036: basic_istream& 8036: operator>>(basic_istream& __in, char* __s); 8036: 8036: template 8036: inline basic_istream& 8036: operator>>(basic_istream& __in, unsigned char* __s) 8036: { return (__in >> reinterpret_cast(__s)); } 8036: 8036: template 8036: inline basic_istream& 8036: operator>>(basic_istream& __in, signed char* __s) 8036: { return (__in >> reinterpret_cast(__s)); } 8036: # 823 "/usr/include/c++/8/istream" 3 8036: template 8036: class basic_iostream 8036: : public basic_istream<_CharT, _Traits>, 8036: public basic_ostream<_CharT, _Traits> 8036: { 8036: public: 8036: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef typename _Traits::pos_type pos_type; 8036: typedef typename _Traits::off_type off_type; 8036: typedef _Traits traits_type; 8036: 8036: 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 8036: : __istream_type(__sb), __ostream_type(__sb) { } 8036: 8036: 8036: 8036: 8036: virtual 8036: ~basic_iostream() { } 8036: 8036: protected: 8036: basic_iostream() 8036: : __istream_type(), __ostream_type() { } 8036: 8036: 8036: basic_iostream(const basic_iostream&) = delete; 8036: 8036: basic_iostream(basic_iostream&& __rhs) 8036: : __istream_type(std::move(__rhs)), __ostream_type(*this) 8036: { } 8036: 8036: 8036: 8036: basic_iostream& operator=(const basic_iostream&) = delete; 8036: 8036: basic_iostream& 8036: operator=(basic_iostream&& __rhs) 8036: { 8036: swap(__rhs); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(basic_iostream& __rhs) 8036: { __istream_type::swap(__rhs); } 8036: 8036: }; 8036: # 906 "/usr/include/c++/8/istream" 3 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: ws(basic_istream<_CharT, _Traits>& __is); 8036: 8036: 8036: template 8036: basic_istream<_Ch, _Up>& 8036: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 8036: 8036: template 8036: struct __is_convertible_to_basic_istream_impl 8036: { 8036: using __istream_type = void; 8036: }; 8036: 8036: template 8036: using __do_is_convertible_to_basic_istream_impl = 8036: decltype(__is_convertible_to_basic_istream_test 8036: (declval::type*>())); 8036: 8036: template 8036: struct __is_convertible_to_basic_istream_impl 8036: <_Tp, 8036: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 8036: { 8036: using __istream_type = 8036: __do_is_convertible_to_basic_istream_impl<_Tp>; 8036: }; 8036: 8036: template 8036: struct __is_convertible_to_basic_istream 8036: : __is_convertible_to_basic_istream_impl<_Tp> 8036: { 8036: public: 8036: using type = __not_::__istream_type>>; 8036: constexpr static bool value = type::value; 8036: }; 8036: 8036: template 8036: struct __is_extractable : false_type {}; 8036: 8036: template 8036: struct __is_extractable<_Istream, _Tp, 8036: __void_t() 8036: >> declval<_Tp>())>> 8036: : true_type {}; 8036: 8036: template 8036: using __rvalue_istream_type = 8036: typename __is_convertible_to_basic_istream< 8036: _Istream>::__istream_type; 8036: # 972 "/usr/include/c++/8/istream" 3 8036: template 8036: inline 8036: typename enable_if<__and_<__not_>, 8036: __is_convertible_to_basic_istream<_Istream>, 8036: __is_extractable< 8036: __rvalue_istream_type<_Istream>, 8036: _Tp&&>>::value, 8036: __rvalue_istream_type<_Istream>>::type 8036: operator>>(_Istream&& __is, _Tp&& __x) 8036: { 8036: __rvalue_istream_type<_Istream> __ret_is = __is; 8036: __ret_is >> std::forward<_Tp>(__x); 8036: return __ret_is; 8036: } 8036: 8036: 8036: 8036: } 8036: 8036: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 8036: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 8036: 8036: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: basic_istream<_CharT, _Traits>::sentry:: 8036: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (__in.good()) 8036: if (true) 8036: { 8036: if (__in.tie()) 8036: __in.tie()->flush(); 8036: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 8036: { 8036: const __int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = __in.rdbuf(); 8036: __int_type __c = __sb->sgetc(); 8036: 8036: const __ctype_type& __ct = __check_facet(__in._M_ctype); 8036: while (!traits_type::eq_int_type(__c, __eof) 8036: && __ct.is(ctype_base::space, 8036: traits_type::to_char_type(__c))) 8036: __c = __sb->snextc(); 8036: 8036: 8036: 8036: 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: __in._M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { __in._M_setstate(ios_base::badbit); } 8036: 8036: if (__in.good() && __err == ios_base::goodbit) 8036: _M_ok = true; 8036: else 8036: { 8036: __err |= ios_base::failbit; 8036: __in.setstate(__err); 8036: } 8036: } 8036: 8036: template 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: _M_extract(_ValueT& __v) 8036: { 8036: sentry __cerb(*this, false); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8036: __ng.get(*this, 0, *this, __err, __v); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: operator>>(short& __n) 8036: { 8036: 8036: 8036: sentry __cerb(*this, false); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: long __l; 8036: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8036: __ng.get(*this, 0, *this, __err, __l); 8036: 8036: 8036: 8036: if (__l < __gnu_cxx::__numeric_traits::__min) 8036: { 8036: __err |= ios_base::failbit; 8036: __n = __gnu_cxx::__numeric_traits::__min; 8036: } 8036: else if (__l > __gnu_cxx::__numeric_traits::__max) 8036: { 8036: __err |= ios_base::failbit; 8036: __n = __gnu_cxx::__numeric_traits::__max; 8036: } 8036: else 8036: __n = short(__l); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: operator>>(int& __n) 8036: { 8036: 8036: 8036: sentry __cerb(*this, false); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: long __l; 8036: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8036: __ng.get(*this, 0, *this, __err, __l); 8036: 8036: 8036: 8036: if (__l < __gnu_cxx::__numeric_traits::__min) 8036: { 8036: __err |= ios_base::failbit; 8036: __n = __gnu_cxx::__numeric_traits::__min; 8036: } 8036: else if (__l > __gnu_cxx::__numeric_traits::__max) 8036: { 8036: __err |= ios_base::failbit; 8036: __n = __gnu_cxx::__numeric_traits::__max; 8036: } 8036: else 8036: __n = int(__l); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: operator>>(__streambuf_type* __sbout) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, false); 8036: if (__cerb && __sbout) 8036: { 8036: if (true) 8036: { 8036: bool __ineof; 8036: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 8036: __err |= ios_base::failbit; 8036: if (__ineof) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::failbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::failbit); } 8036: } 8036: else if (!__sbout) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: typename basic_istream<_CharT, _Traits>::int_type 8036: basic_istream<_CharT, _Traits>:: 8036: get(void) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: int_type __c = __eof; 8036: _M_gcount = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: __c = this->rdbuf()->sbumpc(); 8036: 8036: if (!traits_type::eq_int_type(__c, __eof)) 8036: _M_gcount = 1; 8036: else 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: if (!_M_gcount) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return __c; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: get(char_type& __c) 8036: { 8036: _M_gcount = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: const int_type __cb = this->rdbuf()->sbumpc(); 8036: 8036: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 8036: { 8036: _M_gcount = 1; 8036: __c = traits_type::to_char_type(__cb); 8036: } 8036: else 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: if (!_M_gcount) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: get(char_type* __s, streamsize __n, char_type __delim) 8036: { 8036: _M_gcount = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: const int_type __idelim = traits_type::to_int_type(__delim); 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: int_type __c = __sb->sgetc(); 8036: 8036: while (_M_gcount + 1 < __n 8036: && !traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __idelim)) 8036: { 8036: *__s++ = traits_type::to_char_type(__c); 8036: ++_M_gcount; 8036: __c = __sb->snextc(); 8036: } 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: 8036: 8036: if (__n > 0) 8036: *__s = char_type(); 8036: if (!_M_gcount) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: get(__streambuf_type& __sb, char_type __delim) 8036: { 8036: _M_gcount = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: const int_type __idelim = traits_type::to_int_type(__delim); 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __this_sb = this->rdbuf(); 8036: int_type __c = __this_sb->sgetc(); 8036: char_type __c2 = traits_type::to_char_type(__c); 8036: 8036: while (!traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __idelim) 8036: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 8036: { 8036: ++_M_gcount; 8036: __c = __this_sb->snextc(); 8036: __c2 = traits_type::to_char_type(__c); 8036: } 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: if (!_M_gcount) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: getline(char_type* __s, streamsize __n, char_type __delim) 8036: { 8036: _M_gcount = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: const int_type __idelim = traits_type::to_int_type(__delim); 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: int_type __c = __sb->sgetc(); 8036: 8036: while (_M_gcount + 1 < __n 8036: && !traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __idelim)) 8036: { 8036: *__s++ = traits_type::to_char_type(__c); 8036: __c = __sb->snextc(); 8036: ++_M_gcount; 8036: } 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: else 8036: { 8036: if (traits_type::eq_int_type(__c, __idelim)) 8036: { 8036: __sb->sbumpc(); 8036: ++_M_gcount; 8036: } 8036: else 8036: __err |= ios_base::failbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: 8036: 8036: if (__n > 0) 8036: *__s = char_type(); 8036: if (!_M_gcount) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: this->setstate(__err); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: ignore(void) 8036: { 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: 8036: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 8036: __err |= ios_base::eofbit; 8036: else 8036: _M_gcount = 1; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: ignore(streamsize __n) 8036: { 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb && __n > 0) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: int_type __c = __sb->sgetc(); 8036: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 8036: bool __large_ignore = false; 8036: while (true) 8036: { 8036: while (_M_gcount < __n 8036: && !traits_type::eq_int_type(__c, __eof)) 8036: { 8036: ++_M_gcount; 8036: __c = __sb->snextc(); 8036: } 8036: if (__n == __gnu_cxx::__numeric_traits::__max 8036: && !traits_type::eq_int_type(__c, __eof)) 8036: { 8036: _M_gcount = 8036: __gnu_cxx::__numeric_traits::__min; 8036: __large_ignore = true; 8036: } 8036: else 8036: break; 8036: } 8036: 8036: if (__large_ignore) 8036: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8036: 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: ignore(streamsize __n, int_type __delim) 8036: { 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb && __n > 0) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: int_type __c = __sb->sgetc(); 8036: 8036: 8036: bool __large_ignore = false; 8036: while (true) 8036: { 8036: while (_M_gcount < __n 8036: && !traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __delim)) 8036: { 8036: ++_M_gcount; 8036: __c = __sb->snextc(); 8036: } 8036: if (__n == __gnu_cxx::__numeric_traits::__max 8036: && !traits_type::eq_int_type(__c, __eof) 8036: && !traits_type::eq_int_type(__c, __delim)) 8036: { 8036: _M_gcount = 8036: __gnu_cxx::__numeric_traits::__min; 8036: __large_ignore = true; 8036: } 8036: else 8036: break; 8036: } 8036: 8036: if (__large_ignore) 8036: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8036: 8036: if (traits_type::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: else if (traits_type::eq_int_type(__c, __delim)) 8036: { 8036: if (_M_gcount 8036: < __gnu_cxx::__numeric_traits::__max) 8036: ++_M_gcount; 8036: __sb->sbumpc(); 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: typename basic_istream<_CharT, _Traits>::int_type 8036: basic_istream<_CharT, _Traits>:: 8036: peek(void) 8036: { 8036: int_type __c = traits_type::eof(); 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: __c = this->rdbuf()->sgetc(); 8036: if (traits_type::eq_int_type(__c, traits_type::eof())) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return __c; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: read(char_type* __s, streamsize __n) 8036: { 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: _M_gcount = this->rdbuf()->sgetn(__s, __n); 8036: if (_M_gcount != __n) 8036: __err |= (ios_base::eofbit | ios_base::failbit); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: streamsize 8036: basic_istream<_CharT, _Traits>:: 8036: readsome(char_type* __s, streamsize __n) 8036: { 8036: _M_gcount = 0; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: 8036: const streamsize __num = this->rdbuf()->in_avail(); 8036: if (__num > 0) 8036: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 8036: else if (__num == -1) 8036: __err |= ios_base::eofbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return _M_gcount; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: putback(char_type __c) 8036: { 8036: 8036: 8036: _M_gcount = 0; 8036: 8036: this->clear(this->rdstate() & ~ios_base::eofbit); 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: if (!__sb 8036: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 8036: __err |= ios_base::badbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: unget(void) 8036: { 8036: 8036: 8036: _M_gcount = 0; 8036: 8036: this->clear(this->rdstate() & ~ios_base::eofbit); 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const int_type __eof = traits_type::eof(); 8036: __streambuf_type* __sb = this->rdbuf(); 8036: if (!__sb 8036: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 8036: __err |= ios_base::badbit; 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: int 8036: basic_istream<_CharT, _Traits>:: 8036: sync(void) 8036: { 8036: 8036: 8036: int __ret = -1; 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: __streambuf_type* __sb = this->rdbuf(); 8036: if (__sb) 8036: { 8036: if (__sb->pubsync() == -1) 8036: __err |= ios_base::badbit; 8036: else 8036: __ret = 0; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: typename basic_istream<_CharT, _Traits>::pos_type 8036: basic_istream<_CharT, _Traits>:: 8036: tellg(void) 8036: { 8036: 8036: 8036: pos_type __ret = pos_type(-1); 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 8036: ios_base::in); 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: } 8036: return __ret; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: seekg(pos_type __pos) 8036: { 8036: 8036: 8036: 8036: this->clear(this->rdstate() & ~ios_base::eofbit); 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: { 8036: 8036: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8036: ios_base::in); 8036: 8036: 8036: if (__p == pos_type(off_type(-1))) 8036: __err |= ios_base::failbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: basic_istream<_CharT, _Traits>:: 8036: seekg(off_type __off, ios_base::seekdir __dir) 8036: { 8036: 8036: 8036: 8036: this->clear(this->rdstate() & ~ios_base::eofbit); 8036: sentry __cerb(*this, true); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: if (!this->fail()) 8036: { 8036: 8036: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8036: ios_base::in); 8036: 8036: 8036: if (__p == pos_type(off_type(-1))) 8036: __err |= ios_base::failbit; 8036: } 8036: } 8036: if (false) 8036: { 8036: this->_M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { this->_M_setstate(ios_base::badbit); } 8036: if (__err) 8036: this->setstate(__err); 8036: } 8036: return *this; 8036: } 8036: 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 8036: { 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef typename __istream_type::int_type __int_type; 8036: 8036: typename __istream_type::sentry __cerb(__in, false); 8036: if (__cerb) 8036: { 8036: ios_base::iostate __err = ios_base::goodbit; 8036: if (true) 8036: { 8036: const __int_type __cb = __in.rdbuf()->sbumpc(); 8036: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 8036: __c = _Traits::to_char_type(__cb); 8036: else 8036: __err |= (ios_base::eofbit | ios_base::failbit); 8036: } 8036: if (false) 8036: { 8036: __in._M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { __in._M_setstate(ios_base::badbit); } 8036: if (__err) 8036: __in.setstate(__err); 8036: } 8036: return __in; 8036: } 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 8036: { 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8036: typedef typename _Traits::int_type int_type; 8036: typedef _CharT char_type; 8036: typedef ctype<_CharT> __ctype_type; 8036: 8036: streamsize __extracted = 0; 8036: ios_base::iostate __err = ios_base::goodbit; 8036: typename __istream_type::sentry __cerb(__in, false); 8036: if (__cerb) 8036: { 8036: if (true) 8036: { 8036: 8036: streamsize __num = __in.width(); 8036: if (__num <= 0) 8036: __num = __gnu_cxx::__numeric_traits::__max; 8036: 8036: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8036: 8036: const int_type __eof = _Traits::eof(); 8036: __streambuf_type* __sb = __in.rdbuf(); 8036: int_type __c = __sb->sgetc(); 8036: 8036: while (__extracted < __num - 1 8036: && !_Traits::eq_int_type(__c, __eof) 8036: && !__ct.is(ctype_base::space, 8036: _Traits::to_char_type(__c))) 8036: { 8036: *__s++ = _Traits::to_char_type(__c); 8036: ++__extracted; 8036: __c = __sb->snextc(); 8036: } 8036: if (_Traits::eq_int_type(__c, __eof)) 8036: __err |= ios_base::eofbit; 8036: 8036: 8036: 8036: *__s = char_type(); 8036: __in.width(0); 8036: } 8036: if (false) 8036: { 8036: __in._M_setstate(ios_base::badbit); 8036: ; 8036: } 8036: if (false) 8036: { __in._M_setstate(ios_base::badbit); } 8036: } 8036: if (!__extracted) 8036: __err |= ios_base::failbit; 8036: if (__err) 8036: __in.setstate(__err); 8036: return __in; 8036: } 8036: 8036: 8036: template 8036: basic_istream<_CharT, _Traits>& 8036: ws(basic_istream<_CharT, _Traits>& __in) 8036: { 8036: typedef basic_istream<_CharT, _Traits> __istream_type; 8036: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8036: typedef typename __istream_type::int_type __int_type; 8036: typedef ctype<_CharT> __ctype_type; 8036: 8036: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8036: const __int_type __eof = _Traits::eof(); 8036: __streambuf_type* __sb = __in.rdbuf(); 8036: __int_type __c = __sb->sgetc(); 8036: 8036: while (!_Traits::eq_int_type(__c, __eof) 8036: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 8036: __c = __sb->snextc(); 8036: 8036: if (_Traits::eq_int_type(__c, __eof)) 8036: __in.setstate(ios_base::eofbit); 8036: return __in; 8036: } 8036: 8036: 8036: 8036: 8036: extern template class basic_istream; 8036: extern template istream& ws(istream&); 8036: extern template istream& operator>>(istream&, char&); 8036: extern template istream& operator>>(istream&, char*); 8036: extern template istream& operator>>(istream&, unsigned char&); 8036: extern template istream& operator>>(istream&, signed char&); 8036: extern template istream& operator>>(istream&, unsigned char*); 8036: extern template istream& operator>>(istream&, signed char*); 8036: 8036: extern template istream& istream::_M_extract(unsigned short&); 8036: extern template istream& istream::_M_extract(unsigned int&); 8036: extern template istream& istream::_M_extract(long&); 8036: extern template istream& istream::_M_extract(unsigned long&); 8036: extern template istream& istream::_M_extract(bool&); 8036: 8036: extern template istream& istream::_M_extract(long long&); 8036: extern template istream& istream::_M_extract(unsigned long long&); 8036: 8036: extern template istream& istream::_M_extract(float&); 8036: extern template istream& istream::_M_extract(double&); 8036: extern template istream& istream::_M_extract(long double&); 8036: extern template istream& istream::_M_extract(void*&); 8036: 8036: extern template class basic_iostream; 8036: 8036: 8036: extern template class basic_istream; 8036: extern template wistream& ws(wistream&); 8036: extern template wistream& operator>>(wistream&, wchar_t&); 8036: extern template wistream& operator>>(wistream&, wchar_t*); 8036: 8036: extern template wistream& wistream::_M_extract(unsigned short&); 8036: extern template wistream& wistream::_M_extract(unsigned int&); 8036: extern template wistream& wistream::_M_extract(long&); 8036: extern template wistream& wistream::_M_extract(unsigned long&); 8036: extern template wistream& wistream::_M_extract(bool&); 8036: 8036: extern template wistream& wistream::_M_extract(long long&); 8036: extern template wistream& wistream::_M_extract(unsigned long long&); 8036: 8036: extern template wistream& wistream::_M_extract(float&); 8036: extern template wistream& wistream::_M_extract(double&); 8036: extern template wistream& wistream::_M_extract(long double&); 8036: extern template wistream& wistream::_M_extract(void*&); 8036: 8036: extern template class basic_iostream; 8036: 8036: 8036: 8036: 8036: } 8036: # 992 "/usr/include/c++/8/istream" 2 3 8036: # 66 "/usr/include/c++/8/iterator" 2 3 8036: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template, typename _Dist = ptrdiff_t> 8036: class istream_iterator 8036: : public iterator 8036: { 8036: public: 8036: typedef _CharT char_type; 8036: typedef _Traits traits_type; 8036: typedef basic_istream<_CharT, _Traits> istream_type; 8036: 8036: private: 8036: istream_type* _M_stream; 8036: _Tp _M_value; 8036: bool _M_ok; 8036: 8036: public: 8036: 8036: constexpr istream_iterator() 8036: : _M_stream(0), _M_value(), _M_ok(false) {} 8036: 8036: 8036: istream_iterator(istream_type& __s) 8036: : _M_stream(std::__addressof(__s)) 8036: { _M_read(); } 8036: 8036: istream_iterator(const istream_iterator& __obj) 8036: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 8036: _M_ok(__obj._M_ok) 8036: { } 8036: 8036: const _Tp& 8036: operator*() const 8036: { 8036: 8036: 8036: ; 8036: return _M_value; 8036: } 8036: 8036: const _Tp* 8036: operator->() const { return std::__addressof((operator*())); } 8036: 8036: istream_iterator& 8036: operator++() 8036: { 8036: 8036: 8036: ; 8036: _M_read(); 8036: return *this; 8036: } 8036: 8036: istream_iterator 8036: operator++(int) 8036: { 8036: 8036: 8036: ; 8036: istream_iterator __tmp = *this; 8036: _M_read(); 8036: return __tmp; 8036: } 8036: 8036: bool 8036: _M_equal(const istream_iterator& __x) const 8036: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 8036: 8036: private: 8036: void 8036: _M_read() 8036: { 8036: _M_ok = (_M_stream && *_M_stream) ? true : false; 8036: if (_M_ok) 8036: { 8036: *_M_stream >> _M_value; 8036: _M_ok = *_M_stream ? true : false; 8036: } 8036: } 8036: }; 8036: 8036: 8036: template 8036: inline bool 8036: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8036: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8036: { return __x._M_equal(__y); } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8036: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8036: { return !__x._M_equal(__y); } 8036: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 8036: template > 8036: class ostream_iterator 8036: : public iterator 8036: { 8036: public: 8036: 8036: 8036: typedef _CharT char_type; 8036: typedef _Traits traits_type; 8036: typedef basic_ostream<_CharT, _Traits> ostream_type; 8036: 8036: 8036: private: 8036: ostream_type* _M_stream; 8036: const _CharT* _M_string; 8036: 8036: public: 8036: 8036: ostream_iterator(ostream_type& __s) 8036: : _M_stream(std::__addressof(__s)), _M_string(0) {} 8036: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 8036: ostream_iterator(ostream_type& __s, const _CharT* __c) 8036: : _M_stream(&__s), _M_string(__c) { } 8036: 8036: 8036: ostream_iterator(const ostream_iterator& __obj) 8036: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 8036: 8036: 8036: 8036: ostream_iterator& 8036: operator=(const _Tp& __value) 8036: { 8036: 8036: 8036: ; 8036: *_M_stream << __value; 8036: if (_M_string) *_M_stream << _M_string; 8036: return *this; 8036: } 8036: 8036: ostream_iterator& 8036: operator*() 8036: { return *this; } 8036: 8036: ostream_iterator& 8036: operator++() 8036: { return *this; } 8036: 8036: ostream_iterator& 8036: operator++(int) 8036: { return *this; } 8036: }; 8036: 8036: 8036: 8036: 8036: } 8036: # 67 "/usr/include/c++/8/iterator" 2 3 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: # 1 "/usr/include/c++/8/list" 1 3 4 8036: # 58 "/usr/include/c++/8/list" 3 4 8036: 8036: # 59 "/usr/include/c++/8/list" 3 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_list.h" 1 3 8036: # 63 "/usr/include/c++/8/bits/stl_list.h" 3 8036: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 8036: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: struct __allocated_ptr 8036: { 8036: using pointer = typename allocator_traits<_Alloc>::pointer; 8036: using value_type = typename allocator_traits<_Alloc>::value_type; 8036: 8036: 8036: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 8036: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 8036: { } 8036: 8036: 8036: template>> 8036: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 8036: : _M_alloc(std::__addressof(__a)), 8036: _M_ptr(pointer_traits::pointer_to(*__ptr)) 8036: { } 8036: 8036: 8036: __allocated_ptr(__allocated_ptr&& __gd) noexcept 8036: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 8036: { __gd._M_ptr = nullptr; } 8036: 8036: 8036: ~__allocated_ptr() 8036: { 8036: if (_M_ptr != nullptr) 8036: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 8036: } 8036: 8036: 8036: __allocated_ptr& 8036: operator=(std::nullptr_t) noexcept 8036: { 8036: _M_ptr = nullptr; 8036: return *this; 8036: } 8036: 8036: 8036: value_type* get() { return std::__to_address(_M_ptr); } 8036: 8036: private: 8036: _Alloc* _M_alloc; 8036: pointer _M_ptr; 8036: }; 8036: 8036: 8036: template 8036: __allocated_ptr<_Alloc> 8036: __allocate_guarded(_Alloc& __a) 8036: { 8036: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 8036: } 8036: 8036: 8036: } 8036: # 64 "/usr/include/c++/8/bits/stl_list.h" 2 3 8036: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 8036: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8036: 8036: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace __gnu_cxx 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: struct __aligned_membuf 8036: { 8036: 8036: 8036: 8036: struct _Tp2 { _Tp _M_t; }; 8036: 8036: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 8036: 8036: __aligned_membuf() = default; 8036: 8036: 8036: __aligned_membuf(std::nullptr_t) { } 8036: 8036: void* 8036: _M_addr() noexcept 8036: { return static_cast(&_M_storage); } 8036: 8036: const void* 8036: _M_addr() const noexcept 8036: { return static_cast(&_M_storage); } 8036: 8036: _Tp* 8036: _M_ptr() noexcept 8036: { return static_cast<_Tp*>(_M_addr()); } 8036: 8036: const _Tp* 8036: _M_ptr() const noexcept 8036: { return static_cast(_M_addr()); } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __aligned_buffer 8036: : std::aligned_storage::value> 8036: { 8036: typename 8036: std::aligned_storage::value>::type 8036: _M_storage; 8036: 8036: __aligned_buffer() = default; 8036: 8036: 8036: __aligned_buffer(std::nullptr_t) { } 8036: 8036: void* 8036: _M_addr() noexcept 8036: { 8036: return static_cast(&_M_storage); 8036: } 8036: 8036: const void* 8036: _M_addr() const noexcept 8036: { 8036: return static_cast(&_M_storage); 8036: } 8036: 8036: _Tp* 8036: _M_ptr() noexcept 8036: { return static_cast<_Tp*>(_M_addr()); } 8036: 8036: const _Tp* 8036: _M_ptr() const noexcept 8036: { return static_cast(_M_addr()); } 8036: }; 8036: 8036: } 8036: # 65 "/usr/include/c++/8/bits/stl_list.h" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: namespace __detail 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct _List_node_base 8036: { 8036: _List_node_base* _M_next; 8036: _List_node_base* _M_prev; 8036: 8036: static void 8036: swap(_List_node_base& __x, _List_node_base& __y) noexcept; 8036: 8036: void 8036: _M_transfer(_List_node_base* const __first, 8036: _List_node_base* const __last) noexcept; 8036: 8036: void 8036: _M_reverse() noexcept; 8036: 8036: void 8036: _M_hook(_List_node_base* const __position) noexcept; 8036: 8036: void 8036: _M_unhook() noexcept; 8036: }; 8036: 8036: 8036: struct _List_node_header : public _List_node_base 8036: { 8036: 8036: std::size_t _M_size; 8036: 8036: 8036: _List_node_header() noexcept 8036: { _M_init(); } 8036: 8036: 8036: _List_node_header(_List_node_header&& __x) noexcept 8036: : _List_node_base{ __x._M_next, __x._M_prev } 8036: 8036: , _M_size(__x._M_size) 8036: 8036: { 8036: if (__x._M_base()->_M_next == __x._M_base()) 8036: this->_M_next = this->_M_prev = this; 8036: else 8036: { 8036: this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); 8036: __x._M_init(); 8036: } 8036: } 8036: 8036: void 8036: _M_move_nodes(_List_node_header&& __x) 8036: { 8036: _List_node_base* const __xnode = __x._M_base(); 8036: if (__xnode->_M_next == __xnode) 8036: _M_init(); 8036: else 8036: { 8036: _List_node_base* const __node = this->_M_base(); 8036: __node->_M_next = __xnode->_M_next; 8036: __node->_M_prev = __xnode->_M_prev; 8036: __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; 8036: 8036: _M_size = __x._M_size; 8036: 8036: __x._M_init(); 8036: } 8036: } 8036: 8036: 8036: void 8036: _M_init() noexcept 8036: { 8036: this->_M_next = this->_M_prev = this; 8036: 8036: this->_M_size = 0; 8036: 8036: } 8036: 8036: private: 8036: _List_node_base* _M_base() { return this; } 8036: }; 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: struct _List_node : public __detail::_List_node_base 8036: { 8036: 8036: __gnu_cxx::__aligned_membuf<_Tp> _M_storage; 8036: _Tp* _M_valptr() { return _M_storage._M_ptr(); } 8036: _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _List_iterator 8036: { 8036: typedef _List_iterator<_Tp> _Self; 8036: typedef _List_node<_Tp> _Node; 8036: 8036: typedef ptrdiff_t difference_type; 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef _Tp value_type; 8036: typedef _Tp* pointer; 8036: typedef _Tp& reference; 8036: 8036: _List_iterator() noexcept 8036: : _M_node() { } 8036: 8036: explicit 8036: _List_iterator(__detail::_List_node_base* __x) noexcept 8036: : _M_node(__x) { } 8036: 8036: _Self 8036: _M_const_cast() const noexcept 8036: { return *this; } 8036: 8036: 8036: reference 8036: operator*() const noexcept 8036: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8036: 8036: pointer 8036: operator->() const noexcept 8036: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8036: 8036: _Self& 8036: operator++() noexcept 8036: { 8036: _M_node = _M_node->_M_next; 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator++(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _M_node->_M_next; 8036: return __tmp; 8036: } 8036: 8036: _Self& 8036: operator--() noexcept 8036: { 8036: _M_node = _M_node->_M_prev; 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator--(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _M_node->_M_prev; 8036: return __tmp; 8036: } 8036: 8036: bool 8036: operator==(const _Self& __x) const noexcept 8036: { return _M_node == __x._M_node; } 8036: 8036: bool 8036: operator!=(const _Self& __x) const noexcept 8036: { return _M_node != __x._M_node; } 8036: 8036: 8036: __detail::_List_node_base* _M_node; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _List_const_iterator 8036: { 8036: typedef _List_const_iterator<_Tp> _Self; 8036: typedef const _List_node<_Tp> _Node; 8036: typedef _List_iterator<_Tp> iterator; 8036: 8036: typedef ptrdiff_t difference_type; 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef _Tp value_type; 8036: typedef const _Tp* pointer; 8036: typedef const _Tp& reference; 8036: 8036: _List_const_iterator() noexcept 8036: : _M_node() { } 8036: 8036: explicit 8036: _List_const_iterator(const __detail::_List_node_base* __x) 8036: noexcept 8036: : _M_node(__x) { } 8036: 8036: _List_const_iterator(const iterator& __x) noexcept 8036: : _M_node(__x._M_node) { } 8036: 8036: iterator 8036: _M_const_cast() const noexcept 8036: { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } 8036: 8036: 8036: reference 8036: operator*() const noexcept 8036: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8036: 8036: pointer 8036: operator->() const noexcept 8036: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8036: 8036: _Self& 8036: operator++() noexcept 8036: { 8036: _M_node = _M_node->_M_next; 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator++(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _M_node->_M_next; 8036: return __tmp; 8036: } 8036: 8036: _Self& 8036: operator--() noexcept 8036: { 8036: _M_node = _M_node->_M_prev; 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator--(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _M_node->_M_prev; 8036: return __tmp; 8036: } 8036: 8036: bool 8036: operator==(const _Self& __x) const noexcept 8036: { return _M_node == __x._M_node; } 8036: 8036: bool 8036: operator!=(const _Self& __x) const noexcept 8036: { return _M_node != __x._M_node; } 8036: 8036: 8036: const __detail::_List_node_base* _M_node; 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const _List_iterator<_Val>& __x, 8036: const _List_const_iterator<_Val>& __y) noexcept 8036: { return __x._M_node == __y._M_node; } 8036: 8036: template 8036: inline bool 8036: operator!=(const _List_iterator<_Val>& __x, 8036: const _List_const_iterator<_Val>& __y) noexcept 8036: { return __x._M_node != __y._M_node; } 8036: 8036: namespace __cxx11 { 8036: 8036: template 8036: class _List_base 8036: { 8036: protected: 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind<_Tp>::other _Tp_alloc_type; 8036: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; 8036: typedef typename _Tp_alloc_traits::template 8036: rebind<_List_node<_Tp> >::other _Node_alloc_type; 8036: typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; 8036: 8036: 8036: static size_t 8036: _S_distance(const __detail::_List_node_base* __first, 8036: const __detail::_List_node_base* __last) 8036: { 8036: size_t __n = 0; 8036: while (__first != __last) 8036: { 8036: __first = __first->_M_next; 8036: ++__n; 8036: } 8036: return __n; 8036: } 8036: 8036: 8036: struct _List_impl 8036: : public _Node_alloc_type 8036: { 8036: __detail::_List_node_header _M_node; 8036: 8036: _List_impl() noexcept(noexcept(_Node_alloc_type())) 8036: : _Node_alloc_type() 8036: { } 8036: 8036: _List_impl(const _Node_alloc_type& __a) noexcept 8036: : _Node_alloc_type(__a) 8036: { } 8036: 8036: 8036: _List_impl(_List_impl&&) = default; 8036: 8036: _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) 8036: : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) 8036: { } 8036: 8036: _List_impl(_Node_alloc_type&& __a) noexcept 8036: : _Node_alloc_type(std::move(__a)) 8036: { } 8036: 8036: }; 8036: 8036: _List_impl _M_impl; 8036: 8036: 8036: size_t _M_get_size() const { return _M_impl._M_node._M_size; } 8036: 8036: void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } 8036: 8036: void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } 8036: 8036: void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } 8036: 8036: 8036: size_t 8036: _M_distance(const __detail::_List_node_base* __first, 8036: const __detail::_List_node_base* __last) const 8036: { return _S_distance(__first, __last); } 8036: 8036: 8036: size_t _M_node_count() const { return _M_get_size(); } 8036: # 447 "/usr/include/c++/8/bits/stl_list.h" 3 8036: typename _Node_alloc_traits::pointer 8036: _M_get_node() 8036: { return _Node_alloc_traits::allocate(_M_impl, 1); } 8036: 8036: void 8036: _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept 8036: { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } 8036: 8036: public: 8036: typedef _Alloc allocator_type; 8036: 8036: _Node_alloc_type& 8036: _M_get_Node_allocator() noexcept 8036: { return _M_impl; } 8036: 8036: const _Node_alloc_type& 8036: _M_get_Node_allocator() const noexcept 8036: { return _M_impl; } 8036: 8036: 8036: _List_base() = default; 8036: 8036: 8036: 8036: 8036: _List_base(const _Node_alloc_type& __a) noexcept 8036: : _M_impl(__a) 8036: { } 8036: 8036: 8036: _List_base(_List_base&&) = default; 8036: 8036: 8036: _List_base(_List_base&& __x, _Node_alloc_type&& __a) 8036: : _M_impl(std::move(__a)) 8036: { 8036: if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) 8036: _M_move_nodes(std::move(__x)); 8036: 8036: } 8036: 8036: 8036: 8036: _List_base(_Node_alloc_type&& __a, _List_base&& __x) 8036: : _M_impl(std::move(__a), std::move(__x._M_impl)) 8036: { } 8036: 8036: 8036: _List_base(_Node_alloc_type&& __a) 8036: : _M_impl(std::move(__a)) 8036: { } 8036: 8036: void 8036: _M_move_nodes(_List_base&& __x) 8036: { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } 8036: 8036: 8036: 8036: ~_List_base() noexcept 8036: { _M_clear(); } 8036: 8036: void 8036: _M_clear() noexcept; 8036: 8036: void 8036: _M_init() noexcept 8036: { this->_M_impl._M_node._M_init(); } 8036: }; 8036: # 562 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template > 8036: class list : protected _List_base<_Tp, _Alloc> 8036: { 8036: # 575 "/usr/include/c++/8/bits/stl_list.h" 3 8036: static_assert(is_same::type, _Tp>::value, 8036: "std::list must have a non-const, non-volatile value_type"); 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef _List_base<_Tp, _Alloc> _Base; 8036: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8036: typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; 8036: typedef typename _Base::_Node_alloc_type _Node_alloc_type; 8036: typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; 8036: 8036: public: 8036: typedef _Tp value_type; 8036: typedef typename _Tp_alloc_traits::pointer pointer; 8036: typedef typename _Tp_alloc_traits::const_pointer const_pointer; 8036: typedef typename _Tp_alloc_traits::reference reference; 8036: typedef typename _Tp_alloc_traits::const_reference const_reference; 8036: typedef _List_iterator<_Tp> iterator; 8036: typedef _List_const_iterator<_Tp> const_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Alloc allocator_type; 8036: 8036: protected: 8036: 8036: 8036: typedef _List_node<_Tp> _Node; 8036: 8036: using _Base::_M_impl; 8036: using _Base::_M_put_node; 8036: using _Base::_M_get_node; 8036: using _Base::_M_get_Node_allocator; 8036: # 637 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: _Node* 8036: _M_create_node(_Args&&... __args) 8036: { 8036: auto __p = this->_M_get_node(); 8036: auto& __alloc = _M_get_Node_allocator(); 8036: __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; 8036: _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), 8036: std::forward<_Args>(__args)...); 8036: __guard = nullptr; 8036: return __p; 8036: } 8036: 8036: 8036: 8036: static size_t 8036: _S_distance(const_iterator __first, const_iterator __last) 8036: { return std::distance(__first, __last); } 8036: 8036: 8036: size_t 8036: _M_node_count() const 8036: { return this->_M_get_size(); } 8036: # 672 "/usr/include/c++/8/bits/stl_list.h" 3 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: list() = default; 8036: # 689 "/usr/include/c++/8/bits/stl_list.h" 3 8036: explicit 8036: list(const allocator_type& __a) noexcept 8036: : _Base(_Node_alloc_type(__a)) { } 8036: # 702 "/usr/include/c++/8/bits/stl_list.h" 3 8036: explicit 8036: list(size_type __n, const allocator_type& __a = allocator_type()) 8036: : _Base(_Node_alloc_type(__a)) 8036: { _M_default_initialize(__n); } 8036: # 715 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list(size_type __n, const value_type& __value, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(_Node_alloc_type(__a)) 8036: { _M_fill_initialize(__n, __value); } 8036: # 742 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list(const list& __x) 8036: : _Base(_Node_alloc_traits:: 8036: _S_select_on_copy(__x._M_get_Node_allocator())) 8036: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8036: # 755 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list(list&&) = default; 8036: # 765 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list(initializer_list __l, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(_Node_alloc_type(__a)) 8036: { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } 8036: 8036: list(const list& __x, const allocator_type& __a) 8036: : _Base(_Node_alloc_type(__a)) 8036: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8036: 8036: private: 8036: list(list&& __x, const allocator_type& __a, true_type) noexcept 8036: : _Base(_Node_alloc_type(__a), std::move(__x)) 8036: { } 8036: 8036: list(list&& __x, const allocator_type& __a, false_type) 8036: : _Base(_Node_alloc_type(__a)) 8036: { 8036: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8036: this->_M_move_nodes(std::move(__x)); 8036: else 8036: insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), 8036: std::__make_move_if_noexcept_iterator(__x.end())); 8036: } 8036: 8036: public: 8036: list(list&& __x, const allocator_type& __a) 8036: noexcept(_Node_alloc_traits::_S_always_equal()) 8036: : list(std::move(__x), __a, 8036: typename _Node_alloc_traits::is_always_equal{}) 8036: { } 8036: # 808 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template> 8036: list(_InputIterator __first, _InputIterator __last, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(_Node_alloc_type(__a)) 8036: { _M_initialize_dispatch(__first, __last, __false_type()); } 8036: # 834 "/usr/include/c++/8/bits/stl_list.h" 3 8036: ~list() = default; 8036: # 845 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list& 8036: operator=(const list& __x); 8036: # 859 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list& 8036: operator=(list&& __x) 8036: noexcept(_Node_alloc_traits::_S_nothrow_move()) 8036: { 8036: constexpr bool __move_storage = 8036: _Node_alloc_traits::_S_propagate_on_move_assign() 8036: || _Node_alloc_traits::_S_always_equal(); 8036: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8036: return *this; 8036: } 8036: # 877 "/usr/include/c++/8/bits/stl_list.h" 3 8036: list& 8036: operator=(initializer_list __l) 8036: { 8036: this->assign(__l.begin(), __l.end()); 8036: return *this; 8036: } 8036: # 895 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: assign(size_type __n, const value_type& __val) 8036: { _M_fill_assign(__n, __val); } 8036: # 912 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template> 8036: void 8036: assign(_InputIterator __first, _InputIterator __last) 8036: { _M_assign_dispatch(__first, __last, __false_type()); } 8036: # 936 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: assign(initializer_list __l) 8036: { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } 8036: 8036: 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_Base::_M_get_Node_allocator()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return iterator(this->_M_impl._M_node._M_next); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return const_iterator(this->_M_impl._M_node._M_next); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: end() noexcept 8036: { return iterator(&this->_M_impl._M_node); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return const_iterator(&this->_M_impl._M_node); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return const_iterator(this->_M_impl._M_node._M_next); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return const_iterator(&this->_M_impl._M_node); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: empty() const noexcept 8036: { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return _M_node_count(); } 8036: 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 8036: # 1085 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: resize(size_type __new_size); 8036: # 1098 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: resize(size_type __new_size, const value_type& __x); 8036: # 1120 "/usr/include/c++/8/bits/stl_list.h" 3 8036: reference 8036: front() noexcept 8036: { return *begin(); } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: front() const noexcept 8036: { return *begin(); } 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: back() noexcept 8036: { 8036: iterator __tmp = end(); 8036: --__tmp; 8036: return *__tmp; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: back() const noexcept 8036: { 8036: const_iterator __tmp = end(); 8036: --__tmp; 8036: return *__tmp; 8036: } 8036: # 1167 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: push_front(const value_type& __x) 8036: { this->_M_insert(begin(), __x); } 8036: 8036: 8036: void 8036: push_front(value_type&& __x) 8036: { this->_M_insert(begin(), std::move(__x)); } 8036: 8036: template 8036: 8036: 8036: 8036: void 8036: 8036: emplace_front(_Args&&... __args) 8036: { 8036: this->_M_insert(begin(), std::forward<_Args>(__args)...); 8036: 8036: 8036: 8036: } 8036: # 1203 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: pop_front() noexcept 8036: { this->_M_erase(begin()); } 8036: # 1217 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: push_back(const value_type& __x) 8036: { this->_M_insert(end(), __x); } 8036: 8036: 8036: void 8036: push_back(value_type&& __x) 8036: { this->_M_insert(end(), std::move(__x)); } 8036: 8036: template 8036: 8036: 8036: 8036: void 8036: 8036: emplace_back(_Args&&... __args) 8036: { 8036: this->_M_insert(end(), std::forward<_Args>(__args)...); 8036: 8036: 8036: 8036: } 8036: # 1252 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: pop_back() noexcept 8036: { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } 8036: # 1269 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: iterator 8036: emplace(const_iterator __position, _Args&&... __args); 8036: # 1284 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: insert(const_iterator __position, const value_type& __x); 8036: # 1314 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: insert(const_iterator __position, value_type&& __x) 8036: { return emplace(__position, std::move(__x)); } 8036: # 1333 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: insert(const_iterator __p, initializer_list __l) 8036: { return this->insert(__p, __l.begin(), __l.end()); } 8036: # 1353 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: insert(const_iterator __position, size_type __n, const value_type& __x); 8036: # 1392 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template> 8036: iterator 8036: insert(const_iterator __position, _InputIterator __first, 8036: _InputIterator __last); 8036: # 1436 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: 8036: erase(const_iterator __position) noexcept; 8036: # 1461 "/usr/include/c++/8/bits/stl_list.h" 3 8036: iterator 8036: 8036: erase(const_iterator __first, const_iterator __last) noexcept 8036: 8036: 8036: 8036: { 8036: while (__first != __last) 8036: __first = erase(__first); 8036: return __last._M_const_cast(); 8036: } 8036: # 1484 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: swap(list& __x) noexcept 8036: { 8036: __detail::_List_node_base::swap(this->_M_impl._M_node, 8036: __x._M_impl._M_node); 8036: 8036: size_t __xsize = __x._M_get_size(); 8036: __x._M_set_size(this->_M_get_size()); 8036: this->_M_set_size(__xsize); 8036: 8036: _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), 8036: __x._M_get_Node_allocator()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: clear() noexcept 8036: { 8036: _Base::_M_clear(); 8036: _Base::_M_init(); 8036: } 8036: # 1523 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: 8036: splice(const_iterator __position, list&& __x) noexcept 8036: 8036: 8036: 8036: { 8036: if (!__x.empty()) 8036: { 8036: _M_check_equal_allocators(__x); 8036: 8036: this->_M_transfer(__position._M_const_cast(), 8036: __x.begin(), __x.end()); 8036: 8036: this->_M_inc_size(__x._M_get_size()); 8036: __x._M_set_size(0); 8036: } 8036: } 8036: 8036: 8036: void 8036: splice(const_iterator __position, list& __x) noexcept 8036: { splice(__position, std::move(__x)); } 8036: # 1559 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: splice(const_iterator __position, list&& __x, const_iterator __i) noexcept 8036: # 1574 "/usr/include/c++/8/bits/stl_list.h" 3 8036: { 8036: iterator __j = __i._M_const_cast(); 8036: ++__j; 8036: if (__position == __i || __position == __j) 8036: return; 8036: 8036: if (this != std::__addressof(__x)) 8036: _M_check_equal_allocators(__x); 8036: 8036: this->_M_transfer(__position._M_const_cast(), 8036: __i._M_const_cast(), __j); 8036: 8036: this->_M_inc_size(1); 8036: __x._M_dec_size(1); 8036: } 8036: # 1601 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: splice(const_iterator __position, list& __x, const_iterator __i) noexcept 8036: { splice(__position, std::move(__x), __i); } 8036: # 1620 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: splice(const_iterator __position, list&& __x, const_iterator __first, 8036: const_iterator __last) noexcept 8036: # 1640 "/usr/include/c++/8/bits/stl_list.h" 3 8036: { 8036: if (__first != __last) 8036: { 8036: if (this != std::__addressof(__x)) 8036: _M_check_equal_allocators(__x); 8036: 8036: size_t __n = _S_distance(__first, __last); 8036: this->_M_inc_size(__n); 8036: __x._M_dec_size(__n); 8036: 8036: this->_M_transfer(__position._M_const_cast(), 8036: __first._M_const_cast(), 8036: __last._M_const_cast()); 8036: } 8036: } 8036: # 1670 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: splice(const_iterator __position, list& __x, const_iterator __first, 8036: const_iterator __last) noexcept 8036: { splice(__position, std::move(__x), __first, __last); } 8036: # 1687 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: remove(const _Tp& __value); 8036: # 1701 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: void 8036: remove_if(_Predicate); 8036: # 1715 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: unique(); 8036: # 1730 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: void 8036: unique(_BinaryPredicate); 8036: # 1744 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: merge(list&& __x); 8036: 8036: void 8036: merge(list& __x) 8036: { merge(std::move(__x)); } 8036: # 1769 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: void 8036: merge(list&& __x, _StrictWeakOrdering __comp); 8036: 8036: template 8036: void 8036: merge(list& __x, _StrictWeakOrdering __comp) 8036: { merge(std::move(__x), __comp); } 8036: # 1788 "/usr/include/c++/8/bits/stl_list.h" 3 8036: void 8036: reverse() noexcept 8036: { this->_M_impl._M_node._M_reverse(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: sort(); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: sort(_StrictWeakOrdering); 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8036: { _M_fill_initialize(static_cast(__n), __x); } 8036: 8036: 8036: template 8036: void 8036: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8036: __false_type) 8036: { 8036: for (; __first != __last; ++__first) 8036: 8036: emplace_back(*__first); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: void 8036: _M_fill_initialize(size_type __n, const value_type& __x) 8036: { 8036: for (; __n; --__n) 8036: push_back(__x); 8036: } 8036: 8036: 8036: 8036: void 8036: _M_default_initialize(size_type __n) 8036: { 8036: for (; __n; --__n) 8036: emplace_back(); 8036: } 8036: 8036: 8036: void 8036: _M_default_append(size_type __n); 8036: # 1866 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: void 8036: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8036: { _M_fill_assign(__n, __val); } 8036: 8036: 8036: template 8036: void 8036: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8036: __false_type); 8036: 8036: 8036: 8036: void 8036: _M_fill_assign(size_type __n, const value_type& __val); 8036: 8036: 8036: 8036: void 8036: _M_transfer(iterator __position, iterator __first, iterator __last) 8036: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } 8036: # 1898 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: void 8036: _M_insert(iterator __position, _Args&&... __args) 8036: { 8036: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8036: __tmp->_M_hook(__position._M_node); 8036: this->_M_inc_size(1); 8036: } 8036: 8036: 8036: 8036: void 8036: _M_erase(iterator __position) noexcept 8036: { 8036: this->_M_dec_size(1); 8036: __position._M_node->_M_unhook(); 8036: _Node* __n = static_cast<_Node*>(__position._M_node); 8036: 8036: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); 8036: 8036: 8036: 8036: 8036: _M_put_node(__n); 8036: } 8036: 8036: 8036: void 8036: _M_check_equal_allocators(list& __x) noexcept 8036: { 8036: if (std::__alloc_neq:: 8036: _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) 8036: __builtin_abort(); 8036: } 8036: 8036: 8036: const_iterator 8036: _M_resize_pos(size_type& __new_size) const; 8036: 8036: 8036: void 8036: _M_move_assign(list&& __x, true_type) noexcept 8036: { 8036: this->_M_clear(); 8036: this->_M_move_nodes(std::move(__x)); 8036: std::__alloc_on_move(this->_M_get_Node_allocator(), 8036: __x._M_get_Node_allocator()); 8036: } 8036: 8036: void 8036: _M_move_assign(list&& __x, false_type) 8036: { 8036: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8036: _M_move_assign(std::move(__x), true_type{}); 8036: else 8036: 8036: 8036: _M_assign_dispatch(std::__make_move_if_noexcept_iterator(__x.begin()), 8036: std::__make_move_if_noexcept_iterator(__x.end()), 8036: __false_type{}); 8036: } 8036: 8036: }; 8036: # 1972 "/usr/include/c++/8/bits/stl_list.h" 3 8036: } 8036: # 1984 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: inline bool 8036: operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { 8036: 8036: if (__x.size() != __y.size()) 8036: return false; 8036: 8036: 8036: typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; 8036: const_iterator __end1 = __x.end(); 8036: const_iterator __end2 = __y.end(); 8036: 8036: const_iterator __i1 = __x.begin(); 8036: const_iterator __i2 = __y.begin(); 8036: while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) 8036: { 8036: ++__i1; 8036: ++__i2; 8036: } 8036: return __i1 == __end1 && __i2 == __end2; 8036: } 8036: # 2018 "/usr/include/c++/8/bits/stl_list.h" 3 8036: template 8036: inline bool 8036: operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { return std::lexicographical_compare(__x.begin(), __x.end(), 8036: __y.begin(), __y.end()); } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { return !(__x == __y); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { return __y < __x; } 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { return !(__y < __x); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: template 8036: inline void 8036: swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline ptrdiff_t 8036: __distance(std::_List_iterator<_Tp> __first, 8036: std::_List_iterator<_Tp> __last, 8036: input_iterator_tag __tag) 8036: { 8036: typedef std::_List_const_iterator<_Tp> _CIter; 8036: return std::__distance(_CIter(__first), _CIter(__last), __tag); 8036: } 8036: 8036: template 8036: inline ptrdiff_t 8036: __distance(std::_List_const_iterator<_Tp> __first, 8036: std::_List_const_iterator<_Tp> __last, 8036: input_iterator_tag) 8036: { 8036: typedef __detail::_List_node_header _Sentinel; 8036: std::_List_const_iterator<_Tp> __beyond = __last; 8036: ++__beyond; 8036: const bool __whole = __first == __beyond; 8036: if (__builtin_constant_p (__whole) && __whole) 8036: return static_cast(__last._M_node)->_M_size; 8036: 8036: ptrdiff_t __n = 0; 8036: while (__first != __last) 8036: { 8036: ++__first; 8036: ++__n; 8036: } 8036: return __n; 8036: } 8036: 8036: 8036: 8036: } 8036: # 64 "/usr/include/c++/8/list" 2 3 8036: # 1 "/usr/include/c++/8/bits/list.tcc" 1 3 8036: # 59 "/usr/include/c++/8/bits/list.tcc" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: void 8036: _List_base<_Tp, _Alloc>:: 8036: _M_clear() noexcept 8036: { 8036: typedef _List_node<_Tp> _Node; 8036: __detail::_List_node_base* __cur = _M_impl._M_node._M_next; 8036: while (__cur != &_M_impl._M_node) 8036: { 8036: _Node* __tmp = static_cast<_Node*>(__cur); 8036: __cur = __tmp->_M_next; 8036: _Tp* __val = __tmp->_M_valptr(); 8036: 8036: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); 8036: 8036: 8036: 8036: _M_put_node(__tmp); 8036: } 8036: } 8036: 8036: 8036: template 8036: template 8036: typename list<_Tp, _Alloc>::iterator 8036: list<_Tp, _Alloc>:: 8036: emplace(const_iterator __position, _Args&&... __args) 8036: { 8036: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8036: __tmp->_M_hook(__position._M_const_cast()._M_node); 8036: this->_M_inc_size(1); 8036: return iterator(__tmp); 8036: } 8036: 8036: 8036: template 8036: typename list<_Tp, _Alloc>::iterator 8036: list<_Tp, _Alloc>:: 8036: 8036: insert(const_iterator __position, const value_type& __x) 8036: 8036: 8036: 8036: { 8036: _Node* __tmp = _M_create_node(__x); 8036: __tmp->_M_hook(__position._M_const_cast()._M_node); 8036: this->_M_inc_size(1); 8036: return iterator(__tmp); 8036: } 8036: 8036: 8036: template 8036: typename list<_Tp, _Alloc>::iterator 8036: list<_Tp, _Alloc>:: 8036: insert(const_iterator __position, size_type __n, const value_type& __x) 8036: { 8036: if (__n) 8036: { 8036: list __tmp(__n, __x, get_allocator()); 8036: iterator __it = __tmp.begin(); 8036: splice(__position, __tmp); 8036: return __it; 8036: } 8036: return __position._M_const_cast(); 8036: } 8036: 8036: template 8036: template 8036: typename list<_Tp, _Alloc>::iterator 8036: list<_Tp, _Alloc>:: 8036: insert(const_iterator __position, _InputIterator __first, 8036: _InputIterator __last) 8036: { 8036: list __tmp(__first, __last, get_allocator()); 8036: if (!__tmp.empty()) 8036: { 8036: iterator __it = __tmp.begin(); 8036: splice(__position, __tmp); 8036: return __it; 8036: } 8036: return __position._M_const_cast(); 8036: } 8036: 8036: 8036: template 8036: typename list<_Tp, _Alloc>::iterator 8036: list<_Tp, _Alloc>:: 8036: 8036: erase(const_iterator __position) noexcept 8036: 8036: 8036: 8036: { 8036: iterator __ret = iterator(__position._M_node->_M_next); 8036: _M_erase(__position._M_const_cast()); 8036: return __ret; 8036: } 8036: # 173 "/usr/include/c++/8/bits/list.tcc" 3 8036: template 8036: typename list<_Tp, _Alloc>::const_iterator 8036: list<_Tp, _Alloc>:: 8036: _M_resize_pos(size_type& __new_size) const 8036: { 8036: const_iterator __i; 8036: 8036: const size_type __len = size(); 8036: if (__new_size < __len) 8036: { 8036: if (__new_size <= __len / 2) 8036: { 8036: __i = begin(); 8036: std::advance(__i, __new_size); 8036: } 8036: else 8036: { 8036: __i = end(); 8036: ptrdiff_t __num_erase = __len - __new_size; 8036: std::advance(__i, -__num_erase); 8036: } 8036: __new_size = 0; 8036: return __i; 8036: } 8036: else 8036: __i = end(); 8036: 8036: 8036: 8036: 8036: 8036: __new_size -= __len; 8036: return __i; 8036: } 8036: 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: _M_default_append(size_type __n) 8036: { 8036: size_type __i = 0; 8036: if (true) 8036: { 8036: for (; __i < __n; ++__i) 8036: emplace_back(); 8036: } 8036: if (false) 8036: { 8036: for (; __i; --__i) 8036: pop_back(); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: resize(size_type __new_size) 8036: { 8036: const_iterator __i = _M_resize_pos(__new_size); 8036: if (__new_size) 8036: _M_default_append(__new_size); 8036: else 8036: erase(__i, end()); 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: resize(size_type __new_size, const value_type& __x) 8036: { 8036: const_iterator __i = _M_resize_pos(__new_size); 8036: if (__new_size) 8036: insert(end(), __new_size, __x); 8036: else 8036: erase(__i, end()); 8036: } 8036: # 265 "/usr/include/c++/8/bits/list.tcc" 3 8036: template 8036: list<_Tp, _Alloc>& 8036: list<_Tp, _Alloc>:: 8036: operator=(const list& __x) 8036: { 8036: if (this != std::__addressof(__x)) 8036: { 8036: 8036: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 8036: { 8036: auto& __this_alloc = this->_M_get_Node_allocator(); 8036: auto& __that_alloc = __x._M_get_Node_allocator(); 8036: if (!_Node_alloc_traits::_S_always_equal() 8036: && __this_alloc != __that_alloc) 8036: { 8036: 8036: clear(); 8036: } 8036: std::__alloc_on_copy(__this_alloc, __that_alloc); 8036: } 8036: 8036: _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: _M_fill_assign(size_type __n, const value_type& __val) 8036: { 8036: iterator __i = begin(); 8036: for (; __i != end() && __n > 0; ++__i, --__n) 8036: *__i = __val; 8036: if (__n > 0) 8036: insert(end(), __n, __val); 8036: else 8036: erase(__i, end()); 8036: } 8036: 8036: template 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, 8036: __false_type) 8036: { 8036: iterator __first1 = begin(); 8036: iterator __last1 = end(); 8036: for (; __first1 != __last1 && __first2 != __last2; 8036: ++__first1, ++__first2) 8036: *__first1 = *__first2; 8036: if (__first2 == __last2) 8036: erase(__first1, __last1); 8036: else 8036: insert(__last1, __first2, __last2); 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: remove(const value_type& __value) 8036: { 8036: iterator __first = begin(); 8036: iterator __last = end(); 8036: iterator __extra = __last; 8036: while (__first != __last) 8036: { 8036: iterator __next = __first; 8036: ++__next; 8036: if (*__first == __value) 8036: { 8036: 8036: 8036: 8036: if (std::__addressof(*__first) != std::__addressof(__value)) 8036: _M_erase(__first); 8036: else 8036: __extra = __first; 8036: } 8036: __first = __next; 8036: } 8036: if (__extra != __last) 8036: _M_erase(__extra); 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: unique() 8036: { 8036: iterator __first = begin(); 8036: iterator __last = end(); 8036: if (__first == __last) 8036: return; 8036: iterator __next = __first; 8036: while (++__next != __last) 8036: { 8036: if (*__first == *__next) 8036: _M_erase(__next); 8036: else 8036: __first = __next; 8036: __next = __first; 8036: } 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: 8036: merge(list&& __x) 8036: 8036: 8036: 8036: { 8036: 8036: 8036: if (this != std::__addressof(__x)) 8036: { 8036: _M_check_equal_allocators(__x); 8036: 8036: iterator __first1 = begin(); 8036: iterator __last1 = end(); 8036: iterator __first2 = __x.begin(); 8036: iterator __last2 = __x.end(); 8036: const size_t __orig_size = __x.size(); 8036: if (true) { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (*__first2 < *__first1) 8036: { 8036: iterator __next = __first2; 8036: _M_transfer(__first1, __first2, ++__next); 8036: __first2 = __next; 8036: } 8036: else 8036: ++__first1; 8036: if (__first2 != __last2) 8036: _M_transfer(__last1, __first2, __last2); 8036: 8036: this->_M_inc_size(__x._M_get_size()); 8036: __x._M_set_size(0); 8036: } 8036: if (false) 8036: { 8036: const size_t __dist = std::distance(__first2, __last2); 8036: this->_M_inc_size(__orig_size - __dist); 8036: __x._M_set_size(__dist); 8036: ; 8036: } 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: 8036: merge(list&& __x, _StrictWeakOrdering __comp) 8036: 8036: 8036: 8036: { 8036: 8036: 8036: if (this != std::__addressof(__x)) 8036: { 8036: _M_check_equal_allocators(__x); 8036: 8036: iterator __first1 = begin(); 8036: iterator __last1 = end(); 8036: iterator __first2 = __x.begin(); 8036: iterator __last2 = __x.end(); 8036: const size_t __orig_size = __x.size(); 8036: if (true) 8036: { 8036: while (__first1 != __last1 && __first2 != __last2) 8036: if (__comp(*__first2, *__first1)) 8036: { 8036: iterator __next = __first2; 8036: _M_transfer(__first1, __first2, ++__next); 8036: __first2 = __next; 8036: } 8036: else 8036: ++__first1; 8036: if (__first2 != __last2) 8036: _M_transfer(__last1, __first2, __last2); 8036: 8036: this->_M_inc_size(__x._M_get_size()); 8036: __x._M_set_size(0); 8036: } 8036: if (false) 8036: { 8036: const size_t __dist = std::distance(__first2, __last2); 8036: this->_M_inc_size(__orig_size - __dist); 8036: __x._M_set_size(__dist); 8036: ; 8036: } 8036: } 8036: } 8036: 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: sort() 8036: { 8036: 8036: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8036: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8036: { 8036: list __carry; 8036: list __tmp[64]; 8036: list * __fill = __tmp; 8036: list * __counter; 8036: if (true) 8036: { 8036: do 8036: { 8036: __carry.splice(__carry.begin(), *this, begin()); 8036: 8036: for(__counter = __tmp; 8036: __counter != __fill && !__counter->empty(); 8036: ++__counter) 8036: { 8036: __counter->merge(__carry); 8036: __carry.swap(*__counter); 8036: } 8036: __carry.swap(*__counter); 8036: if (__counter == __fill) 8036: ++__fill; 8036: } 8036: while ( !empty() ); 8036: 8036: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8036: __counter->merge(*(__counter - 1)); 8036: swap( *(__fill - 1) ); 8036: } 8036: if (false) 8036: { 8036: this->splice(this->end(), __carry); 8036: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8036: this->splice(this->end(), __tmp[__i]); 8036: ; 8036: } 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: remove_if(_Predicate __pred) 8036: { 8036: iterator __first = begin(); 8036: iterator __last = end(); 8036: while (__first != __last) 8036: { 8036: iterator __next = __first; 8036: ++__next; 8036: if (__pred(*__first)) 8036: _M_erase(__first); 8036: __first = __next; 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: unique(_BinaryPredicate __binary_pred) 8036: { 8036: iterator __first = begin(); 8036: iterator __last = end(); 8036: if (__first == __last) 8036: return; 8036: iterator __next = __first; 8036: while (++__next != __last) 8036: { 8036: if (__binary_pred(*__first, *__next)) 8036: _M_erase(__next); 8036: else 8036: __first = __next; 8036: __next = __first; 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: list<_Tp, _Alloc>:: 8036: sort(_StrictWeakOrdering __comp) 8036: { 8036: 8036: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8036: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8036: { 8036: list __carry; 8036: list __tmp[64]; 8036: list * __fill = __tmp; 8036: list * __counter; 8036: if (true) 8036: { 8036: do 8036: { 8036: __carry.splice(__carry.begin(), *this, begin()); 8036: 8036: for(__counter = __tmp; 8036: __counter != __fill && !__counter->empty(); 8036: ++__counter) 8036: { 8036: __counter->merge(__carry, __comp); 8036: __carry.swap(*__counter); 8036: } 8036: __carry.swap(*__counter); 8036: if (__counter == __fill) 8036: ++__fill; 8036: } 8036: while ( !empty() ); 8036: 8036: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8036: __counter->merge(*(__counter - 1), __comp); 8036: swap(*(__fill - 1)); 8036: } 8036: if (false) 8036: { 8036: this->splice(this->end(), __carry); 8036: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8036: this->splice(this->end(), __tmp[__i]); 8036: ; 8036: } 8036: } 8036: } 8036: 8036: 8036: 8036: } 8036: # 65 "/usr/include/c++/8/list" 2 3 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8036: # 36 "/usr/include/c++/8/stdlib.h" 3 4 8036: # 1 "/usr/include/c++/8/cstdlib" 1 3 4 8036: # 39 "/usr/include/c++/8/cstdlib" 3 4 8036: 8036: # 40 "/usr/include/c++/8/cstdlib" 3 8036: # 37 "/usr/include/c++/8/stdlib.h" 2 3 4 8036: 8036: using std::abort; 8036: using std::atexit; 8036: using std::exit; 8036: 8036: 8036: using std::at_quick_exit; 8036: 8036: 8036: using std::quick_exit; 8036: 8036: 8036: 8036: 8036: using std::div_t; 8036: using std::ldiv_t; 8036: 8036: using std::abs; 8036: using std::atof; 8036: using std::atoi; 8036: using std::atol; 8036: using std::bsearch; 8036: using std::calloc; 8036: using std::div; 8036: using std::free; 8036: using std::getenv; 8036: using std::labs; 8036: using std::ldiv; 8036: using std::malloc; 8036: 8036: using std::mblen; 8036: using std::mbstowcs; 8036: using std::mbtowc; 8036: 8036: using std::qsort; 8036: using std::rand; 8036: using std::realloc; 8036: using std::srand; 8036: using std::strtod; 8036: using std::strtol; 8036: using std::strtoul; 8036: using std::system; 8036: 8036: using std::wcstombs; 8036: using std::wctomb; 8036: # 57 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 1 3 4 8036: # 34 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/syslimits.h" 1 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 1 3 4 8036: # 194 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 3 4 8036: # 1 "/usr/include/limits.h" 1 3 4 8036: # 26 "/usr/include/limits.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/libc-header-start.h" 1 3 4 8036: # 27 "/usr/include/limits.h" 2 3 4 8036: # 183 "/usr/include/limits.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/posix1_lim.h" 1 3 4 8036: # 160 "/usr/include/powerpc64le-linux-gnu/bits/posix1_lim.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/local_lim.h" 1 3 4 8036: # 38 "/usr/include/powerpc64le-linux-gnu/bits/local_lim.h" 3 4 8036: # 1 "/usr/include/linux/limits.h" 1 3 4 8036: # 39 "/usr/include/powerpc64le-linux-gnu/bits/local_lim.h" 2 3 4 8036: # 161 "/usr/include/powerpc64le-linux-gnu/bits/posix1_lim.h" 2 3 4 8036: # 184 "/usr/include/limits.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/posix2_lim.h" 1 3 4 8036: # 188 "/usr/include/limits.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/xopen_lim.h" 1 3 4 8036: # 64 "/usr/include/powerpc64le-linux-gnu/bits/xopen_lim.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/uio_lim.h" 1 3 4 8036: # 65 "/usr/include/powerpc64le-linux-gnu/bits/xopen_lim.h" 2 3 4 8036: # 192 "/usr/include/limits.h" 2 3 4 8036: # 195 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 2 3 4 8036: # 8 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/syslimits.h" 2 3 4 8036: # 35 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 2 3 4 8036: # 59 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template class QVector; 8036: template class QSet; 8036: 8036: template struct QListSpecialMethods 8036: { 8036: protected: 8036: ~QListSpecialMethods() {} 8036: }; 8036: template <> struct QListSpecialMethods; 8036: template <> struct QListSpecialMethods; 8036: 8036: struct __attribute__((visibility("default"))) QListData { 8036: 8036: 8036: struct NotArrayCompatibleLayout {}; 8036: struct NotIndirectLayout {}; 8036: struct ArrayCompatibleLayout : NotIndirectLayout {}; 8036: struct InlineWithPaddingLayout : NotArrayCompatibleLayout, NotIndirectLayout {}; 8036: struct IndirectLayout : NotArrayCompatibleLayout {}; 8036: 8036: struct Data { 8036: QtPrivate::RefCount ref; 8036: int alloc, begin, end; 8036: void *array[1]; 8036: }; 8036: enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; 8036: 8036: Data *detach(int alloc); 8036: Data *detach_grow(int *i, int n); 8036: void realloc(int alloc); 8036: void realloc_grow(int growth); 8036: inline void dispose() { dispose(d); } 8036: static void dispose(Data *d); 8036: static const Data shared_null; 8036: Data *d; 8036: void **erase(void **xi); 8036: void **append(int n); 8036: void **append(); 8036: void **append(const QListData &l); 8036: void **prepend(); 8036: void **insert(int i); 8036: void remove(int i); 8036: void remove(int i, int n); 8036: void move(int from, int to); 8036: inline int size() const noexcept { return d->end - d->begin; } 8036: inline bool isEmpty() const noexcept { return d->end == d->begin; } 8036: inline void **at(int i) const noexcept { return d->array + d->begin + i; } 8036: inline void **begin() const noexcept { return d->array + d->begin; } 8036: inline void **end() const noexcept { return d->array + d->end; } 8036: }; 8036: 8036: template 8036: class QList 8036: 8036: : public QListSpecialMethods 8036: 8036: { 8036: public: 8036: struct MemoryLayout 8036: : std::conditional< 8036: 8036: QTypeInfo::isStatic || QTypeInfo::isLarge, 8036: QListData::IndirectLayout, 8036: typename std::conditional< 8036: sizeof(T) == sizeof(void*), 8036: QListData::ArrayCompatibleLayout, 8036: QListData::InlineWithPaddingLayout 8036: >::type>::type {}; 8036: private: 8036: struct Node { void *v; 8036: 8036: 8036: 8036: inline T &t() 8036: { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic 8036: ? v : this); } 8036: 8036: }; 8036: 8036: union { QListData p; QListData::Data *d; }; 8036: 8036: public: 8036: inline QList() noexcept : d(const_cast(&QListData::shared_null)) { } 8036: QList(const QList &l); 8036: ~QList(); 8036: QList &operator=(const QList &l); 8036: 8036: inline QList(QList &&other) noexcept 8036: : d(other.d) { other.d = const_cast(&QListData::shared_null); } 8036: inline QList &operator=(QList &&other) noexcept 8036: { QList moved(std::move(other)); swap(moved); return *this; } 8036: 8036: inline void swap(QList &other) noexcept { qSwap(d, other.d); } 8036: 8036: inline QList(std::initializer_list args) 8036: : d(const_cast(&QListData::shared_null)) 8036: { reserve(int(args.size())); std::copy(args.begin(), args.end(), std::back_inserter(*this)); } 8036: 8036: bool operator==(const QList &l) const; 8036: inline bool operator!=(const QList &l) const { return !(*this == l); } 8036: 8036: inline int size() const noexcept { return p.size(); } 8036: 8036: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8036: 8036: inline void detachShared() 8036: { 8036: 8036: if (d->ref.isShared() && this->d != &QListData::shared_null) 8036: detach_helper(); 8036: } 8036: 8036: inline bool isDetached() const { return !d->ref.isShared(); } 8036: 8036: inline void setSharable(bool sharable) 8036: { 8036: if (sharable == d->ref.isSharable()) 8036: return; 8036: if (!sharable) 8036: detach(); 8036: if (d != &QListData::shared_null) 8036: d->ref.setSharable(sharable); 8036: } 8036: 8036: inline bool isSharedWith(const QList &other) const noexcept { return d == other.d; } 8036: 8036: inline bool isEmpty() const noexcept { return p.isEmpty(); } 8036: 8036: void clear(); 8036: 8036: const T &at(int i) const; 8036: const T &operator[](int i) const; 8036: T &operator[](int i); 8036: 8036: void reserve(int size); 8036: void append(const T &t); 8036: void append(const QList &t); 8036: void prepend(const T &t); 8036: void insert(int i, const T &t); 8036: void replace(int i, const T &t); 8036: void removeAt(int i); 8036: int removeAll(const T &t); 8036: bool removeOne(const T &t); 8036: T takeAt(int i); 8036: T takeFirst(); 8036: T takeLast(); 8036: void move(int from, int to); 8036: void swap(int i, int j); 8036: int indexOf(const T &t, int from = 0) const; 8036: int lastIndexOf(const T &t, int from = -1) const; 8036: bool contains(const T &t) const; 8036: int count(const T &t) const; 8036: 8036: class const_iterator; 8036: 8036: class iterator { 8036: public: 8036: Node *i; 8036: typedef std::random_access_iterator_tag iterator_category; 8036: 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef T *pointer; 8036: typedef T &reference; 8036: 8036: inline iterator() noexcept : i(nullptr) {} 8036: inline iterator(Node *n) noexcept : i(n) {} 8036: 8036: 8036: 8036: inline iterator(const iterator &o) noexcept : i(o.i){} 8036: 8036: inline T &operator*() const { return i->t(); } 8036: inline T *operator->() const { return &i->t(); } 8036: inline T &operator[](difference_type j) const { return i[j].t(); } 8036: inline bool operator==(const iterator &o) const noexcept { return i == o.i; } 8036: inline bool operator!=(const iterator &o) const noexcept { return i != o.i; } 8036: inline bool operator<(const iterator& other) const noexcept { return i < other.i; } 8036: inline bool operator<=(const iterator& other) const noexcept { return i <= other.i; } 8036: inline bool operator>(const iterator& other) const noexcept { return i > other.i; } 8036: inline bool operator>=(const iterator& other) const noexcept { return i >= other.i; } 8036: 8036: inline bool operator==(const const_iterator &o) const noexcept 8036: { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const noexcept 8036: { return i != o.i; } 8036: inline bool operator<(const const_iterator& other) const noexcept 8036: { return i < other.i; } 8036: inline bool operator<=(const const_iterator& other) const noexcept 8036: { return i <= other.i; } 8036: inline bool operator>(const const_iterator& other) const noexcept 8036: { return i > other.i; } 8036: inline bool operator>=(const const_iterator& other) const noexcept 8036: { return i >= other.i; } 8036: 8036: inline iterator &operator++() { ++i; return *this; } 8036: inline iterator operator++(int) { Node *n = i; ++i; return n; } 8036: inline iterator &operator--() { i--; return *this; } 8036: inline iterator operator--(int) { Node *n = i; i--; return n; } 8036: inline iterator &operator+=(difference_type j) { i+=j; return *this; } 8036: inline iterator &operator-=(difference_type j) { i-=j; return *this; } 8036: inline iterator operator+(difference_type j) const { return iterator(i+j); } 8036: inline iterator operator-(difference_type j) const { return iterator(i-j); } 8036: inline int operator-(iterator j) const { return int(i - j.i); } 8036: }; 8036: friend class iterator; 8036: 8036: class const_iterator { 8036: public: 8036: Node *i; 8036: typedef std::random_access_iterator_tag iterator_category; 8036: 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef const T *pointer; 8036: typedef const T &reference; 8036: 8036: inline const_iterator() noexcept : i(nullptr) {} 8036: inline const_iterator(Node *n) noexcept : i(n) {} 8036: 8036: 8036: 8036: inline const_iterator(const const_iterator &o) noexcept : i(o.i) {} 8036: 8036: 8036: 8036: 8036: inline const_iterator(const iterator &o) noexcept : i(o.i) {} 8036: 8036: inline const T &operator*() const { return i->t(); } 8036: inline const T *operator->() const { return &i->t(); } 8036: inline const T &operator[](difference_type j) const { return i[j].t(); } 8036: inline bool operator==(const const_iterator &o) const noexcept { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const noexcept { return i != o.i; } 8036: inline bool operator<(const const_iterator& other) const noexcept { return i < other.i; } 8036: inline bool operator<=(const const_iterator& other) const noexcept { return i <= other.i; } 8036: inline bool operator>(const const_iterator& other) const noexcept { return i > other.i; } 8036: inline bool operator>=(const const_iterator& other) const noexcept { return i >= other.i; } 8036: inline const_iterator &operator++() { ++i; return *this; } 8036: inline const_iterator operator++(int) { Node *n = i; ++i; return n; } 8036: inline const_iterator &operator--() { i--; return *this; } 8036: inline const_iterator operator--(int) { Node *n = i; i--; return n; } 8036: inline const_iterator &operator+=(difference_type j) { i+=j; return *this; } 8036: inline const_iterator &operator-=(difference_type j) { i-=j; return *this; } 8036: inline const_iterator operator+(difference_type j) const { return const_iterator(i+j); } 8036: inline const_iterator operator-(difference_type j) const { return const_iterator(i-j); } 8036: inline int operator-(const_iterator j) const { return int(i - j.i); } 8036: }; 8036: friend class const_iterator; 8036: 8036: 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } 8036: inline const_iterator begin() const noexcept { return reinterpret_cast(p.begin()); } 8036: inline const_iterator cbegin() const noexcept { return reinterpret_cast(p.begin()); } 8036: inline const_iterator constBegin() const noexcept { return reinterpret_cast(p.begin()); } 8036: inline iterator end() { detach(); return reinterpret_cast(p.end()); } 8036: inline const_iterator end() const noexcept { return reinterpret_cast(p.end()); } 8036: inline const_iterator cend() const noexcept { return reinterpret_cast(p.end()); } 8036: inline const_iterator constEnd() const noexcept { return reinterpret_cast(p.end()); } 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8036: iterator insert(iterator before, const T &t); 8036: iterator erase(iterator pos); 8036: iterator erase(iterator first, iterator last); 8036: 8036: 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: inline int count() const { return p.size(); } 8036: inline int length() const { return p.size(); } 8036: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline const T& constFirst() const { return first(); } 8036: inline const T& first() const { do { } while ((false) && (!isEmpty())); return at(0); } 8036: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8036: const T& last() const { do { } while ((false) && (!isEmpty())); return at(count() - 1); } 8036: inline const T& constLast() const { return last(); } 8036: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8036: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8036: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8036: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8036: QList mid(int pos, int length = -1) const; 8036: 8036: T value(int i) const; 8036: T value(int i, const T &defaultValue) const; 8036: 8036: 8036: inline void push_back(const T &t) { append(t); } 8036: inline void push_front(const T &t) { prepend(t); } 8036: inline T& front() { return first(); } 8036: inline const T& front() const { return first(); } 8036: inline T& back() { return last(); } 8036: inline const T& back() const { return last(); } 8036: inline void pop_front() { removeFirst(); } 8036: inline void pop_back() { removeLast(); } 8036: inline bool empty() const { return isEmpty(); } 8036: typedef int size_type; 8036: typedef T value_type; 8036: typedef value_type *pointer; 8036: typedef const value_type *const_pointer; 8036: typedef value_type &reference; 8036: typedef const value_type &const_reference; 8036: 8036: typedef qptrdiff difference_type; 8036: 8036: 8036: QList &operator+=(const QList &l); 8036: inline QList operator+(const QList &l) const 8036: { QList n = *this; n += l; return n; } 8036: inline QList &operator+=(const T &t) 8036: { append(t); return *this; } 8036: inline QList &operator<< (const T &t) 8036: { append(t); return *this; } 8036: inline QList &operator<<(const QList &l) 8036: { *this += l; return *this; } 8036: 8036: QVector toVector() const; 8036: QSet toSet() const; 8036: 8036: static QList fromVector(const QVector &vector); 8036: static QList fromSet(const QSet &set); 8036: 8036: static inline QList fromStdList(const std::list &list) 8036: { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8036: inline std::list toStdList() const 8036: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8036: 8036: private: 8036: Node *detach_helper_grow(int i, int n); 8036: void detach_helper(int alloc); 8036: void detach_helper(); 8036: void dealloc(QListData::Data *d); 8036: 8036: void node_construct(Node *n, const T &t); 8036: void node_destruct(Node *n); 8036: void node_copy(Node *from, Node *to, Node *src); 8036: void node_destruct(Node *from, Node *to); 8036: 8036: bool isValidIterator(const iterator &i) const noexcept 8036: { 8036: return (constBegin().i <= i.i) && (i.i <= constEnd().i); 8036: } 8036: 8036: private: 8036: inline bool op_eq_impl(const QList &other, QListData::NotArrayCompatibleLayout) const; 8036: inline bool op_eq_impl(const QList &other, QListData::ArrayCompatibleLayout) const; 8036: inline bool contains_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8036: inline bool contains_impl(const T &, QListData::ArrayCompatibleLayout) const; 8036: inline int count_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8036: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline void QList::node_construct(Node *n, const T &t) 8036: { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); 8036: else if (QTypeInfo::isComplex) new (n) T(t); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: else ::memcpy(n, static_cast(&t), sizeof(T)); 8036: 8036: } 8036: 8036: template 8036: inline void QList::node_destruct(Node *n) 8036: { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); 8036: else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); 8036: } 8036: 8036: template 8036: inline void QList::node_copy(Node *from, Node *to, Node *src) 8036: { 8036: Node *current = from; 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8036: if (true) { 8036: while(current != to) { 8036: current->v = new T(*reinterpret_cast(src->v)); 8036: ++current; 8036: ++src; 8036: } 8036: } else { 8036: while (current-- != from) 8036: delete reinterpret_cast(current->v); 8036: qt_noop(); 8036: } 8036: 8036: } else if (QTypeInfo::isComplex) { 8036: if (true) { 8036: while(current != to) { 8036: new (current) T(*reinterpret_cast(src)); 8036: ++current; 8036: ++src; 8036: } 8036: } else { 8036: while (current-- != from) 8036: (reinterpret_cast(current))->~T(); 8036: qt_noop(); 8036: } 8036: } else { 8036: if (src != from && to - from > 0) 8036: memcpy(from, src, (to - from) * sizeof(Node)); 8036: } 8036: } 8036: 8036: template 8036: inline void QList::node_destruct(Node *from, Node *to) 8036: { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) 8036: while(from != to) --to, delete reinterpret_cast(to->v); 8036: else if (QTypeInfo::isComplex) 8036: while (from != to) --to, reinterpret_cast(to)->~T(); 8036: } 8036: 8036: template 8036: inline QList &QList::operator=(const QList &l) 8036: { 8036: if (d != l.d) { 8036: QList tmp(l); 8036: tmp.swap(*this); 8036: } 8036: return *this; 8036: } 8036: template 8036: inline typename QList::iterator QList::insert(iterator before, const T &t) 8036: { 8036: do { } while ((false) && (isValidIterator(before))); 8036: 8036: int iBefore = int(before.i - reinterpret_cast(p.begin())); 8036: Node *n = 0; 8036: if (d->ref.isShared()) 8036: n = detach_helper_grow(iBefore, 1); 8036: else 8036: n = reinterpret_cast(p.insert(iBefore)); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: p.remove(iBefore); 8036: qt_noop(); 8036: } 8036: return n; 8036: } 8036: template 8036: inline typename QList::iterator QList::erase(iterator it) 8036: { 8036: do { } while ((false) && (isValidIterator(it))); 8036: if (d->ref.isShared()) { 8036: int offset = int(it.i - reinterpret_cast(p.begin())); 8036: it = begin(); 8036: it += offset; 8036: } 8036: node_destruct(it.i); 8036: return reinterpret_cast(p.erase(reinterpret_cast(it.i))); 8036: } 8036: template 8036: inline const T &QList::at(int i) const 8036: { do { } while ((false) && (i >= 0 && i < p.size())); 8036: return reinterpret_cast(p.at(i))->t(); } 8036: template 8036: inline const T &QList::operator[](int i) const 8036: { do { } while ((false) && (i >= 0 && i < p.size())); 8036: return reinterpret_cast(p.at(i))->t(); } 8036: template 8036: inline T &QList::operator[](int i) 8036: { do { } while ((false) && (i >= 0 && i < p.size())); 8036: detach(); return reinterpret_cast(p.at(i))->t(); } 8036: template 8036: inline void QList::removeAt(int i) 8036: { if(i >= 0 && i < p.size()) { detach(); 8036: node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } 8036: template 8036: inline T QList::takeAt(int i) 8036: { do { } while ((false) && (i >= 0 && i < p.size())); 8036: detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); 8036: p.remove(i); return t; } 8036: template 8036: inline T QList::takeFirst() 8036: { T t = first(); removeFirst(); return t; } 8036: template 8036: inline T QList::takeLast() 8036: { T t = last(); removeLast(); return t; } 8036: 8036: template 8036: void QList::reserve(int alloc) 8036: { 8036: if (d->alloc < alloc) { 8036: if (d->ref.isShared()) 8036: detach_helper(alloc); 8036: else 8036: p.realloc(alloc); 8036: } 8036: } 8036: 8036: template 8036: void QList::append(const T &t) 8036: { 8036: if (d->ref.isShared()) { 8036: Node *n = detach_helper_grow(0x7fffffff, 1); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: --d->end; 8036: qt_noop(); 8036: } 8036: } else { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8036: Node *n = reinterpret_cast(p.append()); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: --d->end; 8036: qt_noop(); 8036: } 8036: } else { 8036: Node *n, copy; 8036: node_construct(©, t); 8036: if (true) { 8036: n = reinterpret_cast(p.append());; 8036: } else { 8036: node_destruct(©); 8036: qt_noop(); 8036: } 8036: *n = copy; 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline void QList::prepend(const T &t) 8036: { 8036: if (d->ref.isShared()) { 8036: Node *n = detach_helper_grow(0, 1); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: ++d->begin; 8036: qt_noop(); 8036: } 8036: } else { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8036: Node *n = reinterpret_cast(p.prepend()); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: ++d->begin; 8036: qt_noop(); 8036: } 8036: } else { 8036: Node *n, copy; 8036: node_construct(©, t); 8036: if (true) { 8036: n = reinterpret_cast(p.prepend());; 8036: } else { 8036: node_destruct(©); 8036: qt_noop(); 8036: } 8036: *n = copy; 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline void QList::insert(int i, const T &t) 8036: { 8036: if (d->ref.isShared()) { 8036: Node *n = detach_helper_grow(i, 1); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: p.remove(i); 8036: qt_noop(); 8036: } 8036: } else { 8036: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8036: Node *n = reinterpret_cast(p.insert(i)); 8036: if (true) { 8036: node_construct(n, t); 8036: } else { 8036: p.remove(i); 8036: qt_noop(); 8036: } 8036: } else { 8036: Node *n, copy; 8036: node_construct(©, t); 8036: if (true) { 8036: n = reinterpret_cast(p.insert(i));; 8036: } else { 8036: node_destruct(©); 8036: qt_noop(); 8036: } 8036: *n = copy; 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline void QList::replace(int i, const T &t) 8036: { 8036: do { } while ((false) && (i >= 0 && i < p.size())); 8036: detach(); 8036: reinterpret_cast(p.at(i))->t() = t; 8036: } 8036: 8036: template 8036: inline void QList::swap(int i, int j) 8036: { 8036: do { } while ((false) && (i >= 0 && i < p.size() && j >= 0 && j < p.size())) 8036: ; 8036: detach(); 8036: std::swap(d->array[d->begin + i], d->array[d->begin + j]); 8036: } 8036: 8036: template 8036: inline void QList::move(int from, int to) 8036: { 8036: do { } while ((false) && (from >= 0 && from < p.size() && to >= 0 && to < p.size())) 8036: ; 8036: detach(); 8036: p.move(from, to); 8036: } 8036: 8036: template 8036: QList QList::mid(int pos, int alength) const 8036: { 8036: using namespace QtPrivate; 8036: switch (QContainerImplHelper::mid(size(), &pos, &alength)) { 8036: case QContainerImplHelper::Null: 8036: case QContainerImplHelper::Empty: 8036: return QList(); 8036: case QContainerImplHelper::Full: 8036: return *this; 8036: case QContainerImplHelper::Subset: 8036: break; 8036: } 8036: 8036: QList cpy; 8036: if (alength <= 0) 8036: return cpy; 8036: cpy.reserve(alength); 8036: cpy.d->end = alength; 8036: if (true) { 8036: cpy.node_copy(reinterpret_cast(cpy.p.begin()), 8036: reinterpret_cast(cpy.p.end()), 8036: reinterpret_cast(p.begin() + pos)); 8036: } else { 8036: 8036: cpy.d->end = 0; 8036: qt_noop(); 8036: } 8036: return cpy; 8036: } 8036: 8036: template 8036: T QList::value(int i) const 8036: { 8036: if (i < 0 || i >= p.size()) { 8036: return T(); 8036: } 8036: return reinterpret_cast(p.at(i))->t(); 8036: } 8036: 8036: template 8036: T QList::value(int i, const T& defaultValue) const 8036: { 8036: return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); 8036: } 8036: 8036: template 8036: typename QList::Node *QList::detach_helper_grow(int i, int c) 8036: { 8036: Node *n = reinterpret_cast(p.begin()); 8036: QListData::Data *x = p.detach_grow(&i, c); 8036: if (true) { 8036: node_copy(reinterpret_cast(p.begin()), 8036: reinterpret_cast(p.begin() + i), n); 8036: } else { 8036: p.dispose(); 8036: d = x; 8036: qt_noop(); 8036: } 8036: if (true) { 8036: node_copy(reinterpret_cast(p.begin() + i + c), 8036: reinterpret_cast(p.end()), n + i); 8036: } else { 8036: node_destruct(reinterpret_cast(p.begin()), 8036: reinterpret_cast(p.begin() + i)); 8036: p.dispose(); 8036: d = x; 8036: qt_noop(); 8036: } 8036: 8036: if (!x->ref.deref()) 8036: dealloc(x); 8036: 8036: return reinterpret_cast(p.begin() + i); 8036: } 8036: 8036: template 8036: void QList::detach_helper(int alloc) 8036: { 8036: Node *n = reinterpret_cast(p.begin()); 8036: QListData::Data *x = p.detach(alloc); 8036: if (true) { 8036: node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); 8036: } else { 8036: p.dispose(); 8036: d = x; 8036: qt_noop(); 8036: } 8036: 8036: if (!x->ref.deref()) 8036: dealloc(x); 8036: } 8036: 8036: template 8036: void QList::detach_helper() 8036: { 8036: detach_helper(d->alloc); 8036: } 8036: 8036: template 8036: QList::QList(const QList &l) 8036: : QListSpecialMethods(l), d(l.d) 8036: { 8036: if (!d->ref.ref()) { 8036: p.detach(d->alloc); 8036: 8036: if (true) { 8036: node_copy(reinterpret_cast(p.begin()), 8036: reinterpret_cast(p.end()), 8036: reinterpret_cast(l.p.begin())); 8036: } else { 8036: QListData::dispose(d); 8036: qt_noop(); 8036: } 8036: } 8036: } 8036: 8036: template 8036: QList::~QList() 8036: { 8036: if (!d->ref.deref()) 8036: dealloc(d); 8036: } 8036: 8036: template 8036: bool QList::operator==(const QList &l) const 8036: { 8036: if (d == l.d) 8036: return true; 8036: if (p.size() != l.p.size()) 8036: return false; 8036: return this->op_eq_impl(l, MemoryLayout()); 8036: } 8036: 8036: template 8036: inline bool QList::op_eq_impl(const QList &l, QListData::NotArrayCompatibleLayout) const 8036: { 8036: Node *i = reinterpret_cast(p.begin()); 8036: Node *e = reinterpret_cast(p.end()); 8036: Node *li = reinterpret_cast(l.p.begin()); 8036: for (; i != e; ++i, ++li) { 8036: if (!(i->t() == li->t())) 8036: return false; 8036: } 8036: return true; 8036: } 8036: 8036: template 8036: inline bool QList::op_eq_impl(const QList &l, QListData::ArrayCompatibleLayout) const 8036: { 8036: const T *lb = reinterpret_cast(l.p.begin()); 8036: const T *b = reinterpret_cast(p.begin()); 8036: const T *e = reinterpret_cast(p.end()); 8036: return std::equal(b, e, (lb)); 8036: } 8036: 8036: template 8036: void QList::dealloc(QListData::Data *data) 8036: { 8036: node_destruct(reinterpret_cast(data->array + data->begin), 8036: reinterpret_cast(data->array + data->end)); 8036: QListData::dispose(data); 8036: } 8036: 8036: 8036: template 8036: void QList::clear() 8036: { 8036: *this = QList(); 8036: } 8036: 8036: template 8036: int QList::removeAll(const T &_t) 8036: { 8036: int index = indexOf(_t); 8036: if (index == -1) 8036: return 0; 8036: 8036: const T t = _t; 8036: detach(); 8036: 8036: Node *i = reinterpret_cast(p.at(index)); 8036: Node *e = reinterpret_cast(p.end()); 8036: Node *n = i; 8036: node_destruct(i); 8036: while (++i != e) { 8036: if (i->t() == t) 8036: node_destruct(i); 8036: else 8036: *n++ = *i; 8036: } 8036: 8036: int removedCount = int(e - n); 8036: d->end -= removedCount; 8036: return removedCount; 8036: } 8036: 8036: template 8036: bool QList::removeOne(const T &_t) 8036: { 8036: int index = indexOf(_t); 8036: if (index != -1) { 8036: removeAt(index); 8036: return true; 8036: } 8036: return false; 8036: } 8036: 8036: template 8036: typename QList::iterator QList::erase(typename QList::iterator afirst, 8036: typename QList::iterator alast) 8036: { 8036: do { } while ((false) && (isValidIterator(afirst))); 8036: do { } while ((false) && (isValidIterator(alast))); 8036: 8036: if (d->ref.isShared()) { 8036: 8036: int offsetfirst = int(afirst.i - reinterpret_cast(p.begin())); 8036: int offsetlast = int(alast.i - reinterpret_cast(p.begin())); 8036: afirst = begin(); 8036: alast = afirst; 8036: afirst += offsetfirst; 8036: alast += offsetlast; 8036: } 8036: 8036: for (Node *n = afirst.i; n < alast.i; ++n) 8036: node_destruct(n); 8036: int idx = afirst - begin(); 8036: p.remove(idx, alast - afirst); 8036: return begin() + idx; 8036: } 8036: 8036: template 8036: QList &QList::operator+=(const QList &l) 8036: { 8036: if (!l.isEmpty()) { 8036: if (d == &QListData::shared_null) { 8036: *this = l; 8036: } else { 8036: Node *n = (d->ref.isShared()) 8036: ? detach_helper_grow(0x7fffffff, l.size()) 8036: : reinterpret_cast(p.append(l.p)); 8036: if (true) { 8036: node_copy(n, reinterpret_cast(p.end()), 8036: reinterpret_cast(l.p.begin())); 8036: } else { 8036: 8036: d->end -= int(reinterpret_cast(p.end()) - n); 8036: qt_noop(); 8036: } 8036: } 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline void QList::append(const QList &t) 8036: { 8036: *this += t; 8036: } 8036: 8036: template 8036: int QList::indexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from = qMax(from + p.size(), 0); 8036: if (from < p.size()) { 8036: Node *n = reinterpret_cast(p.at(from -1)); 8036: Node *e = reinterpret_cast(p.end()); 8036: while (++n != e) 8036: if (n->t() == t) 8036: return int(n - reinterpret_cast(p.begin())); 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: int QList::lastIndexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from += p.size(); 8036: else if (from >= p.size()) 8036: from = p.size()-1; 8036: if (from >= 0) { 8036: Node *b = reinterpret_cast(p.begin()); 8036: Node *n = reinterpret_cast(p.at(from + 1)); 8036: while (n-- != b) { 8036: if (n->t() == t) 8036: return n - b; 8036: } 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: bool QList::contains(const T &t) const 8036: { 8036: return contains_impl(t, MemoryLayout()); 8036: } 8036: 8036: template 8036: inline bool QList::contains_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8036: { 8036: Node *e = reinterpret_cast(p.end()); 8036: Node *i = reinterpret_cast(p.begin()); 8036: for (; i != e; ++i) 8036: if (i->t() == t) 8036: return true; 8036: return false; 8036: } 8036: 8036: template 8036: inline bool QList::contains_impl(const T &t, QListData::ArrayCompatibleLayout) const 8036: { 8036: const T *b = reinterpret_cast(p.begin()); 8036: const T *e = reinterpret_cast(p.end()); 8036: return std::find(b, e, t) != e; 8036: } 8036: 8036: template 8036: int QList::count(const T &t) const 8036: { 8036: return this->count_impl(t, MemoryLayout()); 8036: } 8036: 8036: template 8036: inline int QList::count_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8036: { 8036: int c = 0; 8036: Node *e = reinterpret_cast(p.end()); 8036: Node *i = reinterpret_cast(p.begin()); 8036: for (; i != e; ++i) 8036: if (i->t() == t) 8036: ++c; 8036: return c; 8036: } 8036: 8036: template 8036: inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) const 8036: { 8036: return int(std::count(reinterpret_cast(p.begin()), 8036: reinterpret_cast(p.end()), 8036: t)); 8036: } 8036: 8036: template class QListIterator { typedef typename QList::const_iterator const_iterator; QList c; const_iterator i; public: inline QListIterator(const QList &container) : c(container), i(c.constBegin()) {} inline QListIterator &operator=(const QList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8036: template class QMutableListIterator { typedef typename QList::iterator iterator; typedef typename QList::const_iterator const_iterator; QList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableListIterator(QList &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableListIterator &operator=(QList &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8036: 8036: template 8036: uint qHash(const QList &key, uint seed = 0) 8036: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8036: { 8036: return qHashRange(key.cbegin(), key.cend(), seed); 8036: } 8036: 8036: template 8036: bool operator<(const QList &lhs, const QList &rhs) 8036: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8036: 8036: { 8036: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8036: rhs.begin(), rhs.end()); 8036: } 8036: 8036: template 8036: inline bool operator>(const QList &lhs, const QList &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return rhs < lhs; 8036: } 8036: 8036: template 8036: inline bool operator<=(const QList &lhs, const QList &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs > rhs); 8036: } 8036: 8036: template 8036: inline bool operator>=(const QList &lhs, const QList &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs < rhs); 8036: } 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8036: # 42 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearraylist.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearraylist.h" 2 3 4 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnamespace.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8036: 8036: 8036: 8036: struct QMetaObject; 8036: const QMetaObject *qt_getQtMetaObject() noexcept; 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8036: namespace 8036: 8036: 8036: 8036: Qt { 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum GlobalColor { 8036: color0, 8036: color1, 8036: black, 8036: white, 8036: darkGray, 8036: gray, 8036: lightGray, 8036: red, 8036: green, 8036: blue, 8036: cyan, 8036: magenta, 8036: yellow, 8036: darkRed, 8036: darkGreen, 8036: darkBlue, 8036: darkCyan, 8036: darkMagenta, 8036: darkYellow, 8036: transparent 8036: }; 8036: 8036: enum KeyboardModifier { 8036: NoModifier = 0x00000000, 8036: ShiftModifier = 0x02000000, 8036: ControlModifier = 0x04000000, 8036: AltModifier = 0x08000000, 8036: MetaModifier = 0x10000000, 8036: KeypadModifier = 0x20000000, 8036: GroupSwitchModifier = 0x40000000, 8036: 8036: KeyboardModifierMask = 0xfe000000 8036: }; 8036: typedef QFlags KeyboardModifiers; 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum Modifier { 8036: META = Qt::MetaModifier, 8036: SHIFT = Qt::ShiftModifier, 8036: CTRL = Qt::ControlModifier, 8036: ALT = Qt::AltModifier, 8036: MODIFIER_MASK = KeyboardModifierMask, 8036: UNICODE_ACCEL = 0x00000000 8036: }; 8036: 8036: enum MouseButton { 8036: NoButton = 0x00000000, 8036: LeftButton = 0x00000001, 8036: RightButton = 0x00000002, 8036: MidButton = 0x00000004, 8036: MiddleButton = MidButton, 8036: BackButton = 0x00000008, 8036: XButton1 = BackButton, 8036: ExtraButton1 = XButton1, 8036: ForwardButton = 0x00000010, 8036: XButton2 = ForwardButton, 8036: ExtraButton2 = ForwardButton, 8036: TaskButton = 0x00000020, 8036: ExtraButton3 = TaskButton, 8036: ExtraButton4 = 0x00000040, 8036: ExtraButton5 = 0x00000080, 8036: ExtraButton6 = 0x00000100, 8036: ExtraButton7 = 0x00000200, 8036: ExtraButton8 = 0x00000400, 8036: ExtraButton9 = 0x00000800, 8036: ExtraButton10 = 0x00001000, 8036: ExtraButton11 = 0x00002000, 8036: ExtraButton12 = 0x00004000, 8036: ExtraButton13 = 0x00008000, 8036: ExtraButton14 = 0x00010000, 8036: ExtraButton15 = 0x00020000, 8036: ExtraButton16 = 0x00040000, 8036: ExtraButton17 = 0x00080000, 8036: ExtraButton18 = 0x00100000, 8036: ExtraButton19 = 0x00200000, 8036: ExtraButton20 = 0x00400000, 8036: ExtraButton21 = 0x00800000, 8036: ExtraButton22 = 0x01000000, 8036: ExtraButton23 = 0x02000000, 8036: ExtraButton24 = 0x04000000, 8036: AllButtons = 0x07ffffff, 8036: MaxMouseButton = ExtraButton24, 8036: 8036: MouseButtonMask = 0xffffffff 8036: }; 8036: typedef QFlags MouseButtons; 8036: 8036: enum Orientation { 8036: Horizontal = 0x1, 8036: Vertical = 0x2 8036: }; 8036: 8036: typedef QFlags Orientations; 8036: 8036: enum FocusPolicy { 8036: NoFocus = 0, 8036: TabFocus = 0x1, 8036: ClickFocus = 0x2, 8036: StrongFocus = TabFocus | ClickFocus | 0x8, 8036: WheelFocus = StrongFocus | 0x4 8036: }; 8036: 8036: enum TabFocusBehavior { 8036: NoTabFocus = 0x00, 8036: TabFocusTextControls = 0x01, 8036: TabFocusListControls = 0x02, 8036: TabFocusAllControls = 0xff 8036: }; 8036: 8036: enum SortOrder { 8036: AscendingOrder, 8036: DescendingOrder 8036: }; 8036: 8036: enum TileRule { 8036: StretchTile, 8036: RepeatTile, 8036: RoundTile 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: enum AlignmentFlag { 8036: AlignLeft = 0x0001, 8036: AlignLeading = AlignLeft, 8036: AlignRight = 0x0002, 8036: AlignTrailing = AlignRight, 8036: AlignHCenter = 0x0004, 8036: AlignJustify = 0x0008, 8036: AlignAbsolute = 0x0010, 8036: AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, 8036: 8036: AlignTop = 0x0020, 8036: AlignBottom = 0x0040, 8036: AlignVCenter = 0x0080, 8036: AlignBaseline = 0x0100, 8036: 8036: 8036: 8036: 8036: AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline, 8036: 8036: AlignCenter = AlignVCenter | AlignHCenter 8036: }; 8036: 8036: typedef QFlags Alignment; 8036: 8036: enum TextFlag { 8036: TextSingleLine = 0x0100, 8036: TextDontClip = 0x0200, 8036: TextExpandTabs = 0x0400, 8036: TextShowMnemonic = 0x0800, 8036: TextWordWrap = 0x1000, 8036: TextWrapAnywhere = 0x2000, 8036: TextDontPrint = 0x4000, 8036: TextIncludeTrailingSpaces = 0x08000000, 8036: TextHideMnemonic = 0x8000, 8036: TextJustificationForced = 0x10000, 8036: TextForceLeftToRight = 0x20000, 8036: TextForceRightToLeft = 0x40000, 8036: 8036: 8036: TextLongestVariant = 0x80000, 8036: TextBypassShaping = 0x100000 8036: }; 8036: 8036: enum TextElideMode { 8036: ElideLeft, 8036: ElideRight, 8036: ElideMiddle, 8036: ElideNone 8036: }; 8036: 8036: enum WhiteSpaceMode { 8036: WhiteSpaceNormal, 8036: WhiteSpacePre, 8036: WhiteSpaceNoWrap, 8036: WhiteSpaceModeUndefined = -1 8036: }; 8036: 8036: enum HitTestAccuracy { ExactHit, FuzzyHit }; 8036: 8036: enum WindowType { 8036: Widget = 0x00000000, 8036: Window = 0x00000001, 8036: Dialog = 0x00000002 | Window, 8036: Sheet = 0x00000004 | Window, 8036: Drawer = Sheet | Dialog, 8036: Popup = 0x00000008 | Window, 8036: Tool = Popup | Dialog, 8036: ToolTip = Popup | Sheet, 8036: SplashScreen = ToolTip | Dialog, 8036: Desktop = 0x00000010 | Window, 8036: SubWindow = 0x00000012, 8036: ForeignWindow = 0x00000020 | Window, 8036: CoverWindow = 0x00000040 | Window, 8036: 8036: WindowType_Mask = 0x000000ff, 8036: MSWindowsFixedSizeDialogHint = 0x00000100, 8036: MSWindowsOwnDC = 0x00000200, 8036: BypassWindowManagerHint = 0x00000400, 8036: X11BypassWindowManagerHint = BypassWindowManagerHint, 8036: FramelessWindowHint = 0x00000800, 8036: WindowTitleHint = 0x00001000, 8036: WindowSystemMenuHint = 0x00002000, 8036: WindowMinimizeButtonHint = 0x00004000, 8036: WindowMaximizeButtonHint = 0x00008000, 8036: WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, 8036: WindowContextHelpButtonHint = 0x00010000, 8036: WindowShadeButtonHint = 0x00020000, 8036: WindowStaysOnTopHint = 0x00040000, 8036: WindowTransparentForInput = 0x00080000, 8036: WindowOverridesSystemGestures = 0x00100000, 8036: WindowDoesNotAcceptFocus = 0x00200000, 8036: MaximizeUsingFullscreenGeometryHint = 0x00400000, 8036: 8036: CustomizeWindowHint = 0x02000000, 8036: WindowStaysOnBottomHint = 0x04000000, 8036: WindowCloseButtonHint = 0x08000000, 8036: MacWindowToolBarButtonHint = 0x10000000, 8036: BypassGraphicsProxyWidget = 0x20000000, 8036: NoDropShadowWindowHint = 0x40000000, 8036: WindowFullscreenButtonHint = 0x80000000 8036: }; 8036: 8036: typedef QFlags WindowFlags; 8036: 8036: enum WindowState { 8036: WindowNoState = 0x00000000, 8036: WindowMinimized = 0x00000001, 8036: WindowMaximized = 0x00000002, 8036: WindowFullScreen = 0x00000004, 8036: WindowActive = 0x00000008 8036: }; 8036: 8036: typedef QFlags WindowStates; 8036: 8036: enum ApplicationState { 8036: ApplicationSuspended = 0x00000000, 8036: ApplicationHidden = 0x00000001, 8036: ApplicationInactive = 0x00000002, 8036: ApplicationActive = 0x00000004 8036: }; 8036: 8036: typedef QFlags ApplicationStates; 8036: 8036: enum ScreenOrientation { 8036: PrimaryOrientation = 0x00000000, 8036: PortraitOrientation = 0x00000001, 8036: LandscapeOrientation = 0x00000002, 8036: InvertedPortraitOrientation = 0x00000004, 8036: InvertedLandscapeOrientation = 0x00000008 8036: }; 8036: 8036: typedef QFlags ScreenOrientations; 8036: 8036: enum WidgetAttribute { 8036: WA_Disabled = 0, 8036: WA_UnderMouse = 1, 8036: WA_MouseTracking = 2, 8036: WA_ContentsPropagated = 3, 8036: WA_OpaquePaintEvent = 4, 8036: WA_NoBackground = WA_OpaquePaintEvent, 8036: WA_StaticContents = 5, 8036: WA_LaidOut = 7, 8036: WA_PaintOnScreen = 8, 8036: WA_NoSystemBackground = 9, 8036: WA_UpdatesDisabled = 10, 8036: WA_Mapped = 11, 8036: WA_MacNoClickThrough = 12, 8036: WA_InputMethodEnabled = 14, 8036: WA_WState_Visible = 15, 8036: WA_WState_Hidden = 16, 8036: 8036: WA_ForceDisabled = 32, 8036: WA_KeyCompression = 33, 8036: WA_PendingMoveEvent = 34, 8036: WA_PendingResizeEvent = 35, 8036: WA_SetPalette = 36, 8036: WA_SetFont = 37, 8036: WA_SetCursor = 38, 8036: WA_NoChildEventsFromChildren = 39, 8036: WA_WindowModified = 41, 8036: WA_Resized = 42, 8036: WA_Moved = 43, 8036: WA_PendingUpdate = 44, 8036: WA_InvalidSize = 45, 8036: WA_MacBrushedMetal = 46, 8036: WA_MacMetalStyle = WA_MacBrushedMetal, 8036: WA_CustomWhatsThis = 47, 8036: WA_LayoutOnEntireRect = 48, 8036: WA_OutsideWSRange = 49, 8036: WA_GrabbedShortcut = 50, 8036: WA_TransparentForMouseEvents = 51, 8036: WA_PaintUnclipped = 52, 8036: WA_SetWindowIcon = 53, 8036: WA_NoMouseReplay = 54, 8036: WA_DeleteOnClose = 55, 8036: WA_RightToLeft = 56, 8036: WA_SetLayoutDirection = 57, 8036: WA_NoChildEventsForParent = 58, 8036: WA_ForceUpdatesDisabled = 59, 8036: 8036: WA_WState_Created = 60, 8036: WA_WState_CompressKeys = 61, 8036: WA_WState_InPaintEvent = 62, 8036: WA_WState_Reparented = 63, 8036: WA_WState_ConfigPending = 64, 8036: WA_WState_Polished = 66, 8036: WA_WState_DND = 67, 8036: WA_WState_OwnSizePolicy = 68, 8036: WA_WState_ExplicitShowHide = 69, 8036: 8036: WA_ShowModal = 70, 8036: WA_MouseNoMask = 71, 8036: WA_GroupLeader = 72, 8036: WA_NoMousePropagation = 73, 8036: WA_Hover = 74, 8036: WA_InputMethodTransparent = 75, 8036: WA_QuitOnClose = 76, 8036: 8036: WA_KeyboardFocusChange = 77, 8036: 8036: WA_AcceptDrops = 78, 8036: WA_DropSiteRegistered = 79, 8036: WA_ForceAcceptDrops = WA_DropSiteRegistered, 8036: 8036: WA_WindowPropagation = 80, 8036: 8036: WA_NoX11EventCompression = 81, 8036: WA_TintedBackground = 82, 8036: WA_X11OpenGLOverlay = 83, 8036: WA_AlwaysShowToolTips = 84, 8036: WA_MacOpaqueSizeGrip = 85, 8036: WA_SetStyle = 86, 8036: 8036: WA_SetLocale = 87, 8036: WA_MacShowFocusRect = 88, 8036: 8036: WA_MacNormalSize = 89, 8036: WA_MacSmallSize = 90, 8036: WA_MacMiniSize = 91, 8036: 8036: WA_LayoutUsesWidgetRect = 92, 8036: WA_StyledBackground = 93, 8036: WA_MSWindowsUseDirect3D = 94, 8036: WA_CanHostQMdiSubWindowTitleBar = 95, 8036: 8036: WA_MacAlwaysShowToolWindow = 96, 8036: 8036: WA_StyleSheet = 97, 8036: 8036: WA_ShowWithoutActivating = 98, 8036: 8036: WA_X11BypassTransientForHint = 99, 8036: 8036: WA_NativeWindow = 100, 8036: WA_DontCreateNativeAncestors = 101, 8036: 8036: WA_MacVariableSize = 102, 8036: 8036: WA_DontShowOnScreen = 103, 8036: 8036: 8036: WA_X11NetWmWindowTypeDesktop = 104, 8036: WA_X11NetWmWindowTypeDock = 105, 8036: WA_X11NetWmWindowTypeToolBar = 106, 8036: WA_X11NetWmWindowTypeMenu = 107, 8036: WA_X11NetWmWindowTypeUtility = 108, 8036: WA_X11NetWmWindowTypeSplash = 109, 8036: WA_X11NetWmWindowTypeDialog = 110, 8036: WA_X11NetWmWindowTypeDropDownMenu = 111, 8036: WA_X11NetWmWindowTypePopupMenu = 112, 8036: WA_X11NetWmWindowTypeToolTip = 113, 8036: WA_X11NetWmWindowTypeNotification = 114, 8036: WA_X11NetWmWindowTypeCombo = 115, 8036: WA_X11NetWmWindowTypeDND = 116, 8036: 8036: WA_MacFrameworkScaled = 117, 8036: 8036: WA_SetWindowModality = 118, 8036: WA_WState_WindowOpacitySet = 119, 8036: WA_TranslucentBackground = 120, 8036: 8036: WA_AcceptTouchEvents = 121, 8036: WA_WState_AcceptedTouchBeginEvent = 122, 8036: WA_TouchPadAcceptSingleTouchEvents = 123, 8036: 8036: WA_X11DoNotAcceptFocus = 126, 8036: WA_MacNoShadow = 127, 8036: 8036: WA_AlwaysStackOnTop = 128, 8036: 8036: WA_TabletTracking = 129, 8036: 8036: 8036: WA_AttributeCount 8036: }; 8036: 8036: enum ApplicationAttribute 8036: { 8036: AA_ImmediateWidgetCreation = 0, 8036: AA_MSWindowsUseDirect3DByDefault = 1, 8036: AA_DontShowIconsInMenus = 2, 8036: AA_NativeWindows = 3, 8036: AA_DontCreateNativeWidgetSiblings = 4, 8036: AA_PluginApplication = 5, 8036: AA_MacPluginApplication = AA_PluginApplication, 8036: AA_DontUseNativeMenuBar = 6, 8036: AA_MacDontSwapCtrlAndMeta = 7, 8036: AA_Use96Dpi = 8, 8036: AA_X11InitThreads = 10, 8036: AA_SynthesizeTouchForUnhandledMouseEvents = 11, 8036: AA_SynthesizeMouseForUnhandledTouchEvents = 12, 8036: AA_UseHighDpiPixmaps = 13, 8036: AA_ForceRasterWidgets = 14, 8036: AA_UseDesktopOpenGL = 15, 8036: AA_UseOpenGLES = 16, 8036: AA_UseSoftwareOpenGL = 17, 8036: AA_ShareOpenGLContexts = 18, 8036: AA_SetPalette = 19, 8036: AA_EnableHighDpiScaling = 20, 8036: AA_DisableHighDpiScaling = 21, 8036: AA_UseStyleSheetPropagationInWidgetStyles = 22, 8036: AA_DontUseNativeDialogs = 23, 8036: AA_SynthesizeMouseForUnhandledTabletEvents = 24, 8036: AA_CompressHighFrequencyEvents = 25, 8036: AA_DontCheckOpenGLContextThreadAffinity = 26, 8036: AA_DisableShaderDiskCache = 27, 8036: 8036: 8036: AA_AttributeCount 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: enum ImageConversionFlag { 8036: ColorMode_Mask = 0x00000003, 8036: AutoColor = 0x00000000, 8036: ColorOnly = 0x00000003, 8036: MonoOnly = 0x00000002, 8036: 8036: 8036: AlphaDither_Mask = 0x0000000c, 8036: ThresholdAlphaDither = 0x00000000, 8036: OrderedAlphaDither = 0x00000004, 8036: DiffuseAlphaDither = 0x00000008, 8036: NoAlpha = 0x0000000c, 8036: 8036: Dither_Mask = 0x00000030, 8036: DiffuseDither = 0x00000000, 8036: OrderedDither = 0x00000010, 8036: ThresholdDither = 0x00000020, 8036: 8036: 8036: DitherMode_Mask = 0x000000c0, 8036: AutoDither = 0x00000000, 8036: PreferDither = 0x00000040, 8036: AvoidDither = 0x00000080, 8036: 8036: NoOpaqueDetection = 0x00000100, 8036: NoFormatConversion = 0x00000200 8036: }; 8036: typedef QFlags ImageConversionFlags; 8036: 8036: enum BGMode { 8036: TransparentMode, 8036: OpaqueMode 8036: }; 8036: 8036: enum Key { 8036: Key_Escape = 0x01000000, 8036: Key_Tab = 0x01000001, 8036: Key_Backtab = 0x01000002, 8036: Key_Backspace = 0x01000003, 8036: Key_Return = 0x01000004, 8036: Key_Enter = 0x01000005, 8036: Key_Insert = 0x01000006, 8036: Key_Delete = 0x01000007, 8036: Key_Pause = 0x01000008, 8036: Key_Print = 0x01000009, 8036: Key_SysReq = 0x0100000a, 8036: Key_Clear = 0x0100000b, 8036: Key_Home = 0x01000010, 8036: Key_End = 0x01000011, 8036: Key_Left = 0x01000012, 8036: Key_Up = 0x01000013, 8036: Key_Right = 0x01000014, 8036: Key_Down = 0x01000015, 8036: Key_PageUp = 0x01000016, 8036: Key_PageDown = 0x01000017, 8036: Key_Shift = 0x01000020, 8036: Key_Control = 0x01000021, 8036: Key_Meta = 0x01000022, 8036: Key_Alt = 0x01000023, 8036: Key_CapsLock = 0x01000024, 8036: Key_NumLock = 0x01000025, 8036: Key_ScrollLock = 0x01000026, 8036: Key_F1 = 0x01000030, 8036: Key_F2 = 0x01000031, 8036: Key_F3 = 0x01000032, 8036: Key_F4 = 0x01000033, 8036: Key_F5 = 0x01000034, 8036: Key_F6 = 0x01000035, 8036: Key_F7 = 0x01000036, 8036: Key_F8 = 0x01000037, 8036: Key_F9 = 0x01000038, 8036: Key_F10 = 0x01000039, 8036: Key_F11 = 0x0100003a, 8036: Key_F12 = 0x0100003b, 8036: Key_F13 = 0x0100003c, 8036: Key_F14 = 0x0100003d, 8036: Key_F15 = 0x0100003e, 8036: Key_F16 = 0x0100003f, 8036: Key_F17 = 0x01000040, 8036: Key_F18 = 0x01000041, 8036: Key_F19 = 0x01000042, 8036: Key_F20 = 0x01000043, 8036: Key_F21 = 0x01000044, 8036: Key_F22 = 0x01000045, 8036: Key_F23 = 0x01000046, 8036: Key_F24 = 0x01000047, 8036: Key_F25 = 0x01000048, 8036: Key_F26 = 0x01000049, 8036: Key_F27 = 0x0100004a, 8036: Key_F28 = 0x0100004b, 8036: Key_F29 = 0x0100004c, 8036: Key_F30 = 0x0100004d, 8036: Key_F31 = 0x0100004e, 8036: Key_F32 = 0x0100004f, 8036: Key_F33 = 0x01000050, 8036: Key_F34 = 0x01000051, 8036: Key_F35 = 0x01000052, 8036: Key_Super_L = 0x01000053, 8036: Key_Super_R = 0x01000054, 8036: Key_Menu = 0x01000055, 8036: Key_Hyper_L = 0x01000056, 8036: Key_Hyper_R = 0x01000057, 8036: Key_Help = 0x01000058, 8036: Key_Direction_L = 0x01000059, 8036: Key_Direction_R = 0x01000060, 8036: Key_Space = 0x20, 8036: Key_Any = Key_Space, 8036: Key_Exclam = 0x21, 8036: Key_QuoteDbl = 0x22, 8036: Key_NumberSign = 0x23, 8036: Key_Dollar = 0x24, 8036: Key_Percent = 0x25, 8036: Key_Ampersand = 0x26, 8036: Key_Apostrophe = 0x27, 8036: Key_ParenLeft = 0x28, 8036: Key_ParenRight = 0x29, 8036: Key_Asterisk = 0x2a, 8036: Key_Plus = 0x2b, 8036: Key_Comma = 0x2c, 8036: Key_Minus = 0x2d, 8036: Key_Period = 0x2e, 8036: Key_Slash = 0x2f, 8036: Key_0 = 0x30, 8036: Key_1 = 0x31, 8036: Key_2 = 0x32, 8036: Key_3 = 0x33, 8036: Key_4 = 0x34, 8036: Key_5 = 0x35, 8036: Key_6 = 0x36, 8036: Key_7 = 0x37, 8036: Key_8 = 0x38, 8036: Key_9 = 0x39, 8036: Key_Colon = 0x3a, 8036: Key_Semicolon = 0x3b, 8036: Key_Less = 0x3c, 8036: Key_Equal = 0x3d, 8036: Key_Greater = 0x3e, 8036: Key_Question = 0x3f, 8036: Key_At = 0x40, 8036: Key_A = 0x41, 8036: Key_B = 0x42, 8036: Key_C = 0x43, 8036: Key_D = 0x44, 8036: Key_E = 0x45, 8036: Key_F = 0x46, 8036: Key_G = 0x47, 8036: Key_H = 0x48, 8036: Key_I = 0x49, 8036: Key_J = 0x4a, 8036: Key_K = 0x4b, 8036: Key_L = 0x4c, 8036: Key_M = 0x4d, 8036: Key_N = 0x4e, 8036: Key_O = 0x4f, 8036: Key_P = 0x50, 8036: Key_Q = 0x51, 8036: Key_R = 0x52, 8036: Key_S = 0x53, 8036: Key_T = 0x54, 8036: Key_U = 0x55, 8036: Key_V = 0x56, 8036: Key_W = 0x57, 8036: Key_X = 0x58, 8036: Key_Y = 0x59, 8036: Key_Z = 0x5a, 8036: Key_BracketLeft = 0x5b, 8036: Key_Backslash = 0x5c, 8036: Key_BracketRight = 0x5d, 8036: Key_AsciiCircum = 0x5e, 8036: Key_Underscore = 0x5f, 8036: Key_QuoteLeft = 0x60, 8036: Key_BraceLeft = 0x7b, 8036: Key_Bar = 0x7c, 8036: Key_BraceRight = 0x7d, 8036: Key_AsciiTilde = 0x7e, 8036: 8036: Key_nobreakspace = 0x0a0, 8036: Key_exclamdown = 0x0a1, 8036: Key_cent = 0x0a2, 8036: Key_sterling = 0x0a3, 8036: Key_currency = 0x0a4, 8036: Key_yen = 0x0a5, 8036: Key_brokenbar = 0x0a6, 8036: Key_section = 0x0a7, 8036: Key_diaeresis = 0x0a8, 8036: Key_copyright = 0x0a9, 8036: Key_ordfeminine = 0x0aa, 8036: Key_guillemotleft = 0x0ab, 8036: Key_notsign = 0x0ac, 8036: Key_hyphen = 0x0ad, 8036: Key_registered = 0x0ae, 8036: Key_macron = 0x0af, 8036: Key_degree = 0x0b0, 8036: Key_plusminus = 0x0b1, 8036: Key_twosuperior = 0x0b2, 8036: Key_threesuperior = 0x0b3, 8036: Key_acute = 0x0b4, 8036: Key_mu = 0x0b5, 8036: Key_paragraph = 0x0b6, 8036: Key_periodcentered = 0x0b7, 8036: Key_cedilla = 0x0b8, 8036: Key_onesuperior = 0x0b9, 8036: Key_masculine = 0x0ba, 8036: Key_guillemotright = 0x0bb, 8036: Key_onequarter = 0x0bc, 8036: Key_onehalf = 0x0bd, 8036: Key_threequarters = 0x0be, 8036: Key_questiondown = 0x0bf, 8036: Key_Agrave = 0x0c0, 8036: Key_Aacute = 0x0c1, 8036: Key_Acircumflex = 0x0c2, 8036: Key_Atilde = 0x0c3, 8036: Key_Adiaeresis = 0x0c4, 8036: Key_Aring = 0x0c5, 8036: Key_AE = 0x0c6, 8036: Key_Ccedilla = 0x0c7, 8036: Key_Egrave = 0x0c8, 8036: Key_Eacute = 0x0c9, 8036: Key_Ecircumflex = 0x0ca, 8036: Key_Ediaeresis = 0x0cb, 8036: Key_Igrave = 0x0cc, 8036: Key_Iacute = 0x0cd, 8036: Key_Icircumflex = 0x0ce, 8036: Key_Idiaeresis = 0x0cf, 8036: Key_ETH = 0x0d0, 8036: Key_Ntilde = 0x0d1, 8036: Key_Ograve = 0x0d2, 8036: Key_Oacute = 0x0d3, 8036: Key_Ocircumflex = 0x0d4, 8036: Key_Otilde = 0x0d5, 8036: Key_Odiaeresis = 0x0d6, 8036: Key_multiply = 0x0d7, 8036: Key_Ooblique = 0x0d8, 8036: Key_Ugrave = 0x0d9, 8036: Key_Uacute = 0x0da, 8036: Key_Ucircumflex = 0x0db, 8036: Key_Udiaeresis = 0x0dc, 8036: Key_Yacute = 0x0dd, 8036: Key_THORN = 0x0de, 8036: Key_ssharp = 0x0df, 8036: Key_division = 0x0f7, 8036: Key_ydiaeresis = 0x0ff, 8036: 8036: 8036: 8036: 8036: 8036: 8036: Key_AltGr = 0x01001103, 8036: Key_Multi_key = 0x01001120, 8036: Key_Codeinput = 0x01001137, 8036: Key_SingleCandidate = 0x0100113c, 8036: Key_MultipleCandidate = 0x0100113d, 8036: Key_PreviousCandidate = 0x0100113e, 8036: 8036: 8036: Key_Mode_switch = 0x0100117e, 8036: 8036: 8036: 8036: Key_Kanji = 0x01001121, 8036: Key_Muhenkan = 0x01001122, 8036: 8036: Key_Henkan = 0x01001123, 8036: Key_Romaji = 0x01001124, 8036: Key_Hiragana = 0x01001125, 8036: Key_Katakana = 0x01001126, 8036: Key_Hiragana_Katakana = 0x01001127, 8036: Key_Zenkaku = 0x01001128, 8036: Key_Hankaku = 0x01001129, 8036: Key_Zenkaku_Hankaku = 0x0100112a, 8036: Key_Touroku = 0x0100112b, 8036: Key_Massyo = 0x0100112c, 8036: Key_Kana_Lock = 0x0100112d, 8036: Key_Kana_Shift = 0x0100112e, 8036: Key_Eisu_Shift = 0x0100112f, 8036: Key_Eisu_toggle = 0x01001130, 8036: # 806 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8036: Key_Hangul = 0x01001131, 8036: Key_Hangul_Start = 0x01001132, 8036: Key_Hangul_End = 0x01001133, 8036: Key_Hangul_Hanja = 0x01001134, 8036: Key_Hangul_Jamo = 0x01001135, 8036: Key_Hangul_Romaja = 0x01001136, 8036: 8036: Key_Hangul_Jeonja = 0x01001138, 8036: Key_Hangul_Banja = 0x01001139, 8036: Key_Hangul_PreHanja = 0x0100113a, 8036: Key_Hangul_PostHanja = 0x0100113b, 8036: 8036: 8036: 8036: Key_Hangul_Special = 0x0100113f, 8036: 8036: 8036: 8036: Key_Dead_Grave = 0x01001250, 8036: Key_Dead_Acute = 0x01001251, 8036: Key_Dead_Circumflex = 0x01001252, 8036: Key_Dead_Tilde = 0x01001253, 8036: Key_Dead_Macron = 0x01001254, 8036: Key_Dead_Breve = 0x01001255, 8036: Key_Dead_Abovedot = 0x01001256, 8036: Key_Dead_Diaeresis = 0x01001257, 8036: Key_Dead_Abovering = 0x01001258, 8036: Key_Dead_Doubleacute = 0x01001259, 8036: Key_Dead_Caron = 0x0100125a, 8036: Key_Dead_Cedilla = 0x0100125b, 8036: Key_Dead_Ogonek = 0x0100125c, 8036: Key_Dead_Iota = 0x0100125d, 8036: Key_Dead_Voiced_Sound = 0x0100125e, 8036: Key_Dead_Semivoiced_Sound = 0x0100125f, 8036: Key_Dead_Belowdot = 0x01001260, 8036: Key_Dead_Hook = 0x01001261, 8036: Key_Dead_Horn = 0x01001262, 8036: 8036: 8036: Key_Back = 0x01000061, 8036: Key_Forward = 0x01000062, 8036: Key_Stop = 0x01000063, 8036: Key_Refresh = 0x01000064, 8036: Key_VolumeDown = 0x01000070, 8036: Key_VolumeMute = 0x01000071, 8036: Key_VolumeUp = 0x01000072, 8036: Key_BassBoost = 0x01000073, 8036: Key_BassUp = 0x01000074, 8036: Key_BassDown = 0x01000075, 8036: Key_TrebleUp = 0x01000076, 8036: Key_TrebleDown = 0x01000077, 8036: Key_MediaPlay = 0x01000080, 8036: Key_MediaStop = 0x01000081, 8036: Key_MediaPrevious = 0x01000082, 8036: Key_MediaNext = 0x01000083, 8036: Key_MediaRecord = 0x01000084, 8036: Key_MediaPause = 0x1000085, 8036: Key_MediaTogglePlayPause = 0x1000086, 8036: Key_HomePage = 0x01000090, 8036: Key_Favorites = 0x01000091, 8036: Key_Search = 0x01000092, 8036: Key_Standby = 0x01000093, 8036: Key_OpenUrl = 0x01000094, 8036: Key_LaunchMail = 0x010000a0, 8036: Key_LaunchMedia = 0x010000a1, 8036: Key_Launch0 = 0x010000a2, 8036: Key_Launch1 = 0x010000a3, 8036: Key_Launch2 = 0x010000a4, 8036: Key_Launch3 = 0x010000a5, 8036: Key_Launch4 = 0x010000a6, 8036: Key_Launch5 = 0x010000a7, 8036: Key_Launch6 = 0x010000a8, 8036: Key_Launch7 = 0x010000a9, 8036: Key_Launch8 = 0x010000aa, 8036: Key_Launch9 = 0x010000ab, 8036: Key_LaunchA = 0x010000ac, 8036: Key_LaunchB = 0x010000ad, 8036: Key_LaunchC = 0x010000ae, 8036: Key_LaunchD = 0x010000af, 8036: Key_LaunchE = 0x010000b0, 8036: Key_LaunchF = 0x010000b1, 8036: Key_MonBrightnessUp = 0x010000b2, 8036: Key_MonBrightnessDown = 0x010000b3, 8036: Key_KeyboardLightOnOff = 0x010000b4, 8036: Key_KeyboardBrightnessUp = 0x010000b5, 8036: Key_KeyboardBrightnessDown = 0x010000b6, 8036: Key_PowerOff = 0x010000b7, 8036: Key_WakeUp = 0x010000b8, 8036: Key_Eject = 0x010000b9, 8036: Key_ScreenSaver = 0x010000ba, 8036: Key_WWW = 0x010000bb, 8036: Key_Memo = 0x010000bc, 8036: Key_LightBulb = 0x010000bd, 8036: Key_Shop = 0x010000be, 8036: Key_History = 0x010000bf, 8036: Key_AddFavorite = 0x010000c0, 8036: Key_HotLinks = 0x010000c1, 8036: Key_BrightnessAdjust = 0x010000c2, 8036: Key_Finance = 0x010000c3, 8036: Key_Community = 0x010000c4, 8036: Key_AudioRewind = 0x010000c5, 8036: Key_BackForward = 0x010000c6, 8036: Key_ApplicationLeft = 0x010000c7, 8036: Key_ApplicationRight = 0x010000c8, 8036: Key_Book = 0x010000c9, 8036: Key_CD = 0x010000ca, 8036: Key_Calculator = 0x010000cb, 8036: Key_ToDoList = 0x010000cc, 8036: Key_ClearGrab = 0x010000cd, 8036: Key_Close = 0x010000ce, 8036: Key_Copy = 0x010000cf, 8036: Key_Cut = 0x010000d0, 8036: Key_Display = 0x010000d1, 8036: Key_DOS = 0x010000d2, 8036: Key_Documents = 0x010000d3, 8036: Key_Excel = 0x010000d4, 8036: Key_Explorer = 0x010000d5, 8036: Key_Game = 0x010000d6, 8036: Key_Go = 0x010000d7, 8036: Key_iTouch = 0x010000d8, 8036: Key_LogOff = 0x010000d9, 8036: Key_Market = 0x010000da, 8036: Key_Meeting = 0x010000db, 8036: Key_MenuKB = 0x010000dc, 8036: Key_MenuPB = 0x010000dd, 8036: Key_MySites = 0x010000de, 8036: Key_News = 0x010000df, 8036: Key_OfficeHome = 0x010000e0, 8036: Key_Option = 0x010000e1, 8036: Key_Paste = 0x010000e2, 8036: Key_Phone = 0x010000e3, 8036: Key_Calendar = 0x010000e4, 8036: Key_Reply = 0x010000e5, 8036: Key_Reload = 0x010000e6, 8036: Key_RotateWindows = 0x010000e7, 8036: Key_RotationPB = 0x010000e8, 8036: Key_RotationKB = 0x010000e9, 8036: Key_Save = 0x010000ea, 8036: Key_Send = 0x010000eb, 8036: Key_Spell = 0x010000ec, 8036: Key_SplitScreen = 0x010000ed, 8036: Key_Support = 0x010000ee, 8036: Key_TaskPane = 0x010000ef, 8036: Key_Terminal = 0x010000f0, 8036: Key_Tools = 0x010000f1, 8036: Key_Travel = 0x010000f2, 8036: Key_Video = 0x010000f3, 8036: Key_Word = 0x010000f4, 8036: Key_Xfer = 0x010000f5, 8036: Key_ZoomIn = 0x010000f6, 8036: Key_ZoomOut = 0x010000f7, 8036: Key_Away = 0x010000f8, 8036: Key_Messenger = 0x010000f9, 8036: Key_WebCam = 0x010000fa, 8036: Key_MailForward = 0x010000fb, 8036: Key_Pictures = 0x010000fc, 8036: Key_Music = 0x010000fd, 8036: Key_Battery = 0x010000fe, 8036: Key_Bluetooth = 0x010000ff, 8036: Key_WLAN = 0x01000100, 8036: Key_UWB = 0x01000101, 8036: Key_AudioForward = 0x01000102, 8036: Key_AudioRepeat = 0x01000103, 8036: Key_AudioRandomPlay = 0x01000104, 8036: Key_Subtitle = 0x01000105, 8036: Key_AudioCycleTrack = 0x01000106, 8036: Key_Time = 0x01000107, 8036: Key_Hibernate = 0x01000108, 8036: Key_View = 0x01000109, 8036: Key_TopMenu = 0x0100010a, 8036: Key_PowerDown = 0x0100010b, 8036: Key_Suspend = 0x0100010c, 8036: Key_ContrastAdjust = 0x0100010d, 8036: 8036: Key_LaunchG = 0x0100010e, 8036: Key_LaunchH = 0x0100010f, 8036: 8036: Key_TouchpadToggle = 0x01000110, 8036: Key_TouchpadOn = 0x01000111, 8036: Key_TouchpadOff = 0x01000112, 8036: 8036: Key_MicMute = 0x01000113, 8036: 8036: Key_Red = 0x01000114, 8036: Key_Green = 0x01000115, 8036: Key_Yellow = 0x01000116, 8036: Key_Blue = 0x01000117, 8036: 8036: Key_ChannelUp = 0x01000118, 8036: Key_ChannelDown = 0x01000119, 8036: 8036: Key_Guide = 0x0100011a, 8036: Key_Info = 0x0100011b, 8036: Key_Settings = 0x0100011c, 8036: 8036: Key_MicVolumeUp = 0x0100011d, 8036: Key_MicVolumeDown = 0x0100011e, 8036: 8036: Key_New = 0x01000120, 8036: Key_Open = 0x01000121, 8036: Key_Find = 0x01000122, 8036: Key_Undo = 0x01000123, 8036: Key_Redo = 0x01000124, 8036: 8036: Key_MediaLast = 0x0100ffff, 8036: 8036: 8036: Key_Select = 0x01010000, 8036: Key_Yes = 0x01010001, 8036: Key_No = 0x01010002, 8036: 8036: 8036: Key_Cancel = 0x01020001, 8036: Key_Printer = 0x01020002, 8036: Key_Execute = 0x01020003, 8036: Key_Sleep = 0x01020004, 8036: Key_Play = 0x01020005, 8036: Key_Zoom = 0x01020006, 8036: 8036: 8036: 8036: Key_Exit = 0x0102000a, 8036: 8036: 8036: Key_Context1 = 0x01100000, 8036: Key_Context2 = 0x01100001, 8036: Key_Context3 = 0x01100002, 8036: Key_Context4 = 0x01100003, 8036: Key_Call = 0x01100004, 8036: Key_Hangup = 0x01100005, 8036: Key_Flip = 0x01100006, 8036: Key_ToggleCallHangup = 0x01100007, 8036: Key_VoiceDial = 0x01100008, 8036: Key_LastNumberRedial = 0x01100009, 8036: 8036: Key_Camera = 0x01100020, 8036: Key_CameraFocus = 0x01100021, 8036: 8036: Key_unknown = 0x01ffffff 8036: }; 8036: 8036: enum ArrowType { 8036: NoArrow, 8036: UpArrow, 8036: DownArrow, 8036: LeftArrow, 8036: RightArrow 8036: }; 8036: 8036: enum PenStyle { 8036: NoPen, 8036: SolidLine, 8036: DashLine, 8036: DotLine, 8036: DashDotLine, 8036: DashDotDotLine, 8036: CustomDashLine 8036: 8036: , MPenStyle = 0x0f 8036: 8036: }; 8036: 8036: enum PenCapStyle { 8036: FlatCap = 0x00, 8036: SquareCap = 0x10, 8036: RoundCap = 0x20, 8036: MPenCapStyle = 0x30 8036: }; 8036: 8036: enum PenJoinStyle { 8036: MiterJoin = 0x00, 8036: BevelJoin = 0x40, 8036: RoundJoin = 0x80, 8036: SvgMiterJoin = 0x100, 8036: MPenJoinStyle = 0x1c0 8036: }; 8036: 8036: enum BrushStyle { 8036: NoBrush, 8036: SolidPattern, 8036: Dense1Pattern, 8036: Dense2Pattern, 8036: Dense3Pattern, 8036: Dense4Pattern, 8036: Dense5Pattern, 8036: Dense6Pattern, 8036: Dense7Pattern, 8036: HorPattern, 8036: VerPattern, 8036: CrossPattern, 8036: BDiagPattern, 8036: FDiagPattern, 8036: DiagCrossPattern, 8036: LinearGradientPattern, 8036: RadialGradientPattern, 8036: ConicalGradientPattern, 8036: TexturePattern = 24 8036: }; 8036: 8036: enum SizeMode { 8036: AbsoluteSize, 8036: RelativeSize 8036: }; 8036: 8036: enum UIEffect { 8036: UI_General, 8036: UI_AnimateMenu, 8036: UI_FadeMenu, 8036: UI_AnimateCombo, 8036: UI_AnimateTooltip, 8036: UI_FadeTooltip, 8036: UI_AnimateToolBox 8036: }; 8036: 8036: enum CursorShape { 8036: ArrowCursor, 8036: UpArrowCursor, 8036: CrossCursor, 8036: WaitCursor, 8036: IBeamCursor, 8036: SizeVerCursor, 8036: SizeHorCursor, 8036: SizeBDiagCursor, 8036: SizeFDiagCursor, 8036: SizeAllCursor, 8036: BlankCursor, 8036: SplitVCursor, 8036: SplitHCursor, 8036: PointingHandCursor, 8036: ForbiddenCursor, 8036: WhatsThisCursor, 8036: BusyCursor, 8036: OpenHandCursor, 8036: ClosedHandCursor, 8036: DragCopyCursor, 8036: DragMoveCursor, 8036: DragLinkCursor, 8036: LastCursor = DragLinkCursor, 8036: BitmapCursor = 24, 8036: CustomCursor = 25 8036: }; 8036: 8036: enum TextFormat { 8036: PlainText, 8036: RichText, 8036: AutoText 8036: }; 8036: 8036: enum AspectRatioMode { 8036: IgnoreAspectRatio, 8036: KeepAspectRatio, 8036: KeepAspectRatioByExpanding 8036: }; 8036: 8036: enum DockWidgetArea { 8036: LeftDockWidgetArea = 0x1, 8036: RightDockWidgetArea = 0x2, 8036: TopDockWidgetArea = 0x4, 8036: BottomDockWidgetArea = 0x8, 8036: 8036: DockWidgetArea_Mask = 0xf, 8036: AllDockWidgetAreas = DockWidgetArea_Mask, 8036: NoDockWidgetArea = 0 8036: }; 8036: enum DockWidgetAreaSizes { 8036: NDockWidgetAreas = 4 8036: }; 8036: 8036: typedef QFlags DockWidgetAreas; 8036: 8036: enum ToolBarArea { 8036: LeftToolBarArea = 0x1, 8036: RightToolBarArea = 0x2, 8036: TopToolBarArea = 0x4, 8036: BottomToolBarArea = 0x8, 8036: 8036: ToolBarArea_Mask = 0xf, 8036: AllToolBarAreas = ToolBarArea_Mask, 8036: NoToolBarArea = 0 8036: }; 8036: 8036: enum ToolBarAreaSizes { 8036: NToolBarAreas = 4 8036: }; 8036: 8036: typedef QFlags ToolBarAreas; 8036: 8036: enum DateFormat { 8036: TextDate, 8036: ISODate, 8036: SystemLocaleDate, 8036: LocalDate = SystemLocaleDate, 8036: LocaleDate, 8036: SystemLocaleShortDate, 8036: SystemLocaleLongDate, 8036: DefaultLocaleShortDate, 8036: DefaultLocaleLongDate, 8036: RFC2822Date, 8036: ISODateWithMs 8036: }; 8036: 8036: enum TimeSpec { 8036: LocalTime, 8036: UTC, 8036: OffsetFromUTC, 8036: TimeZone 8036: }; 8036: 8036: enum DayOfWeek { 8036: Monday = 1, 8036: Tuesday = 2, 8036: Wednesday = 3, 8036: Thursday = 4, 8036: Friday = 5, 8036: Saturday = 6, 8036: Sunday = 7 8036: }; 8036: 8036: enum ScrollBarPolicy { 8036: ScrollBarAsNeeded, 8036: ScrollBarAlwaysOff, 8036: ScrollBarAlwaysOn 8036: }; 8036: 8036: enum CaseSensitivity { 8036: CaseInsensitive, 8036: CaseSensitive 8036: }; 8036: 8036: enum Corner { 8036: TopLeftCorner = 0x00000, 8036: TopRightCorner = 0x00001, 8036: BottomLeftCorner = 0x00002, 8036: BottomRightCorner = 0x00003 8036: }; 8036: 8036: enum Edge { 8036: TopEdge = 0x00001, 8036: LeftEdge = 0x00002, 8036: RightEdge = 0x00004, 8036: BottomEdge = 0x00008 8036: }; 8036: 8036: typedef QFlags Edges; 8036: 8036: enum ConnectionType { 8036: AutoConnection, 8036: DirectConnection, 8036: QueuedConnection, 8036: BlockingQueuedConnection, 8036: UniqueConnection = 0x80 8036: }; 8036: 8036: enum ShortcutContext { 8036: WidgetShortcut, 8036: WindowShortcut, 8036: ApplicationShortcut, 8036: WidgetWithChildrenShortcut 8036: }; 8036: 8036: enum FillRule { 8036: OddEvenFill, 8036: WindingFill 8036: }; 8036: 8036: enum MaskMode { 8036: MaskInColor, 8036: MaskOutColor 8036: }; 8036: 8036: enum ClipOperation { 8036: NoClip, 8036: ReplaceClip, 8036: IntersectClip 8036: }; 8036: 8036: 8036: enum ItemSelectionMode { 8036: ContainsItemShape = 0x0, 8036: IntersectsItemShape = 0x1, 8036: ContainsItemBoundingRect = 0x2, 8036: IntersectsItemBoundingRect = 0x3 8036: }; 8036: 8036: enum ItemSelectionOperation { 8036: ReplaceSelection, 8036: AddToSelection 8036: }; 8036: 8036: enum TransformationMode { 8036: FastTransformation, 8036: SmoothTransformation 8036: }; 8036: 8036: enum Axis { 8036: XAxis, 8036: YAxis, 8036: ZAxis 8036: }; 8036: 8036: enum FocusReason { 8036: MouseFocusReason, 8036: TabFocusReason, 8036: BacktabFocusReason, 8036: ActiveWindowFocusReason, 8036: PopupFocusReason, 8036: ShortcutFocusReason, 8036: MenuBarFocusReason, 8036: OtherFocusReason, 8036: NoFocusReason 8036: }; 8036: 8036: enum ContextMenuPolicy { 8036: NoContextMenu, 8036: DefaultContextMenu, 8036: ActionsContextMenu, 8036: CustomContextMenu, 8036: PreventContextMenu 8036: }; 8036: 8036: enum InputMethodQuery { 8036: ImEnabled = 0x1, 8036: ImCursorRectangle = 0x2, 8036: ImMicroFocus = 0x2, 8036: ImFont = 0x4, 8036: ImCursorPosition = 0x8, 8036: ImSurroundingText = 0x10, 8036: ImCurrentSelection = 0x20, 8036: ImMaximumTextLength = 0x40, 8036: ImAnchorPosition = 0x80, 8036: ImHints = 0x100, 8036: ImPreferredLanguage = 0x200, 8036: 8036: ImAbsolutePosition = 0x400, 8036: ImTextBeforeCursor = 0x800, 8036: ImTextAfterCursor = 0x1000, 8036: ImEnterKeyType = 0x2000, 8036: ImAnchorRectangle = 0x4000, 8036: ImInputItemClipRectangle = 0x8000, 8036: 8036: ImPlatformData = 0x80000000, 8036: ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | 8036: ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, 8036: ImQueryAll = 0xffffffff 8036: }; 8036: typedef QFlags InputMethodQueries; 8036: 8036: enum InputMethodHint { 8036: ImhNone = 0x0, 8036: 8036: ImhHiddenText = 0x1, 8036: ImhSensitiveData = 0x2, 8036: ImhNoAutoUppercase = 0x4, 8036: ImhPreferNumbers = 0x8, 8036: ImhPreferUppercase = 0x10, 8036: ImhPreferLowercase = 0x20, 8036: ImhNoPredictiveText = 0x40, 8036: 8036: ImhDate = 0x80, 8036: ImhTime = 0x100, 8036: 8036: ImhPreferLatin = 0x200, 8036: 8036: ImhMultiLine = 0x400, 8036: 8036: ImhDigitsOnly = 0x10000, 8036: ImhFormattedNumbersOnly = 0x20000, 8036: ImhUppercaseOnly = 0x40000, 8036: ImhLowercaseOnly = 0x80000, 8036: ImhDialableCharactersOnly = 0x100000, 8036: ImhEmailCharactersOnly = 0x200000, 8036: ImhUrlCharactersOnly = 0x400000, 8036: ImhLatinOnly = 0x800000, 8036: 8036: ImhExclusiveInputMask = 0xffff0000 8036: }; 8036: typedef QFlags InputMethodHints; 8036: 8036: enum EnterKeyType { 8036: EnterKeyDefault, 8036: EnterKeyReturn, 8036: EnterKeyDone, 8036: EnterKeyGo, 8036: EnterKeySend, 8036: EnterKeySearch, 8036: EnterKeyNext, 8036: EnterKeyPrevious 8036: }; 8036: 8036: enum ToolButtonStyle { 8036: ToolButtonIconOnly, 8036: ToolButtonTextOnly, 8036: ToolButtonTextBesideIcon, 8036: ToolButtonTextUnderIcon, 8036: ToolButtonFollowStyle 8036: }; 8036: 8036: enum LayoutDirection { 8036: LeftToRight, 8036: RightToLeft, 8036: LayoutDirectionAuto 8036: }; 8036: 8036: enum AnchorPoint { 8036: AnchorLeft = 0, 8036: AnchorHorizontalCenter, 8036: AnchorRight, 8036: AnchorTop, 8036: AnchorVerticalCenter, 8036: AnchorBottom 8036: }; 8036: 8036: enum FindChildOption { 8036: FindDirectChildrenOnly = 0x0, 8036: FindChildrenRecursively = 0x1 8036: }; 8036: typedef QFlags FindChildOptions; 8036: 8036: enum DropAction { 8036: CopyAction = 0x1, 8036: MoveAction = 0x2, 8036: LinkAction = 0x4, 8036: ActionMask = 0xff, 8036: TargetMoveAction = 0x8002, 8036: IgnoreAction = 0x0 8036: }; 8036: typedef QFlags DropActions; 8036: 8036: enum CheckState { 8036: Unchecked, 8036: PartiallyChecked, 8036: Checked 8036: }; 8036: 8036: enum ItemDataRole { 8036: DisplayRole = 0, 8036: DecorationRole = 1, 8036: EditRole = 2, 8036: ToolTipRole = 3, 8036: StatusTipRole = 4, 8036: WhatsThisRole = 5, 8036: 8036: FontRole = 6, 8036: TextAlignmentRole = 7, 8036: BackgroundColorRole = 8, 8036: BackgroundRole = 8, 8036: TextColorRole = 9, 8036: ForegroundRole = 9, 8036: CheckStateRole = 10, 8036: 8036: AccessibleTextRole = 11, 8036: AccessibleDescriptionRole = 12, 8036: 8036: SizeHintRole = 13, 8036: InitialSortOrderRole = 14, 8036: 8036: DisplayPropertyRole = 27, 8036: DecorationPropertyRole = 28, 8036: ToolTipPropertyRole = 29, 8036: StatusTipPropertyRole = 30, 8036: WhatsThisPropertyRole = 31, 8036: 8036: UserRole = 0x0100 8036: }; 8036: 8036: enum ItemFlag { 8036: NoItemFlags = 0, 8036: ItemIsSelectable = 1, 8036: ItemIsEditable = 2, 8036: ItemIsDragEnabled = 4, 8036: ItemIsDropEnabled = 8, 8036: ItemIsUserCheckable = 16, 8036: ItemIsEnabled = 32, 8036: ItemIsAutoTristate = 64, 8036: 8036: ItemIsTristate = ItemIsAutoTristate, 8036: 8036: ItemNeverHasChildren = 128, 8036: ItemIsUserTristate = 256 8036: }; 8036: typedef QFlags ItemFlags; 8036: 8036: enum MatchFlag { 8036: MatchExactly = 0, 8036: MatchContains = 1, 8036: MatchStartsWith = 2, 8036: MatchEndsWith = 3, 8036: MatchRegExp = 4, 8036: MatchWildcard = 5, 8036: MatchFixedString = 8, 8036: MatchCaseSensitive = 16, 8036: MatchWrap = 32, 8036: MatchRecursive = 64 8036: }; 8036: typedef QFlags MatchFlags; 8036: 8036: typedef void * HANDLE; 8036: 8036: 8036: 8036: 8036: enum WindowModality { 8036: NonModal, 8036: WindowModal, 8036: ApplicationModal 8036: }; 8036: 8036: enum TextInteractionFlag { 8036: NoTextInteraction = 0, 8036: TextSelectableByMouse = 1, 8036: TextSelectableByKeyboard = 2, 8036: LinksAccessibleByMouse = 4, 8036: LinksAccessibleByKeyboard = 8, 8036: TextEditable = 16, 8036: 8036: TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, 8036: TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard 8036: }; 8036: typedef QFlags TextInteractionFlags; 8036: 8036: enum EventPriority { 8036: HighEventPriority = 1, 8036: NormalEventPriority = 0, 8036: LowEventPriority = -1 8036: }; 8036: 8036: enum SizeHint { 8036: MinimumSize, 8036: PreferredSize, 8036: MaximumSize, 8036: MinimumDescent, 8036: NSizeHints 8036: }; 8036: 8036: enum WindowFrameSection { 8036: NoSection, 8036: LeftSection, 8036: TopLeftSection, 8036: TopSection, 8036: TopRightSection, 8036: RightSection, 8036: BottomRightSection, 8036: BottomSection, 8036: BottomLeftSection, 8036: TitleBarArea 8036: }; 8036: 8036: 8036: enum class Initialization { 8036: Uninitialized 8036: }; 8036: static constexpr __attribute__((__unused__)) Initialization Uninitialized = Initialization::Uninitialized; 8036: 8036: 8036: 8036: 8036: 8036: 8036: enum CoordinateSystem { 8036: DeviceCoordinates, 8036: LogicalCoordinates 8036: }; 8036: 8036: enum TouchPointState { 8036: TouchPointPressed = 0x01, 8036: TouchPointMoved = 0x02, 8036: TouchPointStationary = 0x04, 8036: TouchPointReleased = 0x08 8036: }; 8036: typedef QFlags TouchPointStates; 8036: 8036: 8036: enum GestureState 8036: { 8036: NoGesture, 8036: GestureStarted = 1, 8036: GestureUpdated = 2, 8036: GestureFinished = 3, 8036: GestureCanceled = 4 8036: }; 8036: 8036: enum GestureType 8036: { 8036: TapGesture = 1, 8036: TapAndHoldGesture = 2, 8036: PanGesture = 3, 8036: PinchGesture = 4, 8036: SwipeGesture = 5, 8036: 8036: CustomGesture = 0x0100, 8036: 8036: LastGestureType = ~0u 8036: }; 8036: 8036: enum GestureFlag 8036: { 8036: DontStartGestureOnChildren = 0x01, 8036: ReceivePartialGestures = 0x02, 8036: IgnoredGesturesPropagateToParent = 0x04 8036: }; 8036: typedef QFlags GestureFlags; 8036: 8036: enum NativeGestureType 8036: { 8036: BeginNativeGesture, 8036: EndNativeGesture, 8036: PanNativeGesture, 8036: ZoomNativeGesture, 8036: SmartZoomNativeGesture, 8036: RotateNativeGesture, 8036: SwipeNativeGesture 8036: }; 8036: 8036: 8036: 8036: enum NavigationMode 8036: { 8036: NavigationModeNone, 8036: NavigationModeKeypadTabOrder, 8036: NavigationModeKeypadDirectional, 8036: NavigationModeCursorAuto, 8036: NavigationModeCursorForceVisible 8036: }; 8036: 8036: enum CursorMoveStyle { 8036: LogicalMoveStyle, 8036: VisualMoveStyle 8036: }; 8036: 8036: enum TimerType { 8036: PreciseTimer, 8036: CoarseTimer, 8036: VeryCoarseTimer 8036: }; 8036: 8036: enum ScrollPhase { 8036: NoScrollPhase = 0, 8036: ScrollBegin, 8036: ScrollUpdate, 8036: ScrollEnd 8036: }; 8036: 8036: enum MouseEventSource { 8036: MouseEventNotSynthesized, 8036: MouseEventSynthesizedBySystem, 8036: MouseEventSynthesizedByQt, 8036: MouseEventSynthesizedByApplication 8036: }; 8036: 8036: enum MouseEventFlag { 8036: MouseEventCreatedDoubleClick = 0x01, 8036: MouseEventFlagMask = 0xFF 8036: }; 8036: typedef QFlags MouseEventFlags; 8036: 8036: enum ChecksumType { 8036: ChecksumIso3309, 8036: ChecksumItuV41 8036: }; 8036: 8036: 8036: 8036: inline const QMetaObject *qt_getEnumMetaObject(ScrollBarPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollBarPolicy) noexcept { return "ScrollBarPolicy"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(FocusPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusPolicy) noexcept { return "FocusPolicy"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ContextMenuPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ContextMenuPolicy) noexcept { return "ContextMenuPolicy"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ArrowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ArrowType) noexcept { return "ArrowType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ToolButtonStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolButtonStyle) noexcept { return "ToolButtonStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(PenStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenStyle) noexcept { return "PenStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(PenCapStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenCapStyle) noexcept { return "PenCapStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(PenJoinStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenJoinStyle) noexcept { return "PenJoinStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(BrushStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BrushStyle) noexcept { return "BrushStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(FillRule) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FillRule) noexcept { return "FillRule"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(MaskMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MaskMode) noexcept { return "MaskMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(BGMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BGMode) noexcept { return "BGMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ClipOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ClipOperation) noexcept { return "ClipOperation"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(SizeMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeMode) noexcept { return "SizeMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Axis) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Axis) noexcept { return "Axis"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Corner) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Corner) noexcept { return "Corner"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Edge) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edge) noexcept { return "Edge"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(LayoutDirection) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(LayoutDirection) noexcept { return "LayoutDirection"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(SizeHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeHint) noexcept { return "SizeHint"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Orientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientation) noexcept { return "Orientation"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DropAction) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropAction) noexcept { return "DropAction"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Alignment) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Alignment) noexcept { return "Alignment"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TextFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFlag) noexcept { return "TextFlag"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Orientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientations) noexcept { return "Orientations"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DropActions) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropActions) noexcept { return "DropActions"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Edges) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edges) noexcept { return "Edges"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetAreas) noexcept { return "DockWidgetAreas"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ToolBarAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarAreas) noexcept { return "ToolBarAreas"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetArea) noexcept { return "DockWidgetArea"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ToolBarArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarArea) noexcept { return "ToolBarArea"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TextFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFormat) noexcept { return "TextFormat"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TextElideMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextElideMode) noexcept { return "TextElideMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DateFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DateFormat) noexcept { return "DateFormat"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TimeSpec) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimeSpec) noexcept { return "TimeSpec"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(DayOfWeek) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DayOfWeek) noexcept { return "DayOfWeek"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(CursorShape) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorShape) noexcept { return "CursorShape"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(GlobalColor) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GlobalColor) noexcept { return "GlobalColor"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(AspectRatioMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(AspectRatioMode) noexcept { return "AspectRatioMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TransformationMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TransformationMode) noexcept { return "TransformationMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ImageConversionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ImageConversionFlags) noexcept { return "ImageConversionFlags"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(Key) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Key) noexcept { return "Key"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ShortcutContext) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ShortcutContext) noexcept { return "ShortcutContext"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlag) noexcept { return "TextInteractionFlag"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlags) noexcept { return "TextInteractionFlags"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionMode) noexcept { return "ItemSelectionMode"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionOperation) noexcept { return "ItemSelectionOperation"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ItemFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemFlags) noexcept { return "ItemFlags"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(CheckState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CheckState) noexcept { return "CheckState"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ItemDataRole) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemDataRole) noexcept { return "ItemDataRole"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(SortOrder) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SortOrder) noexcept { return "SortOrder"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(CaseSensitivity) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CaseSensitivity) noexcept { return "CaseSensitivity"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(MatchFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MatchFlags) noexcept { return "MatchFlags"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(KeyboardModifiers) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(KeyboardModifiers) noexcept { return "KeyboardModifiers"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(MouseButtons) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseButtons) noexcept { return "MouseButtons"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WindowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowType) noexcept { return "WindowType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WindowState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowState) noexcept { return "WindowState"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WindowModality) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowModality) noexcept { return "WindowModality"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WidgetAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WidgetAttribute) noexcept { return "WidgetAttribute"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ApplicationAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationAttribute) noexcept { return "ApplicationAttribute"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WindowFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowFlags) noexcept { return "WindowFlags"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(WindowStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowStates) noexcept { return "WindowStates"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(FocusReason) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusReason) noexcept { return "FocusReason"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHint) noexcept { return "InputMethodHint"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQuery) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQuery) noexcept { return "InputMethodQuery"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHints) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHints) noexcept { return "InputMethodHints"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(EnterKeyType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(EnterKeyType) noexcept { return "EnterKeyType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQueries) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQueries) noexcept { return "InputMethodQueries"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TouchPointStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TouchPointStates) noexcept { return "TouchPointStates"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientation) noexcept { return "ScreenOrientation"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientations) noexcept { return "ScreenOrientations"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ConnectionType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ConnectionType) noexcept { return "ConnectionType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ApplicationState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationState) noexcept { return "ApplicationState"; } 8036: 8036: inline const QMetaObject *qt_getEnumMetaObject(GestureState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureState) noexcept { return "GestureState"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(GestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureType) noexcept { return "GestureType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(NativeGestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(NativeGestureType) noexcept { return "NativeGestureType"; } 8036: 8036: inline const QMetaObject *qt_getEnumMetaObject(CursorMoveStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorMoveStyle) noexcept { return "CursorMoveStyle"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TimerType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimerType) noexcept { return "TimerType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ScrollPhase) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollPhase) noexcept { return "ScrollPhase"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(MouseEventSource) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventSource) noexcept { return "MouseEventSource"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(MouseEventFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventFlag) noexcept { return "MouseEventFlag"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(ChecksumType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ChecksumType) noexcept { return "ChecksumType"; } 8036: inline const QMetaObject *qt_getEnumMetaObject(TabFocusBehavior) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TabFocusBehavior) noexcept { return "TabFocusBehavior"; } 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, Qt::MouseButtons::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseButtons::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, Qt::Orientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Orientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, Qt::KeyboardModifiers::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::KeyboardModifiers::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, Qt::WindowFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, Qt::Alignment::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Alignment::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::Edges::enum_type f1, Qt::Edges::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Edges::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Edges::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, Qt::ImageConversionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ImageConversionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, Qt::DockWidgetAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DockWidgetAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, Qt::ToolBarAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ToolBarAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, Qt::WindowStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, Qt::ScreenOrientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ScreenOrientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, Qt::DropActions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DropActions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, Qt::ItemFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ItemFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, Qt::MatchFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MatchFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, Qt::TextInteractionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TextInteractionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, Qt::InputMethodQueries::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodQueries::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, Qt::InputMethodHints::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodHints::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, Qt::TouchPointStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TouchPointStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, Qt::MouseEventFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseEventFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, Qt::GestureFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::GestureFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: typedef bool (*qInternalCallback)(void **); 8036: 8036: class __attribute__((visibility("default"))) QInternal { 8036: public: 8036: enum PaintDeviceFlags { 8036: UnknownDevice = 0x00, 8036: Widget = 0x01, 8036: Pixmap = 0x02, 8036: Image = 0x03, 8036: Printer = 0x04, 8036: Picture = 0x05, 8036: Pbuffer = 0x06, 8036: FramebufferObject = 0x07, 8036: CustomRaster = 0x08, 8036: MacQuartz = 0x09, 8036: PaintBuffer = 0x0a, 8036: OpenGL = 0x0b 8036: }; 8036: enum RelayoutType { 8036: RelayoutNormal, 8036: RelayoutDragging, 8036: RelayoutDropped 8036: }; 8036: 8036: enum DockPosition { 8036: LeftDock, 8036: RightDock, 8036: TopDock, 8036: BottomDock, 8036: DockCount 8036: }; 8036: 8036: enum Callback { 8036: EventNotifyCallback, 8036: LastCallback 8036: }; 8036: static bool registerCallback(Callback, qInternalCallback); 8036: static bool unregisterCallback(Callback, qInternalCallback); 8036: static bool activateCallbacks(Callback, void **); 8036: }; 8036: 8036: 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8036: 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stdarg.h" 1 3 4 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) char *qstrdup(const char *); 8036: 8036: inline uint qstrlen(const char *str) 8036: { return str ? uint(strlen(str)) : 0; } 8036: 8036: inline uint qstrnlen(const char *str, uint maxlen) 8036: { 8036: uint length = 0; 8036: if (str) { 8036: while (length < maxlen && *str++) 8036: length++; 8036: } 8036: return length; 8036: } 8036: 8036: __attribute__((visibility("default"))) char *qstrcpy(char *dst, const char *src); 8036: __attribute__((visibility("default"))) char *qstrncpy(char *dst, const char *src, uint len); 8036: 8036: __attribute__((visibility("default"))) int qstrcmp(const char *str1, const char *str2); 8036: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const QByteArray &str2); 8036: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const char *str2); 8036: static inline int qstrcmp(const char *str1, const QByteArray &str2) 8036: { return -qstrcmp(str2, str1); } 8036: 8036: inline int qstrncmp(const char *str1, const char *str2, uint len) 8036: { 8036: return (str1 && str2) ? strncmp(str1, str2, len) 8036: : (str1 ? 1 : (str2 ? -1 : 0)); 8036: } 8036: __attribute__((visibility("default"))) int qstricmp(const char *, const char *); 8036: __attribute__((visibility("default"))) int qstrnicmp(const char *, const char *, uint len); 8036: 8036: 8036: __attribute__((visibility("default"))) int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); 8036: __attribute__((visibility("default"))) int qsnprintf(char *str, size_t n, const char *fmt, ...); 8036: 8036: 8036: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len); 8036: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len, Qt::ChecksumType standard); 8036: 8036: class QByteRef; 8036: class QString; 8036: class QDataStream; 8036: template class QList; 8036: 8036: typedef QArrayData QByteArrayData; 8036: 8036: template struct QStaticByteArrayData 8036: { 8036: QByteArrayData ba; 8036: char data[N + 1]; 8036: 8036: QByteArrayData *data_ptr() const 8036: { 8036: do { } while ((false) && (ba.ref.isStatic())); 8036: return const_cast(&ba); 8036: } 8036: }; 8036: 8036: struct QByteArrayDataPtr 8036: { 8036: QByteArrayData *ptr; 8036: }; 8036: # 155 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: class __attribute__((visibility("default"))) QByteArray 8036: { 8036: private: 8036: typedef QTypedArrayData Data; 8036: 8036: public: 8036: enum Base64Option { 8036: Base64Encoding = 0, 8036: Base64UrlEncoding = 1, 8036: 8036: KeepTrailingEquals = 0, 8036: OmitTrailingEquals = 2 8036: }; 8036: typedef QFlags Base64Options; 8036: 8036: inline QByteArray() noexcept; 8036: QByteArray(const char *, int size = -1); 8036: QByteArray(int size, char c); 8036: QByteArray(int size, Qt::Initialization); 8036: inline QByteArray(const QByteArray &) noexcept; 8036: inline ~QByteArray(); 8036: 8036: QByteArray &operator=(const QByteArray &) noexcept; 8036: QByteArray &operator=(const char *str); 8036: 8036: inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8036: inline QByteArray &operator=(QByteArray &&other) noexcept 8036: { qSwap(d, other.d); return *this; } 8036: 8036: 8036: inline void swap(QByteArray &other) noexcept 8036: { qSwap(d, other.d); } 8036: 8036: inline int size() const; 8036: bool isEmpty() const; 8036: void resize(int size); 8036: 8036: QByteArray &fill(char c, int size = -1); 8036: 8036: int capacity() const; 8036: void reserve(int size); 8036: void squeeze(); 8036: 8036: 8036: operator const char *() const; 8036: operator const void *() const; 8036: 8036: char *data(); 8036: const char *data() const; 8036: inline const char *constData() const; 8036: inline void detach(); 8036: bool isDetached() const; 8036: inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } 8036: void clear(); 8036: 8036: char at(int i) const; 8036: char operator[](int i) const; 8036: char operator[](uint i) const; 8036: QByteRef operator[](int i); 8036: QByteRef operator[](uint i); 8036: 8036: int indexOf(char c, int from = 0) const; 8036: int indexOf(const char *c, int from = 0) const; 8036: int indexOf(const QByteArray &a, int from = 0) const; 8036: int lastIndexOf(char c, int from = -1) const; 8036: int lastIndexOf(const char *c, int from = -1) const; 8036: int lastIndexOf(const QByteArray &a, int from = -1) const; 8036: 8036: bool contains(char c) const; 8036: bool contains(const char *a) const; 8036: bool contains(const QByteArray &a) const; 8036: int count(char c) const; 8036: int count(const char *a) const; 8036: int count(const QByteArray &a) const; 8036: 8036: [[nodiscard]] QByteArray left(int len) const; 8036: [[nodiscard]] QByteArray right(int len) const; 8036: [[nodiscard]] QByteArray mid(int index, int len = -1) const; 8036: 8036: bool startsWith(const QByteArray &a) const; 8036: bool startsWith(char c) const; 8036: bool startsWith(const char *c) const; 8036: 8036: bool endsWith(const QByteArray &a) const; 8036: bool endsWith(char c) const; 8036: bool endsWith(const char *c) const; 8036: 8036: void truncate(int pos); 8036: void chop(int n); 8036: # 253 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() const & 8036: { return toLower_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() && 8036: { return toLower_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() const & 8036: { return toUpper_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() && 8036: { return toUpper_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() const & 8036: { return trimmed_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() && 8036: { return trimmed_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() const & 8036: { return simplified_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() && 8036: { return simplified_helper(*this); } 8036: # 279 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: [[nodiscard]] QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; 8036: [[nodiscard]] QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; 8036: 8036: QByteArray &prepend(char c); 8036: QByteArray &prepend(int count, char c); 8036: QByteArray &prepend(const char *s); 8036: QByteArray &prepend(const char *s, int len); 8036: QByteArray &prepend(const QByteArray &a); 8036: QByteArray &append(char c); 8036: QByteArray &append(int count, char c); 8036: QByteArray &append(const char *s); 8036: QByteArray &append(const char *s, int len); 8036: QByteArray &append(const QByteArray &a); 8036: QByteArray &insert(int i, char c); 8036: QByteArray &insert(int i, int count, char c); 8036: QByteArray &insert(int i, const char *s); 8036: QByteArray &insert(int i, const char *s, int len); 8036: QByteArray &insert(int i, const QByteArray &a); 8036: QByteArray &remove(int index, int len); 8036: QByteArray &replace(int index, int len, const char *s); 8036: QByteArray &replace(int index, int len, const char *s, int alen); 8036: QByteArray &replace(int index, int len, const QByteArray &s); 8036: QByteArray &replace(char before, const char *after); 8036: QByteArray &replace(char before, const QByteArray &after); 8036: QByteArray &replace(const char *before, const char *after); 8036: QByteArray &replace(const char *before, int bsize, const char *after, int asize); 8036: QByteArray &replace(const QByteArray &before, const QByteArray &after); 8036: QByteArray &replace(const QByteArray &before, const char *after); 8036: QByteArray &replace(const char *before, const QByteArray &after); 8036: QByteArray &replace(char before, char after); 8036: QByteArray &operator+=(char c); 8036: QByteArray &operator+=(const char *s); 8036: QByteArray &operator+=(const QByteArray &a); 8036: 8036: QList split(char sep) const; 8036: 8036: [[nodiscard]] QByteArray repeated(int times) const; 8036: # 337 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: short toShort(bool *ok = nullptr, int base = 10) const; 8036: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8036: int toInt(bool *ok = nullptr, int base = 10) const; 8036: uint toUInt(bool *ok = nullptr, int base = 10) const; 8036: long toLong(bool *ok = nullptr, int base = 10) const; 8036: ulong toULong(bool *ok = nullptr, int base = 10) const; 8036: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8036: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8036: float toFloat(bool *ok = nullptr) const; 8036: double toDouble(bool *ok = nullptr) const; 8036: QByteArray toBase64(Base64Options options) const; 8036: QByteArray toBase64() const; 8036: QByteArray toHex() const; 8036: QByteArray toHex(char separator) const; 8036: QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), 8036: const QByteArray &include = QByteArray(), 8036: char percent = '%') const; 8036: 8036: QByteArray &setNum(short, int base = 10); 8036: QByteArray &setNum(ushort, int base = 10); 8036: QByteArray &setNum(int, int base = 10); 8036: QByteArray &setNum(uint, int base = 10); 8036: QByteArray &setNum(qlonglong, int base = 10); 8036: QByteArray &setNum(qulonglong, int base = 10); 8036: QByteArray &setNum(float, char f = 'g', int prec = 6); 8036: QByteArray &setNum(double, char f = 'g', int prec = 6); 8036: QByteArray &setRawData(const char *a, uint n); 8036: 8036: [[nodiscard]] static QByteArray number(int, int base = 10); 8036: [[nodiscard]] static QByteArray number(uint, int base = 10); 8036: [[nodiscard]] static QByteArray number(qlonglong, int base = 10); 8036: [[nodiscard]] static QByteArray number(qulonglong, int base = 10); 8036: [[nodiscard]] static QByteArray number(double, char f = 'g', int prec = 6); 8036: [[nodiscard]] static QByteArray fromRawData(const char *, int size); 8036: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64, Base64Options options); 8036: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64); 8036: [[nodiscard]] static QByteArray fromHex(const QByteArray &hexEncoded); 8036: [[nodiscard]] static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); 8036: # 387 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8036: typedef char *iterator; 8036: typedef const char *const_iterator; 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: inline iterator begin(); 8036: inline const_iterator begin() const; 8036: inline const_iterator cbegin() const; 8036: inline const_iterator constBegin() const; 8036: inline iterator end(); 8036: inline const_iterator end() const; 8036: inline const_iterator cend() const; 8036: inline const_iterator constEnd() const; 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8036: 8036: 8036: typedef int size_type; 8036: typedef qptrdiff difference_type; 8036: typedef const char & const_reference; 8036: typedef char & reference; 8036: typedef char *pointer; 8036: typedef const char *const_pointer; 8036: typedef char value_type; 8036: void push_back(char c); 8036: void push_back(const char *c); 8036: void push_back(const QByteArray &a); 8036: void push_front(char c); 8036: void push_front(const char *c); 8036: void push_front(const QByteArray &a); 8036: 8036: static inline QByteArray fromStdString(const std::string &s); 8036: inline std::string toStdString() const; 8036: 8036: inline int count() const { return d->size; } 8036: int length() const { return d->size; } 8036: bool isNull() const; 8036: 8036: inline QByteArray(QByteArrayDataPtr dd) 8036: : d(static_cast(dd.ptr)) 8036: { 8036: } 8036: 8036: private: 8036: operator QNoImplicitBoolCast() const; 8036: Data *d; 8036: void reallocData(uint alloc, Data::AllocationOptions options); 8036: void expand(int i); 8036: QByteArray nulTerminated() const; 8036: 8036: static QByteArray toLower_helper(const QByteArray &a); 8036: static QByteArray toLower_helper(QByteArray &a); 8036: static QByteArray toUpper_helper(const QByteArray &a); 8036: static QByteArray toUpper_helper(QByteArray &a); 8036: static QByteArray trimmed_helper(const QByteArray &a); 8036: static QByteArray trimmed_helper(QByteArray &a); 8036: static QByteArray simplified_helper(const QByteArray &a); 8036: static QByteArray simplified_helper(QByteArray &a); 8036: 8036: friend class QByteRef; 8036: friend class QString; 8036: friend __attribute__((visibility("default"))) QByteArray qUncompress(const uchar *data, int nbytes); 8036: public: 8036: typedef Data * DataPtr; 8036: inline DataPtr &data_ptr() { return d; } 8036: }; 8036: 8036: constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QByteArray::Base64Options::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QByteArray::Base64Options::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: inline QByteArray::QByteArray() noexcept : d(Data::sharedNull()) { } 8036: inline QByteArray::~QByteArray() { if (!d->ref.deref()) Data::deallocate(d); } 8036: inline int QByteArray::size() const 8036: { return d->size; } 8036: 8036: inline char QByteArray::at(int i) const 8036: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8036: inline char QByteArray::operator[](int i) const 8036: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8036: inline char QByteArray::operator[](uint i) const 8036: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8036: 8036: inline bool QByteArray::isEmpty() const 8036: { return d->size == 0; } 8036: 8036: inline QByteArray::operator const char *() const 8036: { return d->data(); } 8036: inline QByteArray::operator const void *() const 8036: { return d->data(); } 8036: 8036: inline char *QByteArray::data() 8036: { detach(); return d->data(); } 8036: inline const char *QByteArray::data() const 8036: { return d->data(); } 8036: inline const char *QByteArray::constData() const 8036: { return d->data(); } 8036: inline void QByteArray::detach() 8036: { if (d->ref.isShared() || (d->offset != sizeof(QByteArrayData))) reallocData(uint(d->size) + 1u, d->detachFlags()); } 8036: inline bool QByteArray::isDetached() const 8036: { return !d->ref.isShared(); } 8036: inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) 8036: { d->ref.ref(); } 8036: 8036: inline int QByteArray::capacity() const 8036: { return d->alloc ? d->alloc - 1 : 0; } 8036: 8036: inline void QByteArray::reserve(int asize) 8036: { 8036: if (d->ref.isShared() || uint(asize) + 1u > d->alloc) { 8036: reallocData(qMax(uint(size()), uint(asize)) + 1u, d->detachFlags() | Data::CapacityReserved); 8036: } else { 8036: 8036: 8036: d->capacityReserved = true; 8036: } 8036: } 8036: 8036: inline void QByteArray::squeeze() 8036: { 8036: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) { 8036: reallocData(uint(d->size) + 1u, d->detachFlags() & ~Data::CapacityReserved); 8036: } else { 8036: 8036: 8036: d->capacityReserved = false; 8036: } 8036: } 8036: 8036: class __attribute__((visibility("default"))) QByteRef { 8036: QByteArray &a; 8036: int i; 8036: inline QByteRef(QByteArray &array, int idx) 8036: : a(array),i(idx) {} 8036: friend class QByteArray; 8036: public: 8036: inline operator char() const 8036: { return i < a.d->size ? a.d->data()[i] : char(0); } 8036: inline QByteRef &operator=(char c) 8036: { if (i >= a.d->size) a.expand(i); else a.detach(); 8036: a.d->data()[i] = c; return *this; } 8036: inline QByteRef &operator=(const QByteRef &c) 8036: { if (i >= a.d->size) a.expand(i); else a.detach(); 8036: a.d->data()[i] = c.a.d->data()[c.i]; return *this; } 8036: inline bool operator==(char c) const 8036: { return a.d->data()[i] == c; } 8036: inline bool operator!=(char c) const 8036: { return a.d->data()[i] != c; } 8036: inline bool operator>(char c) const 8036: { return a.d->data()[i] > c; } 8036: inline bool operator>=(char c) const 8036: { return a.d->data()[i] >= c; } 8036: inline bool operator<(char c) const 8036: { return a.d->data()[i] < c; } 8036: inline bool operator<=(char c) const 8036: { return a.d->data()[i] <= c; } 8036: }; 8036: 8036: inline QByteRef QByteArray::operator[](int i) 8036: { do { } while ((false) && (i >= 0)); return QByteRef(*this, i); } 8036: inline QByteRef QByteArray::operator[](uint i) 8036: { return QByteRef(*this, i); } 8036: inline QByteArray::iterator QByteArray::begin() 8036: { detach(); return d->data(); } 8036: inline QByteArray::const_iterator QByteArray::begin() const 8036: { return d->data(); } 8036: inline QByteArray::const_iterator QByteArray::cbegin() const 8036: { return d->data(); } 8036: inline QByteArray::const_iterator QByteArray::constBegin() const 8036: { return d->data(); } 8036: inline QByteArray::iterator QByteArray::end() 8036: { detach(); return d->data() + d->size; } 8036: inline QByteArray::const_iterator QByteArray::end() const 8036: { return d->data() + d->size; } 8036: inline QByteArray::const_iterator QByteArray::cend() const 8036: { return d->data() + d->size; } 8036: inline QByteArray::const_iterator QByteArray::constEnd() const 8036: { return d->data() + d->size; } 8036: inline QByteArray &QByteArray::append(int n, char ch) 8036: { return insert(d->size, n, ch); } 8036: inline QByteArray &QByteArray::prepend(int n, char ch) 8036: { return insert(0, n, ch); } 8036: inline QByteArray &QByteArray::operator+=(char c) 8036: { return append(c); } 8036: inline QByteArray &QByteArray::operator+=(const char *s) 8036: { return append(s); } 8036: inline QByteArray &QByteArray::operator+=(const QByteArray &a) 8036: { return append(a); } 8036: inline void QByteArray::push_back(char c) 8036: { append(c); } 8036: inline void QByteArray::push_back(const char *c) 8036: { append(c); } 8036: inline void QByteArray::push_back(const QByteArray &a) 8036: { append(a); } 8036: inline void QByteArray::push_front(char c) 8036: { prepend(c); } 8036: inline void QByteArray::push_front(const char *c) 8036: { prepend(c); } 8036: inline void QByteArray::push_front(const QByteArray &a) 8036: { prepend(a); } 8036: inline bool QByteArray::contains(const QByteArray &a) const 8036: { return indexOf(a) != -1; } 8036: inline bool QByteArray::contains(char c) const 8036: { return indexOf(c) != -1; } 8036: inline bool operator==(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } 8036: inline bool operator==(const QByteArray &a1, const char *a2) noexcept 8036: { return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } 8036: inline bool operator==(const char *a1, const QByteArray &a2) noexcept 8036: { return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } 8036: inline bool operator!=(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return !(a1==a2); } 8036: inline bool operator!=(const QByteArray &a1, const char *a2) noexcept 8036: { return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } 8036: inline bool operator!=(const char *a1, const QByteArray &a2) noexcept 8036: { return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } 8036: inline bool operator<(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) < 0; } 8036: inline bool operator<(const QByteArray &a1, const char *a2) noexcept 8036: { return qstrcmp(a1, a2) < 0; } 8036: inline bool operator<(const char *a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) < 0; } 8036: inline bool operator<=(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) <= 0; } 8036: inline bool operator<=(const QByteArray &a1, const char *a2) noexcept 8036: { return qstrcmp(a1, a2) <= 0; } 8036: inline bool operator<=(const char *a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) <= 0; } 8036: inline bool operator>(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) > 0; } 8036: inline bool operator>(const QByteArray &a1, const char *a2) noexcept 8036: { return qstrcmp(a1, a2) > 0; } 8036: inline bool operator>(const char *a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) > 0; } 8036: inline bool operator>=(const QByteArray &a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) >= 0; } 8036: inline bool operator>=(const QByteArray &a1, const char *a2) noexcept 8036: { return qstrcmp(a1, a2) >= 0; } 8036: inline bool operator>=(const char *a1, const QByteArray &a2) noexcept 8036: { return qstrcmp(a1, a2) >= 0; } 8036: 8036: inline const QByteArray operator+(const QByteArray &a1, const QByteArray &a2) 8036: { return QByteArray(a1) += a2; } 8036: inline const QByteArray operator+(const QByteArray &a1, const char *a2) 8036: { return QByteArray(a1) += a2; } 8036: inline const QByteArray operator+(const QByteArray &a1, char a2) 8036: { return QByteArray(a1) += a2; } 8036: inline const QByteArray operator+(const char *a1, const QByteArray &a2) 8036: { return QByteArray(a1) += a2; } 8036: inline const QByteArray operator+(char a1, const QByteArray &a2) 8036: { return QByteArray(&a1, 1) += a2; } 8036: 8036: inline bool QByteArray::contains(const char *c) const 8036: { return indexOf(c) != -1; } 8036: inline QByteArray &QByteArray::replace(char before, const char *c) 8036: { return replace(&before, 1, c, qstrlen(c)); } 8036: inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) 8036: { return replace(before.constData(), before.size(), c, qstrlen(c)); } 8036: inline QByteArray &QByteArray::replace(const char *before, const char *after) 8036: { return replace(before, qstrlen(before), after, qstrlen(after)); } 8036: 8036: inline QByteArray &QByteArray::setNum(short n, int base) 8036: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(ushort(n)), base); } 8036: inline QByteArray &QByteArray::setNum(ushort n, int base) 8036: { return setNum(qulonglong(n), base); } 8036: inline QByteArray &QByteArray::setNum(int n, int base) 8036: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(uint(n)), base); } 8036: inline QByteArray &QByteArray::setNum(uint n, int base) 8036: { return setNum(qulonglong(n), base); } 8036: inline QByteArray &QByteArray::setNum(float n, char f, int prec) 8036: { return setNum(double(n),f,prec); } 8036: 8036: inline std::string QByteArray::toStdString() const 8036: { return std::string(constData(), length()); } 8036: 8036: inline QByteArray QByteArray::fromStdString(const std::string &s) 8036: { return QByteArray(s.data(), int(s.size())); } 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QByteArray &); 8036: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QByteArray &); 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); 8036: __attribute__((visibility("default"))) QByteArray qUncompress(const uchar* data, int nbytes); 8036: inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) 8036: { return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } 8036: inline QByteArray qUncompress(const QByteArray& data) 8036: { return qUncompress(reinterpret_cast(data.constData()), data.size()); } 8036: 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QByteArray)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QByteArray >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QByteArray) }; static inline const char *name() { return "QByteArray"; } }; inline void swap(QByteArray &value1, QByteArray &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearraylist.h" 2 3 4 8036: 8036: 8036: 8036: typedef QListIterator QByteArrayListIterator; 8036: typedef QMutableListIterator QMutableByteArrayListIterator; 8036: 8036: typedef QList QByteArrayList; 8036: 8036: namespace QtPrivate { 8036: QByteArray __attribute__((visibility("default"))) QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template <> struct QListSpecialMethods 8036: 8036: { 8036: 8036: protected: 8036: ~QListSpecialMethods() {} 8036: 8036: public: 8036: inline QByteArray join() const 8036: { return QtPrivate::QByteArrayList_join(self(), nullptr, 0); } 8036: inline QByteArray join(const QByteArray &sep) const 8036: { return QtPrivate::QByteArrayList_join(self(), sep.constData(), sep.size()); } 8036: inline QByteArray join(char sep) const 8036: { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } 8036: 8036: private: 8036: typedef QList Self; 8036: Self *self() { return static_cast(this); } 8036: const Self *self() const { return static_cast(this); } 8036: }; 8036: 8036: 8036: # 1094 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h" 1 3 4 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 1 3 4 8036: # 76 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: 8036: 8036: class QCharRef; 8036: class QRegExp; 8036: class QRegularExpression; 8036: class QRegularExpressionMatch; 8036: class QString; 8036: class QStringList; 8036: class QTextCodec; 8036: class QStringRef; 8036: template class QVector; 8036: 8036: class QLatin1String 8036: { 8036: public: 8036: constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {} 8036: constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? int(strlen(s)) : 0), m_data(s) {} 8036: constexpr inline explicit QLatin1String(const char *s, int sz) noexcept : m_size(sz), m_data(s) {} 8036: inline explicit QLatin1String(const QByteArray &s) noexcept : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {} 8036: 8036: constexpr const char *latin1() const noexcept { return m_data; } 8036: constexpr int size() const noexcept { return m_size; } 8036: constexpr const char *data() const noexcept { return m_data; } 8036: 8036: constexpr QLatin1Char at(int i) const { return QLatin1Char(m_data[i]); } 8036: constexpr QLatin1Char operator[](int i) const { return at(i); } 8036: 8036: constexpr QLatin1String mid(int pos) const 8036: { return QLatin1String(m_data + pos, m_size - pos); } 8036: constexpr QLatin1String mid(int pos, int n) const 8036: { return QLatin1String(m_data + pos, n); } 8036: constexpr QLatin1String left(int n) const 8036: { return QLatin1String(m_data, n); } 8036: constexpr QLatin1String right(int n) const 8036: { return QLatin1String(m_data + m_size - n, n); } 8036: 8036: inline bool operator==(const QString &s) const noexcept; 8036: inline bool operator!=(const QString &s) const noexcept; 8036: inline bool operator>(const QString &s) const noexcept; 8036: inline bool operator<(const QString &s) const noexcept; 8036: inline bool operator>=(const QString &s) const noexcept; 8036: inline bool operator<=(const QString &s) const noexcept; 8036: # 135 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: private: 8036: int m_size; 8036: const char *m_data; 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLatin1String)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLatin1String >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLatin1String) }; static inline const char *name() { return "QLatin1String"; } }; 8036: 8036: 8036: typedef QLatin1String QLatin1Literal; 8036: 8036: 8036: typedef QTypedArrayData QStringData; 8036: # 166 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: typedef char16_t qunicodechar; 8036: 8036: 8036: 8036: static_assert(bool(sizeof(qunicodechar) == 2), "qunicodechar must typedef an integral type of size 2") 8036: ; 8036: # 194 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: template 8036: struct QStaticStringData 8036: { 8036: QArrayData str; 8036: qunicodechar data[N + 1]; 8036: 8036: QStringData *data_ptr() const 8036: { 8036: do { } while ((false) && (str.ref.isStatic())); 8036: return const_cast(static_cast(&str)); 8036: } 8036: }; 8036: 8036: struct QStringDataPtr 8036: { 8036: QStringData *ptr; 8036: }; 8036: 8036: class __attribute__((visibility("default"))) QString 8036: { 8036: public: 8036: typedef QStringData Data; 8036: 8036: inline QString() noexcept; 8036: explicit QString(const QChar *unicode, int size = -1); 8036: QString(QChar c); 8036: QString(int size, QChar c); 8036: inline QString(QLatin1String latin1); 8036: inline QString(const QString &) noexcept; 8036: inline ~QString(); 8036: QString &operator=(QChar c); 8036: QString &operator=(const QString &) noexcept; 8036: QString &operator=(QLatin1String latin1); 8036: 8036: inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8036: inline QString &operator=(QString &&other) noexcept 8036: { qSwap(d, other.d); return *this; } 8036: 8036: inline void swap(QString &other) noexcept { qSwap(d, other.d); } 8036: inline int size() const { return d->size; } 8036: inline int count() const { return d->size; } 8036: inline int length() const; 8036: inline bool isEmpty() const; 8036: void resize(int size); 8036: void resize(int size, QChar fillChar); 8036: 8036: QString &fill(QChar c, int size = -1); 8036: void truncate(int pos); 8036: void chop(int n); 8036: 8036: int capacity() const; 8036: inline void reserve(int size); 8036: inline void squeeze(); 8036: 8036: inline const QChar *unicode() const; 8036: inline QChar *data(); 8036: inline const QChar *data() const; 8036: inline const QChar *constData() const; 8036: 8036: inline void detach(); 8036: inline bool isDetached() const; 8036: inline bool isSharedWith(const QString &other) const { return d == other.d; } 8036: void clear(); 8036: 8036: inline const QChar at(int i) const; 8036: const QChar operator[](int i) const; 8036: QCharRef operator[](int i); 8036: const QChar operator[](uint i) const; 8036: QCharRef operator[](uint i); 8036: 8036: [[nodiscard]] QString arg(qlonglong a, int fieldwidth=0, int base=10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(qulonglong a, int fieldwidth=0, int base=10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(long a, int fieldwidth=0, int base=10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(ulong a, int fieldwidth=0, int base=10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(int a, int fieldWidth = 0, int base = 10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(uint a, int fieldWidth = 0, int base = 10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(short a, int fieldWidth = 0, int base = 10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(ushort a, int fieldWidth = 0, int base = 10, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(char a, int fieldWidth = 0, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(QChar a, int fieldWidth = 0, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(const QString &a, int fieldWidth = 0, 8036: QChar fillChar = QLatin1Char(' ')) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7, const QString &a8) const; 8036: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7, const QString &a8, const QString &a9) const; 8036: 8036: QString &vsprintf(const char *format, va_list ap) __attribute__((format(printf, (2), (0)))); 8036: QString &sprintf(const char *format, ...) __attribute__((format(printf, (2), (3)))); 8036: static QString vasprintf(const char *format, va_list ap) __attribute__((format(printf, (1), (0)))); 8036: static QString asprintf(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8036: 8036: int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(QLatin1String s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(QLatin1String s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: inline bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: 8036: int indexOf(const QRegExp &, int from = 0) const; 8036: int lastIndexOf(const QRegExp &, int from = -1) const; 8036: inline bool contains(const QRegExp &rx) const { return indexOf(rx) != -1; } 8036: int count(const QRegExp &) const; 8036: 8036: int indexOf(QRegExp &, int from = 0) const; 8036: int lastIndexOf(QRegExp &, int from = -1) const; 8036: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } 8036: 8036: 8036: 8036: int indexOf(const QRegularExpression &re, int from = 0) const; 8036: int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8036: int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8036: int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8036: bool contains(const QRegularExpression &re) const; 8036: bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; 8036: int count(const QRegularExpression &re) const; 8036: 8036: 8036: enum SectionFlag { 8036: SectionDefault = 0x00, 8036: SectionSkipEmpty = 0x01, 8036: SectionIncludeLeadingSep = 0x02, 8036: SectionIncludeTrailingSep = 0x04, 8036: SectionCaseInsensitiveSeps = 0x08 8036: }; 8036: typedef QFlags SectionFlags; 8036: 8036: QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8036: QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8036: 8036: QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8036: 8036: 8036: QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8036: 8036: [[nodiscard]] QString left(int n) const; 8036: [[nodiscard]] QString right(int n) const; 8036: [[nodiscard]] QString mid(int position, int n = -1) const; 8036: [[nodiscard]] QStringRef leftRef(int n) const; 8036: [[nodiscard]] QStringRef rightRef(int n) const; 8036: [[nodiscard]] QStringRef midRef(int position, int n = -1) const; 8036: 8036: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: [[nodiscard]] QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8036: [[nodiscard]] QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8036: # 393 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() const & 8036: { return toLower_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() && 8036: { return toLower_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() const & 8036: { return toUpper_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() && 8036: { return toUpper_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() const & 8036: { return toCaseFolded_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() && 8036: { return toCaseFolded_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() const & 8036: { return trimmed_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() && 8036: { return trimmed_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() const & 8036: { return simplified_helper(*this); } 8036: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() && 8036: { return simplified_helper(*this); } 8036: # 423 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: [[nodiscard]] QString toHtmlEscaped() const; 8036: 8036: QString &insert(int i, QChar c); 8036: QString &insert(int i, const QChar *uc, int len); 8036: inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } 8036: inline QString &insert(int i, const QStringRef &s); 8036: QString &insert(int i, QLatin1String s); 8036: QString &append(QChar c); 8036: QString &append(const QChar *uc, int len); 8036: QString &append(const QString &s); 8036: QString &append(const QStringRef &s); 8036: QString &append(QLatin1String s); 8036: inline QString &prepend(QChar c) { return insert(0, c); } 8036: inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); } 8036: inline QString &prepend(const QString &s) { return insert(0, s); } 8036: inline QString &prepend(const QStringRef &s) { return insert(0, s); } 8036: inline QString &prepend(QLatin1String s) { return insert(0, s); } 8036: 8036: inline QString &operator+=(QChar c) { 8036: if (d->ref.isShared() || uint(d->size) + 2u > d->alloc) 8036: reallocData(uint(d->size) + 2u, true); 8036: d->data()[d->size++] = c.unicode(); 8036: d->data()[d->size] = '\0'; 8036: return *this; 8036: } 8036: 8036: inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } 8036: inline QString &operator+=(const QString &s) { return append(s); } 8036: inline QString &operator+=(const QStringRef &s) { return append(s); } 8036: inline QString &operator+=(QLatin1String s) { return append(s); } 8036: 8036: QString &remove(int i, int len); 8036: QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(int i, int len, QChar after); 8036: QString &replace(int i, int len, const QChar *s, int slen); 8036: QString &replace(int i, int len, const QString &after); 8036: QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(const QString &before, const QString &after, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: 8036: QString &replace(const QRegExp &rx, const QString &after); 8036: inline QString &remove(const QRegExp &rx) 8036: { return replace(rx, QString()); } 8036: 8036: 8036: QString &replace(const QRegularExpression &re, const QString &after); 8036: inline QString &remove(const QRegularExpression &re) 8036: { return replace(re, QString()); } 8036: 8036: 8036: enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; 8036: 8036: [[nodiscard]] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: [[nodiscard]] QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: [[nodiscard]] QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: [[nodiscard]] QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: [[nodiscard]] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8036: [[nodiscard]] QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8036: 8036: 8036: [[nodiscard]] QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8036: [[nodiscard]] QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8036: 8036: enum NormalizationForm { 8036: NormalizationForm_D, 8036: NormalizationForm_C, 8036: NormalizationForm_KD, 8036: NormalizationForm_KC 8036: }; 8036: [[nodiscard]] QString normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; 8036: 8036: [[nodiscard]] QString repeated(int times) const; 8036: 8036: const ushort *utf16() const; 8036: 8036: 8036: [[nodiscard]] QByteArray toLatin1() const & 8036: { return toLatin1_helper(*this); } 8036: [[nodiscard]] QByteArray toLatin1() && 8036: { return toLatin1_helper_inplace(*this); } 8036: [[nodiscard]] QByteArray toUtf8() const & 8036: { return toUtf8_helper(*this); } 8036: [[nodiscard]] QByteArray toUtf8() && 8036: { return toUtf8_helper(*this); } 8036: [[nodiscard]] QByteArray toLocal8Bit() const & 8036: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8036: [[nodiscard]] QByteArray toLocal8Bit() && 8036: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8036: 8036: 8036: 8036: 8036: 8036: [[nodiscard]] QVector toUcs4() const; 8036: 8036: 8036: static inline QString fromLatin1(const char *str, int size = -1) 8036: { 8036: QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) }; 8036: return QString(dataPtr); 8036: } 8036: static inline QString fromUtf8(const char *str, int size = -1) 8036: { 8036: return fromUtf8_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8036: } 8036: static inline QString fromLocal8Bit(const char *str, int size = -1) 8036: { 8036: return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8036: } 8036: static inline QString fromLatin1(const QByteArray &str) 8036: { return str.isNull() ? QString() : fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); } 8036: static inline QString fromUtf8(const QByteArray &str) 8036: { return str.isNull() ? QString() : fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); } 8036: static inline QString fromLocal8Bit(const QByteArray &str) 8036: { return str.isNull() ? QString() : fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); } 8036: static QString fromUtf16(const ushort *, int size = -1); 8036: static QString fromUcs4(const uint *, int size = -1); 8036: static QString fromRawData(const QChar *, int size); 8036: 8036: 8036: static QString fromUtf16(const char16_t *str, int size = -1) 8036: { return fromUtf16(reinterpret_cast(str), size); } 8036: static QString fromUcs4(const char32_t *str, int size = -1) 8036: { return fromUcs4(reinterpret_cast(str), size); } 8036: # 570 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: inline int toWCharArray(wchar_t *array) const; 8036: [[nodiscard]] static inline QString fromWCharArray(const wchar_t *string, int size = -1); 8036: 8036: QString &setRawData(const QChar *unicode, int size); 8036: QString &setUnicode(const QChar *unicode, int size); 8036: inline QString &setUtf16(const ushort *utf16, int size); 8036: 8036: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: 8036: static inline int compare(const QString &s1, const QString &s2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8036: { return s1.compare(s2, cs); } 8036: 8036: static inline int compare(const QString &s1, QLatin1String s2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8036: { return s1.compare(s2, cs); } 8036: static inline int compare(QLatin1String s1, const QString &s2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8036: { return -s2.compare(s1, cs); } 8036: 8036: inline int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: static int compare(const QString &s1, const QStringRef &s2, 8036: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8036: 8036: int localeAwareCompare(const QString& s) const; 8036: static int localeAwareCompare(const QString& s1, const QString& s2) 8036: { return s1.localeAwareCompare(s2); } 8036: 8036: int localeAwareCompare(const QStringRef &s) const; 8036: static int localeAwareCompare(const QString& s1, const QStringRef& s2); 8036: 8036: 8036: short toShort(bool *ok=nullptr, int base=10) const; 8036: ushort toUShort(bool *ok=nullptr, int base=10) const; 8036: int toInt(bool *ok=nullptr, int base=10) const; 8036: uint toUInt(bool *ok=nullptr, int base=10) const; 8036: long toLong(bool *ok=nullptr, int base=10) const; 8036: ulong toULong(bool *ok=nullptr, int base=10) const; 8036: qlonglong toLongLong(bool *ok=nullptr, int base=10) const; 8036: qulonglong toULongLong(bool *ok=nullptr, int base=10) const; 8036: float toFloat(bool *ok=nullptr) const; 8036: double toDouble(bool *ok=nullptr) const; 8036: 8036: QString &setNum(short, int base=10); 8036: QString &setNum(ushort, int base=10); 8036: QString &setNum(int, int base=10); 8036: QString &setNum(uint, int base=10); 8036: QString &setNum(long, int base=10); 8036: QString &setNum(ulong, int base=10); 8036: QString &setNum(qlonglong, int base=10); 8036: QString &setNum(qulonglong, int base=10); 8036: QString &setNum(float, char f='g', int prec=6); 8036: QString &setNum(double, char f='g', int prec=6); 8036: 8036: static QString number(int, int base=10); 8036: static QString number(uint, int base=10); 8036: static QString number(long, int base=10); 8036: static QString number(ulong, int base=10); 8036: static QString number(qlonglong, int base=10); 8036: static QString number(qulonglong, int base=10); 8036: static QString number(double, char f='g', int prec=6); 8036: 8036: friend __attribute__((visibility("default"))) bool operator==(const QString &s1, const QString &s2) noexcept; 8036: friend __attribute__((visibility("default"))) bool operator<(const QString &s1, const QString &s2) noexcept; 8036: friend inline bool operator>(const QString &s1, const QString &s2) noexcept { return s2 < s1; } 8036: friend inline bool operator!=(const QString &s1, const QString &s2) noexcept { return !(s1 == s2); } 8036: friend inline bool operator<=(const QString &s1, const QString &s2) noexcept { return !(s1 > s2); } 8036: friend inline bool operator>=(const QString &s1, const QString &s2) noexcept { return !(s1 < s2); } 8036: 8036: bool operator==(QLatin1String s) const noexcept; 8036: bool operator<(QLatin1String s) const noexcept; 8036: bool operator>(QLatin1String s) const noexcept; 8036: inline bool operator!=(QLatin1String s) const noexcept { return !operator==(s); } 8036: inline bool operator<=(QLatin1String s) const noexcept { return !operator>(s); } 8036: inline bool operator>=(QLatin1String s) const noexcept { return !operator<(s); } 8036: # 720 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: typedef QChar *iterator; 8036: typedef const QChar *const_iterator; 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: inline iterator begin(); 8036: inline const_iterator begin() const; 8036: inline const_iterator cbegin() const; 8036: inline const_iterator constBegin() const; 8036: inline iterator end(); 8036: inline const_iterator end() const; 8036: inline const_iterator cend() const; 8036: inline const_iterator constEnd() const; 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8036: 8036: 8036: typedef int size_type; 8036: typedef qptrdiff difference_type; 8036: typedef const QChar & const_reference; 8036: typedef QChar & reference; 8036: typedef QChar *pointer; 8036: typedef const QChar *const_pointer; 8036: typedef QChar value_type; 8036: inline void push_back(QChar c) { append(c); } 8036: inline void push_back(const QString &s) { append(s); } 8036: inline void push_front(QChar c) { prepend(c); } 8036: inline void push_front(const QString &s) { prepend(s); } 8036: 8036: static inline QString fromStdString(const std::string &s); 8036: inline std::string toStdString() const; 8036: static inline QString fromStdWString(const std::wstring &s); 8036: inline std::wstring toStdWString() const; 8036: 8036: 8036: static inline QString fromStdU16String(const std::u16string &s); 8036: inline std::u16string toStdU16String() const; 8036: static inline QString fromStdU32String(const std::u32string &s); 8036: inline std::u32string toStdU32String() const; 8036: # 774 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: struct Null { }; 8036: 8036: static const Null null; 8036: inline QString(const Null &): d(Data::sharedNull()) {} 8036: inline QString &operator=(const Null &) { *this = QString(); return *this; } 8036: 8036: inline bool isNull() const { return d == Data::sharedNull(); } 8036: 8036: 8036: bool isSimpleText() const; 8036: bool isRightToLeft() const; 8036: 8036: QString(int size, Qt::Initialization); 8036: constexpr inline QString(QStringDataPtr dd) : d(dd.ptr) {} 8036: 8036: private: 8036: 8036: QString &operator+=(const char *s); 8036: QString &operator+=(const QByteArray &s); 8036: QString(const char *ch); 8036: QString(const QByteArray &a); 8036: QString &operator=(const char *ch); 8036: QString &operator=(const QByteArray &a); 8036: 8036: 8036: Data *d; 8036: 8036: friend inline bool operator==(QChar, const QString &) noexcept; 8036: friend inline bool operator< (QChar, const QString &) noexcept; 8036: friend inline bool operator> (QChar, const QString &) noexcept; 8036: friend inline bool operator==(QChar, const QStringRef &) noexcept; 8036: friend inline bool operator< (QChar, const QStringRef &) noexcept; 8036: friend inline bool operator> (QChar, const QStringRef &) noexcept; 8036: friend inline bool operator==(QChar, QLatin1String) noexcept; 8036: friend inline bool operator< (QChar, QLatin1String) noexcept; 8036: friend inline bool operator> (QChar, QLatin1String) noexcept; 8036: 8036: void reallocData(uint alloc, bool grow = false); 8036: 8036: void expand(int i); 8036: 8036: QString multiArg(int numArgs, const QString **args) const; 8036: static int compare_helper(const QChar *data1, int length1, 8036: const QChar *data2, int length2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8036: static int compare_helper(const QChar *data1, int length1, 8036: const char *data2, int length2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: static int compare_helper(const QChar *data1, int length1, 8036: QLatin1String s2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8036: static int localeAwareCompare_helper(const QChar *data1, int length1, 8036: const QChar *data2, int length2); 8036: static QString toLower_helper(const QString &str); 8036: static QString toLower_helper(QString &str); 8036: static QString toUpper_helper(const QString &str); 8036: static QString toUpper_helper(QString &str); 8036: static QString toCaseFolded_helper(const QString &str); 8036: static QString toCaseFolded_helper(QString &str); 8036: static QString trimmed_helper(const QString &str); 8036: static QString trimmed_helper(QString &str); 8036: static QString simplified_helper(const QString &str); 8036: static QString simplified_helper(QString &str); 8036: static Data *fromLatin1_helper(const char *str, int size = -1); 8036: static Data *fromAscii_helper(const char *str, int size = -1); 8036: static QString fromUtf8_helper(const char *str, int size); 8036: static QString fromLocal8Bit_helper(const char *, int size); 8036: static QByteArray toLatin1_helper(const QString &); 8036: static QByteArray toLatin1_helper(const QChar *data, int size); 8036: static QByteArray toLatin1_helper_inplace(QString &); 8036: static QByteArray toUtf8_helper(const QString &); 8036: static QByteArray toLocal8Bit_helper(const QChar *data, int size); 8036: static int toUcs4_helper(const ushort *uc, int length, uint *out); 8036: static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); 8036: static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); 8036: void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); 8036: friend class QCharRef; 8036: friend class QTextCodec; 8036: friend class QStringRef; 8036: friend class QByteArray; 8036: friend class QCollator; 8036: friend struct QAbstractConcatenable; 8036: 8036: template static 8036: T toIntegral_helper(const QChar *data, int len, bool *ok, int base) 8036: { 8036: 8036: const bool isUnsigned = T(0) < T(-1); 8036: typedef typename QtPrivate::QConditional::Type Int64; 8036: typedef typename QtPrivate::QConditional::Type Int32; 8036: 8036: 8036: Int64 val = toIntegral_helper(data, Int32(len), ok, base); 8036: if (T(val) != val) { 8036: if (ok) 8036: *ok = false; 8036: val = 0; 8036: } 8036: return T(val); 8036: } 8036: 8036: public: 8036: typedef Data * DataPtr; 8036: inline DataPtr &data_ptr() { return d; } 8036: }; 8036: 8036: inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.latin1(), aLatin1.size())) 8036: { } 8036: inline int QString::length() const 8036: { return d->size; } 8036: inline const QChar QString::at(int i) const 8036: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8036: inline const QChar QString::operator[](int i) const 8036: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8036: inline const QChar QString::operator[](uint i) const 8036: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8036: inline bool QString::isEmpty() const 8036: { return d->size == 0; } 8036: inline const QChar *QString::unicode() const 8036: { return reinterpret_cast(d->data()); } 8036: inline const QChar *QString::data() const 8036: { return reinterpret_cast(d->data()); } 8036: inline QChar *QString::data() 8036: { detach(); return reinterpret_cast(d->data()); } 8036: inline const QChar *QString::constData() const 8036: { return reinterpret_cast(d->data()); } 8036: inline void QString::detach() 8036: { if (d->ref.isShared() || (d->offset != sizeof(QStringData))) reallocData(uint(d->size) + 1u); } 8036: inline bool QString::isDetached() const 8036: { return !d->ref.isShared(); } 8036: inline void QString::clear() 8036: { if (!isNull()) *this = QString(); } 8036: inline QString::QString(const QString &other) noexcept : d(other.d) 8036: { do { } while ((false) && (&other != this)); d->ref.ref(); } 8036: inline int QString::capacity() const 8036: { return d->alloc ? d->alloc - 1 : 0; } 8036: inline QString &QString::setNum(short n, int base) 8036: { return setNum(qlonglong(n), base); } 8036: inline QString &QString::setNum(ushort n, int base) 8036: { return setNum(qulonglong(n), base); } 8036: inline QString &QString::setNum(int n, int base) 8036: { return setNum(qlonglong(n), base); } 8036: inline QString &QString::setNum(uint n, int base) 8036: { return setNum(qulonglong(n), base); } 8036: inline QString &QString::setNum(long n, int base) 8036: { return setNum(qlonglong(n), base); } 8036: inline QString &QString::setNum(ulong n, int base) 8036: { return setNum(qulonglong(n), base); } 8036: inline QString &QString::setNum(float n, char f, int prec) 8036: { return setNum(double(n),f,prec); } 8036: inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(uint a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(long a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(ulong a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(short a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(ushort a, int fieldWidth, int base, QChar fillChar) const 8036: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8036: inline QString QString::arg(const QString &a1, const QString &a2) const 8036: { const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const 8036: { const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4) const 8036: { const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5) const 8036: { const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6) const 8036: { const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7) const 8036: { const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7, const QString &a8) const 8036: { const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } 8036: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8036: const QString &a4, const QString &a5, const QString &a6, 8036: const QString &a7, const QString &a8, const QString &a9) const 8036: { const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } 8036: 8036: inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const 8036: { return section(QString(asep), astart, aend, aflags); } 8036: 8036: 8036: # 965 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 965 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: 8036: 8036: 8036: 8036: inline int QString::toWCharArray(wchar_t *array) const 8036: { 8036: if (sizeof(wchar_t) == sizeof(QChar)) { 8036: memcpy(array, d->data(), sizeof(QChar) * size()); 8036: return size(); 8036: } else { 8036: return toUcs4_helper(d->data(), size(), reinterpret_cast(array)); 8036: } 8036: } 8036: 8036: 8036: # 979 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 979 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: 8036: 8036: inline QString QString::fromWCharArray(const wchar_t *string, int size) 8036: { 8036: return sizeof(wchar_t) == sizeof(QChar) ? fromUtf16(reinterpret_cast(string), size) 8036: : fromUcs4(reinterpret_cast(string), size); 8036: } 8036: 8036: 8036: class __attribute__((visibility("default"))) QCharRef { 8036: QString &s; 8036: int i; 8036: inline QCharRef(QString &str, int idx) 8036: : s(str),i(idx) {} 8036: friend class QString; 8036: public: 8036: 8036: 8036: 8036: 8036: inline operator QChar() const 8036: { return i < s.d->size ? s.d->data()[i] : 0; } 8036: inline QCharRef &operator=(QChar c) 8036: { if (i >= s.d->size) s.resize(i + 1, QLatin1Char(' ')); else s.detach(); 8036: s.d->data()[i] = c.unicode(); return *this; } 8036: # 1012 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } 8036: inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } 8036: inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } 8036: inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } 8036: inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } 8036: 8036: 8036: inline bool isNull() const { return QChar(*this).isNull(); } 8036: inline bool isPrint() const { return QChar(*this).isPrint(); } 8036: inline bool isPunct() const { return QChar(*this).isPunct(); } 8036: inline bool isSpace() const { return QChar(*this).isSpace(); } 8036: inline bool isMark() const { return QChar(*this).isMark(); } 8036: inline bool isLetter() const { return QChar(*this).isLetter(); } 8036: inline bool isNumber() const { return QChar(*this).isNumber(); } 8036: inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } 8036: inline bool isDigit() const { return QChar(*this).isDigit(); } 8036: inline bool isLower() const { return QChar(*this).isLower(); } 8036: inline bool isUpper() const { return QChar(*this).isUpper(); } 8036: inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } 8036: 8036: inline int digitValue() const { return QChar(*this).digitValue(); } 8036: QChar toLower() const { return QChar(*this).toLower(); } 8036: QChar toUpper() const { return QChar(*this).toUpper(); } 8036: QChar toTitleCase () const { return QChar(*this).toTitleCase(); } 8036: 8036: QChar::Category category() const { return QChar(*this).category(); } 8036: QChar::Direction direction() const { return QChar(*this).direction(); } 8036: QChar::JoiningType joiningType() const { return QChar(*this).joiningType(); } 8036: 8036: QChar::Joining joining() const 8036: { 8036: switch (QChar(*this).joiningType()) { 8036: case QChar::Joining_Causing: return QChar::Center; 8036: case QChar::Joining_Dual: return QChar::Dual; 8036: case QChar::Joining_Right: return QChar::Right; 8036: case QChar::Joining_None: 8036: case QChar::Joining_Left: 8036: case QChar::Joining_Transparent: 8036: default: return QChar::OtherJoining; 8036: } 8036: } 8036: 8036: bool hasMirrored() const { return QChar(*this).hasMirrored(); } 8036: QChar mirroredChar() const { return QChar(*this).mirroredChar(); } 8036: QString decomposition() const { return QChar(*this).decomposition(); } 8036: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } 8036: uchar combiningClass() const { return QChar(*this).combiningClass(); } 8036: 8036: inline QChar::Script script() const { return QChar(*this).script(); } 8036: 8036: QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } 8036: 8036: inline uchar cell() const { return QChar(*this).cell(); } 8036: inline uchar row() const { return QChar(*this).row(); } 8036: inline void setCell(uchar cell); 8036: inline void setRow(uchar row); 8036: 8036: 8036: 8036: 8036: char toLatin1() const { return QChar(*this).toLatin1(); } 8036: ushort unicode() const { return QChar(*this).unicode(); } 8036: ushort& unicode() { return s.data()[i].unicode(); } 8036: 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QCharRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QCharRef >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QCharRef) }; static inline const char *name() { return "QCharRef"; } }; 8036: 8036: inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } 8036: inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } 8036: 8036: 8036: inline QString::QString() noexcept : d(Data::sharedNull()) {} 8036: inline QString::~QString() { if (!d->ref.deref()) Data::deallocate(d); } 8036: 8036: inline void QString::reserve(int asize) 8036: { 8036: if (d->ref.isShared() || uint(asize) >= d->alloc) 8036: reallocData(qMax(asize, d->size) + 1u); 8036: 8036: if (!d->capacityReserved) { 8036: 8036: d->capacityReserved = true; 8036: } 8036: } 8036: 8036: inline void QString::squeeze() 8036: { 8036: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) 8036: reallocData(uint(d->size) + 1u); 8036: 8036: if (d->capacityReserved) { 8036: 8036: 8036: d->capacityReserved = false; 8036: } 8036: } 8036: 8036: inline QString &QString::setUtf16(const ushort *autf16, int asize) 8036: { return setUnicode(reinterpret_cast(autf16), asize); } 8036: inline QCharRef QString::operator[](int i) 8036: { do { } while ((false) && (i >= 0)); return QCharRef(*this, i); } 8036: inline QCharRef QString::operator[](uint i) 8036: { return QCharRef(*this, i); } 8036: inline QString::iterator QString::begin() 8036: { detach(); return reinterpret_cast(d->data()); } 8036: inline QString::const_iterator QString::begin() const 8036: { return reinterpret_cast(d->data()); } 8036: inline QString::const_iterator QString::cbegin() const 8036: { return reinterpret_cast(d->data()); } 8036: inline QString::const_iterator QString::constBegin() const 8036: { return reinterpret_cast(d->data()); } 8036: inline QString::iterator QString::end() 8036: { detach(); return reinterpret_cast(d->data() + d->size); } 8036: inline QString::const_iterator QString::end() const 8036: { return reinterpret_cast(d->data() + d->size); } 8036: inline QString::const_iterator QString::cend() const 8036: { return reinterpret_cast(d->data() + d->size); } 8036: inline QString::const_iterator QString::constEnd() const 8036: { return reinterpret_cast(d->data() + d->size); } 8036: inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: inline bool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: inline bool QString::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: inline bool QString::contains(QChar c, Qt::CaseSensitivity cs) const 8036: { return indexOf(c, 0, cs) != -1; } 8036: 8036: 8036: inline bool operator==(QString::Null, QString::Null) { return true; } 8036: 8036: inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } 8036: 8036: inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } 8036: inline bool operator!=(QString::Null, QString::Null) { return false; } 8036: 8036: inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } 8036: 8036: inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } 8036: 8036: 8036: inline bool operator==(QLatin1String s1, QLatin1String s2) noexcept 8036: { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); } 8036: inline bool operator!=(QLatin1String s1, QLatin1String s2) noexcept 8036: { return !operator==(s1, s2); } 8036: inline bool operator<(QLatin1String s1, QLatin1String s2) noexcept 8036: { 8036: const int len = qMin(s1.size(), s2.size()); 8036: const int r = len ? memcmp(s1.latin1(), s2.latin1(), len) : 0; 8036: return r < 0 || (r == 0 && s1.size() < s2.size()); 8036: } 8036: inline bool operator>(QLatin1String s1, QLatin1String s2) noexcept 8036: { return operator<(s2, s1); } 8036: inline bool operator<=(QLatin1String s1, QLatin1String s2) noexcept 8036: { return !operator>(s1, s2); } 8036: inline bool operator>=(QLatin1String s1, QLatin1String s2) noexcept 8036: { return !operator<(s1, s2); } 8036: 8036: inline bool QLatin1String::operator==(const QString &s) const noexcept 8036: { return s == *this; } 8036: inline bool QLatin1String::operator!=(const QString &s) const noexcept 8036: { return s != *this; } 8036: inline bool QLatin1String::operator>(const QString &s) const noexcept 8036: { return s < *this; } 8036: inline bool QLatin1String::operator<(const QString &s) const noexcept 8036: { return s > *this; } 8036: inline bool QLatin1String::operator>=(const QString &s) const noexcept 8036: { return s <= *this; } 8036: inline bool QLatin1String::operator<=(const QString &s) const noexcept 8036: { return s >= *this; } 8036: # 1296 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: inline const QString operator+(const QString &s1, const QString &s2) 8036: { QString t(s1); t += s2; return t; } 8036: inline const QString operator+(const QString &s1, QChar s2) 8036: { QString t(s1); t += s2; return t; } 8036: inline const QString operator+(QChar s1, const QString &s2) 8036: { QString t(s1); t += s2; return t; } 8036: # 1318 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: inline std::string QString::toStdString() const 8036: { return toUtf8().toStdString(); } 8036: 8036: inline QString QString::fromStdString(const std::string &s) 8036: { return fromUtf8(s.data(), int(s.size())); } 8036: 8036: inline std::wstring QString::toStdWString() const 8036: { 8036: std::wstring str; 8036: str.resize(length()); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: str.resize(toWCharArray(&(*str.begin()))); 8036: return str; 8036: } 8036: 8036: inline QString QString::fromStdWString(const std::wstring &s) 8036: { return fromWCharArray(s.data(), int(s.size())); } 8036: 8036: 8036: inline QString QString::fromStdU16String(const std::u16string &s) 8036: { return fromUtf16(s.data(), int(s.size())); } 8036: 8036: inline std::u16string QString::toStdU16String() const 8036: { return std::u16string(reinterpret_cast(utf16()), length()); } 8036: 8036: inline QString QString::fromStdU32String(const std::u32string &s) 8036: { return fromUcs4(s.data(), int(s.size())); } 8036: 8036: inline std::u32string QString::toStdU32String() const 8036: { 8036: std::u32string u32str(length(), char32_t(0)); 8036: int len = toUcs4_helper(d->data(), length(), reinterpret_cast(&u32str[0])); 8036: u32str.resize(len); 8036: return u32str; 8036: } 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QString &); 8036: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QString &); 8036: 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QString)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QString >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QString) }; static inline const char *name() { return "QString"; } }; inline void swap(QString &value1, QString &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8036: constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QString::SectionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QString::SectionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: class __attribute__((visibility("default"))) QStringRef { 8036: const QString *m_string; 8036: int m_position; 8036: int m_size; 8036: public: 8036: typedef QString::size_type size_type; 8036: typedef QString::value_type value_type; 8036: typedef const QChar *const_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: typedef QString::const_pointer const_pointer; 8036: typedef QString::const_reference const_reference; 8036: 8036: 8036: inline QStringRef() : m_string(nullptr), m_position(0), m_size(0) {} 8036: inline QStringRef(const QString *string, int position, int size); 8036: inline QStringRef(const QString *string); 8036: 8036: 8036: 8036: QStringRef(const QStringRef &other) noexcept 8036: :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) 8036: {} 8036: 8036: QStringRef(QStringRef &&other) noexcept : m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) {} 8036: QStringRef &operator=(QStringRef &&other) noexcept { return *this = other; } 8036: 8036: QStringRef &operator=(const QStringRef &other) noexcept 8036: { 8036: m_string = other.m_string; m_position = other.m_position; 8036: m_size = other.m_size; return *this; 8036: } 8036: inline ~QStringRef(){} 8036: 8036: 8036: inline const QString *string() const { return m_string; } 8036: inline int position() const { return m_position; } 8036: inline int size() const { return m_size; } 8036: inline int count() const { return m_size; } 8036: inline int length() const { return m_size; } 8036: 8036: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: [[nodiscard]] QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: [[nodiscard]] QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: [[nodiscard]] QStringRef left(int n) const; 8036: [[nodiscard]] QStringRef right(int n) const; 8036: [[nodiscard]] QStringRef mid(int pos, int n = -1) const; 8036: 8036: void truncate(int pos) noexcept { m_size = qBound(0, pos, m_size); } 8036: void chop(int n) noexcept 8036: { 8036: if (n >= m_size) 8036: m_size = 0; 8036: else if (n > 0) 8036: m_size -= n; 8036: } 8036: 8036: bool isRightToLeft() const; 8036: 8036: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: inline QStringRef &operator=(const QString *string); 8036: 8036: inline const QChar *unicode() const 8036: { 8036: if (!m_string) 8036: return reinterpret_cast(QString::Data::sharedNull()->data()); 8036: return m_string->unicode() + m_position; 8036: } 8036: inline const QChar *data() const { return unicode(); } 8036: inline const QChar *constData() const { return unicode(); } 8036: 8036: inline const_iterator begin() const { return unicode(); } 8036: inline const_iterator cbegin() const { return unicode(); } 8036: inline const_iterator constBegin() const { return unicode(); } 8036: inline const_iterator end() const { return unicode() + size(); } 8036: inline const_iterator cend() const { return unicode() + size(); } 8036: inline const_iterator constEnd() const { return unicode() + size(); } 8036: inline const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8036: inline const_reverse_iterator crbegin() const { return rbegin(); } 8036: inline const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8036: inline const_reverse_iterator crend() const { return rend(); } 8036: 8036: 8036: 8036: 8036: 8036: [[nodiscard]] QByteArray toLatin1() const; 8036: [[nodiscard]] QByteArray toUtf8() const; 8036: [[nodiscard]] QByteArray toLocal8Bit() const; 8036: [[nodiscard]] QVector toUcs4() const; 8036: 8036: inline void clear() { m_string = nullptr; m_position = m_size = 0; } 8036: QString toString() const; 8036: inline bool isEmpty() const { return m_size == 0; } 8036: inline bool isNull() const { return m_string == nullptr || m_string->isNull(); } 8036: 8036: QStringRef appendTo(QString *string) const; 8036: 8036: inline const QChar at(int i) const 8036: { do { } while ((false) && (uint(i) < uint(size()))); return m_string->at(i + m_position); } 8036: QChar operator[](int i) const { return at(i); } 8036: # 1510 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8036: 8036: 8036: 8036: 8036: static int compare(const QStringRef &s1, const QString &s2, 8036: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8036: static int compare(const QStringRef &s1, const QStringRef &s2, 8036: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8036: static int compare(const QStringRef &s1, QLatin1String s2, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8036: 8036: int localeAwareCompare(const QString &s) const; 8036: int localeAwareCompare(const QStringRef &s) const; 8036: static int localeAwareCompare(const QStringRef &s1, const QString &s2); 8036: static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); 8036: 8036: [[nodiscard]] QStringRef trimmed() const; 8036: short toShort(bool *ok = nullptr, int base = 10) const; 8036: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8036: int toInt(bool *ok = nullptr, int base = 10) const; 8036: uint toUInt(bool *ok = nullptr, int base = 10) const; 8036: long toLong(bool *ok = nullptr, int base = 10) const; 8036: ulong toULong(bool *ok = nullptr, int base = 10) const; 8036: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8036: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8036: float toFloat(bool *ok = nullptr) const; 8036: double toDouble(bool *ok = nullptr) const; 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringRef >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringRef) }; static inline const char *name() { return "QStringRef"; } }; 8036: 8036: inline QStringRef &QStringRef::operator=(const QString *aString) 8036: { m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } 8036: 8036: inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) 8036: :m_string(aString), m_position(aPosition), m_size(aSize){} 8036: 8036: inline QStringRef::QStringRef(const QString *aString) 8036: :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} 8036: 8036: 8036: __attribute__((visibility("default"))) bool operator==(const QStringRef &s1, const QStringRef &s2) noexcept; 8036: inline bool operator!=(const QStringRef &s1, const QStringRef &s2) noexcept 8036: { return !(s1 == s2); } 8036: __attribute__((visibility("default"))) bool operator<(const QStringRef &s1, const QStringRef &s2) noexcept; 8036: inline bool operator>(const QStringRef &s1, const QStringRef &s2) noexcept 8036: { return s2 < s1; } 8036: inline bool operator<=(const QStringRef &s1, const QStringRef &s2) noexcept 8036: { return !(s1 > s2); } 8036: inline bool operator>=(const QStringRef &s1, const QStringRef &s2) noexcept 8036: { return !(s1 < s2); } 8036: 8036: 8036: __attribute__((visibility("default"))) bool operator==(const QString &lhs, const QStringRef &rhs) noexcept; 8036: inline bool operator!=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) != 0; } 8036: inline bool operator< (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) < 0; } 8036: inline bool operator> (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) > 0; } 8036: inline bool operator<=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) <= 0; } 8036: inline bool operator>=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) >= 0; } 8036: 8036: inline bool operator==(const QStringRef &lhs, const QString &rhs) noexcept { return rhs == lhs; } 8036: inline bool operator!=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs != lhs; } 8036: inline bool operator< (const QStringRef &lhs, const QString &rhs) noexcept { return rhs > lhs; } 8036: inline bool operator> (const QStringRef &lhs, const QString &rhs) noexcept { return rhs < lhs; } 8036: inline bool operator<=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs >= lhs; } 8036: inline bool operator>=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs <= lhs; } 8036: 8036: inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8036: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8036: inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8036: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8036: inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const noexcept 8036: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8036: inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8036: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8036: inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const noexcept 8036: { return QString::compare_helper(constData(), length(), s, cs); } 8036: inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) noexcept 8036: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8036: inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8036: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8036: inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) noexcept 8036: { return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } 8036: 8036: 8036: __attribute__((visibility("default"))) bool operator==(QLatin1String lhs, const QStringRef &rhs) noexcept; 8036: inline bool operator!=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) != 0; } 8036: inline bool operator< (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) > 0; } 8036: inline bool operator> (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) < 0; } 8036: inline bool operator<=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) >= 0; } 8036: inline bool operator>=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) <= 0; } 8036: 8036: inline bool operator==(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs == lhs; } 8036: inline bool operator!=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs != lhs; } 8036: inline bool operator< (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs > lhs; } 8036: inline bool operator> (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs < lhs; } 8036: inline bool operator<=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs >= lhs; } 8036: inline bool operator>=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs <= lhs; } 8036: 8036: 8036: inline bool operator==(QChar lhs, const QString &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8036: inline bool operator< (QChar lhs, const QString &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8036: inline bool operator> (QChar lhs, const QString &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8036: 8036: inline bool operator!=(QChar lhs, const QString &rhs) noexcept { return !(lhs == rhs); } 8036: inline bool operator<=(QChar lhs, const QString &rhs) noexcept { return !(lhs > rhs); } 8036: inline bool operator>=(QChar lhs, const QString &rhs) noexcept { return !(lhs < rhs); } 8036: 8036: inline bool operator==(const QString &lhs, QChar rhs) noexcept { return rhs == lhs; } 8036: inline bool operator!=(const QString &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8036: inline bool operator< (const QString &lhs, QChar rhs) noexcept { return rhs > lhs; } 8036: inline bool operator> (const QString &lhs, QChar rhs) noexcept { return rhs < lhs; } 8036: inline bool operator<=(const QString &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8036: inline bool operator>=(const QString &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8036: 8036: 8036: inline bool operator==(QChar lhs, const QStringRef &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8036: inline bool operator< (QChar lhs, const QStringRef &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8036: inline bool operator> (QChar lhs, const QStringRef &rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8036: 8036: inline bool operator!=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs == rhs); } 8036: inline bool operator<=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs > rhs); } 8036: inline bool operator>=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs < rhs); } 8036: 8036: inline bool operator==(const QStringRef &lhs, QChar rhs) noexcept { return rhs == lhs; } 8036: inline bool operator!=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8036: inline bool operator< (const QStringRef &lhs, QChar rhs) noexcept { return rhs > lhs; } 8036: inline bool operator> (const QStringRef &lhs, QChar rhs) noexcept { return rhs < lhs; } 8036: inline bool operator<=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8036: inline bool operator>=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8036: 8036: 8036: inline bool operator==(QChar lhs, QLatin1String rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs) == 0; } 8036: inline bool operator< (QChar lhs, QLatin1String rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs) < 0; } 8036: inline bool operator> (QChar lhs, QLatin1String rhs) noexcept 8036: { return QString::compare_helper(&lhs, 1, rhs) > 0; } 8036: 8036: inline bool operator!=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs == rhs); } 8036: inline bool operator<=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs > rhs); } 8036: inline bool operator>=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs < rhs); } 8036: 8036: inline bool operator==(QLatin1String lhs, QChar rhs) noexcept { return rhs == lhs; } 8036: inline bool operator!=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8036: inline bool operator< (QLatin1String lhs, QChar rhs) noexcept { return rhs > lhs; } 8036: inline bool operator> (QLatin1String lhs, QChar rhs) noexcept { return rhs < lhs; } 8036: inline bool operator<=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8036: inline bool operator>=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8036: # 1712 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstring.h" 3 4 8036: inline int QString::localeAwareCompare(const QStringRef &s) const 8036: { return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8036: inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) 8036: { return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8036: inline int QStringRef::localeAwareCompare(const QString &s) const 8036: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8036: inline int QStringRef::localeAwareCompare(const QStringRef &s) const 8036: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8036: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) 8036: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8036: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) 8036: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8036: 8036: inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: inline bool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const 8036: { return indexOf(c, 0, cs) != -1; } 8036: inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8036: { return indexOf(s, 0, cs) != -1; } 8036: 8036: inline QString &QString::insert(int i, const QStringRef &s) 8036: { return insert(i, s.constData(), s.length()); } 8036: 8036: 8036: inline QString operator+(const QString &s1, const QStringRef &s2) 8036: { QString t; t.reserve(s1.size() + s2.size()); t += s1; t += s2; return t; } 8036: inline QString operator+(const QStringRef &s1, const QString &s2) 8036: { QString t; t.reserve(s1.size() + s2.size()); t += s1; t += s2; return t; } 8036: inline QString operator+(const QStringRef &s1, QLatin1String s2) 8036: { QString t; t.reserve(s1.size() + s2.size()); t += s1; t += s2; return t; } 8036: inline QString operator+(QLatin1String s1, const QStringRef &s2) 8036: { QString t; t.reserve(s1.size() + s2.size()); t += s1; t += s2; return t; } 8036: inline QString operator+(const QStringRef &s1, const QStringRef &s2) 8036: { QString t; t.reserve(s1.size() + s2.size()); t += s1; t += s2; return t; } 8036: inline QString operator+(const QStringRef &s1, QChar s2) 8036: { QString t; t.reserve(s1.size() + 1); t += s1; t += s2; return t; } 8036: inline QString operator+(QChar s1, const QStringRef &s2) 8036: { QString t; t.reserve(1 + s2.size()); t += s1; t += s2; return t; } 8036: 8036: 8036: namespace Qt { 8036: 8036: 8036: 8036: 8036: 8036: } 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h" 2 3 4 8036: 8036: 8036: 8036: 8036: struct QRegExpPrivate; 8036: class QStringList; 8036: class QRegExp; 8036: 8036: __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed = 0) noexcept; 8036: 8036: class __attribute__((visibility("default"))) QRegExp 8036: { 8036: public: 8036: enum PatternSyntax { 8036: RegExp, 8036: Wildcard, 8036: FixedString, 8036: RegExp2, 8036: WildcardUnix, 8036: W3CXmlSchema11 }; 8036: enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; 8036: 8036: QRegExp(); 8036: explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, 8036: PatternSyntax syntax = RegExp); 8036: QRegExp(const QRegExp &rx); 8036: ~QRegExp(); 8036: QRegExp &operator=(const QRegExp &rx); 8036: 8036: QRegExp &operator=(QRegExp &&other) noexcept { swap(other); return *this; } 8036: 8036: void swap(QRegExp &other) noexcept { qSwap(priv, other.priv); } 8036: 8036: bool operator==(const QRegExp &rx) const; 8036: inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } 8036: 8036: bool isEmpty() const; 8036: bool isValid() const; 8036: QString pattern() const; 8036: void setPattern(const QString &pattern); 8036: Qt::CaseSensitivity caseSensitivity() const; 8036: void setCaseSensitivity(Qt::CaseSensitivity cs); 8036: PatternSyntax patternSyntax() const; 8036: void setPatternSyntax(PatternSyntax syntax); 8036: 8036: bool isMinimal() const; 8036: void setMinimal(bool minimal); 8036: 8036: bool exactMatch(const QString &str) const; 8036: 8036: int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; 8036: int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; 8036: int matchedLength() const; 8036: 8036: int captureCount() const; 8036: QStringList capturedTexts() const; 8036: QStringList capturedTexts(); 8036: QString cap(int nth = 0) const; 8036: QString cap(int nth = 0); 8036: int pos(int nth = 0) const; 8036: int pos(int nth = 0); 8036: QString errorString() const; 8036: QString errorString(); 8036: 8036: 8036: static QString escape(const QString &str); 8036: 8036: friend __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed) noexcept; 8036: 8036: private: 8036: QRegExpPrivate *priv; 8036: }; 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRegExp)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRegExp >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRegExp) }; static inline const char *name() { return "QRegExp"; } }; 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); 8036: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRegExp &); 8036: 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringmatcher.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringmatcher.h" 3 4 8036: 8036: 8036: 8036: class QStringMatcherPrivate; 8036: 8036: class __attribute__((visibility("default"))) QStringMatcher 8036: { 8036: public: 8036: QStringMatcher(); 8036: explicit QStringMatcher(const QString &pattern, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QStringMatcher(const QChar *uc, int len, 8036: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: QStringMatcher(const QStringMatcher &other); 8036: ~QStringMatcher(); 8036: 8036: QStringMatcher &operator=(const QStringMatcher &other); 8036: 8036: void setPattern(const QString &pattern); 8036: void setCaseSensitivity(Qt::CaseSensitivity cs); 8036: 8036: int indexIn(const QString &str, int from = 0) const; 8036: int indexIn(const QChar *str, int length, int from = 0) const; 8036: QString pattern() const; 8036: inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } 8036: 8036: private: 8036: QStringMatcherPrivate *d_ptr; 8036: QString q_pattern; 8036: Qt::CaseSensitivity q_cs; 8036: struct Data { 8036: uchar q_skiptable[256]; 8036: const QChar *uc; 8036: int len; 8036: }; 8036: union { 8036: uint q_data[256]; 8036: Data p; 8036: }; 8036: }; 8036: 8036: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8036: 8036: 8036: 8036: class QRegExp; 8036: class QRegularExpression; 8036: 8036: typedef QListIterator QStringListIterator; 8036: typedef QMutableListIterator QMutableStringListIterator; 8036: 8036: class QStringList; 8036: 8036: 8036: 8036: 8036: template <> struct QListSpecialMethods 8036: 8036: { 8036: 8036: protected: 8036: ~QListSpecialMethods() {} 8036: 8036: public: 8036: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: inline int removeDuplicates(); 8036: 8036: inline QString join(const QString &sep) const; 8036: inline QString join(QLatin1String sep) const; 8036: inline QString join(QChar sep) const; 8036: 8036: inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8036: 8036: 8036: inline QStringList filter(const QRegExp &rx) const; 8036: inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); 8036: 8036: 8036: 8036: 8036: inline QStringList filter(const QRegularExpression &re) const; 8036: inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); 8036: 8036: 8036: 8036: 8036: private: 8036: inline QStringList *self(); 8036: inline const QStringList *self() const; 8036: }; 8036: 8036: 8036: class QStringList : public QList 8036: { 8036: 8036: public: 8036: inline QStringList() noexcept { } 8036: inline explicit QStringList(const QString &i) { append(i); } 8036: inline QStringList(const QList &l) : QList(l) { } 8036: 8036: inline QStringList(QList &&l) noexcept : QList(std::move(l)) { } 8036: 8036: 8036: inline QStringList(std::initializer_list args) : QList(args) { } 8036: 8036: 8036: QStringList &operator=(const QList &other) 8036: { QList::operator=(other); return *this; } 8036: 8036: QStringList &operator=(QList &&other) noexcept 8036: { QList::operator=(std::move(other)); return *this; } 8036: 8036: 8036: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8036: 8036: inline QStringList operator+(const QStringList &other) const 8036: { QStringList n = *this; n += other; return n; } 8036: inline QStringList &operator<<(const QString &str) 8036: { append(str); return *this; } 8036: inline QStringList &operator<<(const QStringList &l) 8036: { *this += l; return *this; } 8036: inline QStringList &operator<<(const QList &l) 8036: { *this += l; return *this; } 8036: 8036: 8036: inline int indexOf(const QRegExp &rx, int from = 0) const; 8036: inline int lastIndexOf(const QRegExp &rx, int from = -1) const; 8036: inline int indexOf(QRegExp &rx, int from = 0) const; 8036: inline int lastIndexOf(QRegExp &rx, int from = -1) const; 8036: 8036: 8036: 8036: 8036: inline int indexOf(const QRegularExpression &re, int from = 0) const; 8036: inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8036: 8036: 8036: 8036: using QList::indexOf; 8036: using QList::lastIndexOf; 8036: }; 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringList)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringList >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringList) }; static inline const char *name() { return "QStringList"; } }; 8036: 8036: 8036: inline QStringList *QListSpecialMethods::self() 8036: { return static_cast(this); } 8036: inline const QStringList *QListSpecialMethods::self() const 8036: { return static_cast(this); } 8036: 8036: namespace QtPrivate { 8036: void __attribute__((visibility("default"))) QStringList_sort(QStringList *that, Qt::CaseSensitivity cs); 8036: int __attribute__((visibility("default"))) QStringList_removeDuplicates(QStringList *that); 8036: QString __attribute__((visibility("default"))) QStringList_join(const QStringList *that, const QChar *sep, int seplen); 8036: __attribute__((visibility("default"))) QString QStringList_join(const QStringList &list, QLatin1String sep); 8036: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QString &str, 8036: Qt::CaseSensitivity cs); 8036: 8036: bool __attribute__((visibility("default"))) QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); 8036: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, 8036: Qt::CaseSensitivity cs); 8036: 8036: 8036: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); 8036: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegExp &re); 8036: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); 8036: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); 8036: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); 8036: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); 8036: 8036: 8036: 8036: 8036: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); 8036: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegularExpression &re); 8036: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); 8036: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); 8036: 8036: 8036: } 8036: 8036: inline void QListSpecialMethods::sort(Qt::CaseSensitivity cs) 8036: { 8036: QtPrivate::QStringList_sort(self(), cs); 8036: } 8036: 8036: inline int QListSpecialMethods::removeDuplicates() 8036: { 8036: return QtPrivate::QStringList_removeDuplicates(self()); 8036: } 8036: 8036: inline QString QListSpecialMethods::join(const QString &sep) const 8036: { 8036: return QtPrivate::QStringList_join(self(), sep.constData(), sep.length()); 8036: } 8036: 8036: QString QListSpecialMethods::join(QLatin1String sep) const 8036: { 8036: return QtPrivate::QStringList_join(*self(), sep); 8036: } 8036: 8036: inline QString QListSpecialMethods::join(QChar sep) const 8036: { 8036: return QtPrivate::QStringList_join(self(), &sep, 1); 8036: } 8036: 8036: inline QStringList QListSpecialMethods::filter(const QString &str, Qt::CaseSensitivity cs) const 8036: { 8036: return QtPrivate::QStringList_filter(self(), str, cs); 8036: } 8036: 8036: inline bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const 8036: { 8036: return QtPrivate::QStringList_contains(this, str, cs); 8036: } 8036: 8036: inline QStringList &QListSpecialMethods::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) 8036: { 8036: QtPrivate::QStringList_replaceInStrings(self(), before, after, cs); 8036: return *self(); 8036: } 8036: 8036: inline QStringList operator+(const QList &one, const QStringList &other) 8036: { 8036: QStringList n = one; 8036: n += other; 8036: return n; 8036: } 8036: 8036: 8036: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegExp &rx, const QString &after) 8036: { 8036: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8036: return *self(); 8036: } 8036: 8036: inline QStringList QListSpecialMethods::filter(const QRegExp &rx) const 8036: { 8036: return QtPrivate::QStringList_filter(self(), rx); 8036: } 8036: 8036: inline int QStringList::indexOf(const QRegExp &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_indexOf(this, rx, from); 8036: } 8036: 8036: inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8036: } 8036: 8036: inline int QStringList::indexOf(QRegExp &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_indexOf(this, rx, from); 8036: } 8036: 8036: inline int QStringList::lastIndexOf(QRegExp &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8036: } 8036: 8036: 8036: 8036: 8036: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegularExpression &rx, const QString &after) 8036: { 8036: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8036: return *self(); 8036: } 8036: 8036: inline QStringList QListSpecialMethods::filter(const QRegularExpression &rx) const 8036: { 8036: return QtPrivate::QStringList_filter(self(), rx); 8036: } 8036: 8036: inline int QStringList::indexOf(const QRegularExpression &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_indexOf(this, rx, from); 8036: } 8036: 8036: inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) const 8036: { 8036: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: # 1095 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 2 3 4 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 3 4 8036: 8036: 8036: struct __attribute__((visibility("default"))) QHashData 8036: { 8036: struct Node { 8036: Node *next; 8036: uint h; 8036: }; 8036: 8036: Node *fakeNext; 8036: Node **buckets; 8036: QtPrivate::RefCount ref; 8036: int size; 8036: int nodeSize; 8036: short userNumBits; 8036: short numBits; 8036: int numBuckets; 8036: uint seed; 8036: uint sharable : 1; 8036: uint strictAlignment : 1; 8036: uint reserved : 30; 8036: 8036: void *allocateNode(int nodeAlign); 8036: void freeNode(void *node); 8036: QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), 8036: int nodeSize, int nodeAlign); 8036: bool willGrow(); 8036: void hasShrunk(); 8036: void rehash(int hint); 8036: void free_helper(void (*node_delete)(Node *)); 8036: Node *firstNode(); 8036: 8036: 8036: 8036: 8036: static Node *nextNode(Node *node); 8036: static Node *previousNode(Node *node); 8036: 8036: static const QHashData shared_null; 8036: }; 8036: 8036: inline bool QHashData::willGrow() 8036: { 8036: if (size >= numBuckets) { 8036: rehash(numBits + 1); 8036: return true; 8036: } else { 8036: return false; 8036: } 8036: } 8036: 8036: inline void QHashData::hasShrunk() 8036: { 8036: if (size <= (numBuckets >> 3) && numBits > userNumBits) { 8036: if (true) { 8036: rehash(qMax(int(numBits) - 2, int(userNumBits))); 8036: } else { 8036: 8036: } 8036: } 8036: } 8036: 8036: inline QHashData::Node *QHashData::firstNode() 8036: { 8036: Node *e = reinterpret_cast(this); 8036: Node **bucket = buckets; 8036: int n = numBuckets; 8036: while (n--) { 8036: if (*bucket != e) 8036: return *bucket; 8036: ++bucket; 8036: } 8036: return e; 8036: } 8036: 8036: struct QHashDummyValue 8036: { 8036: }; 8036: 8036: inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) 8036: { 8036: return true; 8036: } 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QHashDummyValue)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QHashDummyValue >::value, isDummy = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QHashDummyValue) }; static inline const char *name() { return "QHashDummyValue"; } }; 8036: 8036: template 8036: struct QHashNode 8036: { 8036: QHashNode *next; 8036: const uint h; 8036: const Key key; 8036: T value; 8036: 8036: inline QHashNode(const Key &key0, const T &value0, uint hash, QHashNode *n) 8036: : next(n), h(hash), key(key0), value(value0) {} 8036: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8036: 8036: private: 8036: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8036: }; 8036: 8036: 8036: template 8036: struct QHashNode 8036: { 8036: union { 8036: QHashNode *next; 8036: QHashDummyValue value; 8036: }; 8036: const uint h; 8036: const Key key; 8036: 8036: inline QHashNode(const Key &key0, const QHashDummyValue &, uint hash, QHashNode *n) 8036: : next(n), h(hash), key(key0) {} 8036: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8036: 8036: private: 8036: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8036: }; 8036: # 226 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 3 4 8036: template 8036: class QHash 8036: { 8036: typedef QHashNode Node; 8036: 8036: union { 8036: QHashData *d; 8036: QHashNode *e; 8036: }; 8036: 8036: static inline Node *concrete(QHashData::Node *node) { 8036: return reinterpret_cast(node); 8036: } 8036: 8036: static inline int alignOfNode() { return qMax(sizeof(void*), alignof(Node)); } 8036: 8036: public: 8036: inline QHash() noexcept : d(const_cast(&QHashData::shared_null)) { } 8036: 8036: inline QHash(std::initializer_list > list) 8036: : d(const_cast(&QHashData::shared_null)) 8036: { 8036: reserve(int(list.size())); 8036: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8036: insert(it->first, it->second); 8036: } 8036: 8036: QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } 8036: ~QHash() { if (!d->ref.deref()) freeData(d); } 8036: 8036: QHash &operator=(const QHash &other); 8036: 8036: QHash(QHash &&other) noexcept : d(other.d) { other.d = const_cast(&QHashData::shared_null); } 8036: QHash &operator=(QHash &&other) noexcept 8036: { QHash moved(std::move(other)); swap(moved); return *this; } 8036: 8036: void swap(QHash &other) noexcept { qSwap(d, other.d); } 8036: 8036: bool operator==(const QHash &other) const; 8036: bool operator!=(const QHash &other) const { return !(*this == other); } 8036: 8036: inline int size() const { return d->size; } 8036: 8036: inline bool isEmpty() const { return d->size == 0; } 8036: 8036: inline int capacity() const { return d->numBuckets; } 8036: void reserve(int size); 8036: inline void squeeze() { reserve(1); } 8036: 8036: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8036: inline bool isDetached() const { return !d->ref.isShared(); } 8036: 8036: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QHashData::shared_null) d->sharable = sharable; } 8036: 8036: bool isSharedWith(const QHash &other) const { return d == other.d; } 8036: 8036: void clear(); 8036: 8036: int remove(const Key &key); 8036: T take(const Key &key); 8036: 8036: bool contains(const Key &key) const; 8036: const Key key(const T &value) const; 8036: const Key key(const T &value, const Key &defaultKey) const; 8036: const T value(const Key &key) const; 8036: const T value(const Key &key, const T &defaultValue) const; 8036: T &operator[](const Key &key); 8036: const T operator[](const Key &key) const; 8036: 8036: QList uniqueKeys() const; 8036: QList keys() const; 8036: QList keys(const T &value) const; 8036: QList values() const; 8036: QList values(const Key &key) const; 8036: int count(const Key &key) const; 8036: 8036: class const_iterator; 8036: 8036: class iterator 8036: { 8036: friend class const_iterator; 8036: friend class QHash; 8036: friend class QSet; 8036: QHashData::Node *i; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef T *pointer; 8036: typedef T &reference; 8036: 8036: inline iterator() : i(nullptr) { } 8036: explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } 8036: 8036: inline const Key &key() const { return concrete(i)->key; } 8036: inline T &value() const { return concrete(i)->value; } 8036: inline T &operator*() const { return concrete(i)->value; } 8036: inline T *operator->() const { return &concrete(i)->value; } 8036: inline bool operator==(const iterator &o) const { return i == o.i; } 8036: inline bool operator!=(const iterator &o) const { return i != o.i; } 8036: 8036: inline iterator &operator++() { 8036: i = QHashData::nextNode(i); 8036: return *this; 8036: } 8036: inline iterator operator++(int) { 8036: iterator r = *this; 8036: i = QHashData::nextNode(i); 8036: return r; 8036: } 8036: inline iterator &operator--() { 8036: i = QHashData::previousNode(i); 8036: return *this; 8036: } 8036: inline iterator operator--(int) { 8036: iterator r = *this; 8036: i = QHashData::previousNode(i); 8036: return r; 8036: } 8036: inline iterator operator+(int j) const 8036: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8036: inline iterator operator-(int j) const { return operator+(-j); } 8036: inline iterator &operator+=(int j) { return *this = *this + j; } 8036: inline iterator &operator-=(int j) { return *this = *this - j; } 8036: 8036: 8036: public: 8036: inline bool operator==(const const_iterator &o) const 8036: { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const 8036: { return i != o.i; } 8036: 8036: }; 8036: friend class iterator; 8036: 8036: class const_iterator 8036: { 8036: friend class iterator; 8036: friend class QHash; 8036: friend class QSet; 8036: QHashData::Node *i; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef const T *pointer; 8036: typedef const T &reference; 8036: 8036: constexpr inline const_iterator() : i(nullptr) { } 8036: explicit inline const_iterator(void *node) 8036: : i(reinterpret_cast(node)) { } 8036: 8036: 8036: 8036: inline const_iterator(const iterator &o) 8036: 8036: { i = o.i; } 8036: 8036: inline const Key &key() const { return concrete(i)->key; } 8036: inline const T &value() const { return concrete(i)->value; } 8036: inline const T &operator*() const { return concrete(i)->value; } 8036: inline const T *operator->() const { return &concrete(i)->value; } 8036: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8036: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8036: 8036: inline const_iterator &operator++() { 8036: i = QHashData::nextNode(i); 8036: return *this; 8036: } 8036: inline const_iterator operator++(int) { 8036: const_iterator r = *this; 8036: i = QHashData::nextNode(i); 8036: return r; 8036: } 8036: inline const_iterator &operator--() { 8036: i = QHashData::previousNode(i); 8036: return *this; 8036: } 8036: inline const_iterator operator--(int) { 8036: const_iterator r = *this; 8036: i = QHashData::previousNode(i); 8036: return r; 8036: } 8036: inline const_iterator operator+(int j) const 8036: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8036: inline const_iterator operator-(int j) const { return operator+(-j); } 8036: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8036: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: friend class const_iterator; 8036: 8036: class key_iterator 8036: { 8036: const_iterator i; 8036: 8036: public: 8036: typedef typename const_iterator::iterator_category iterator_category; 8036: typedef typename const_iterator::difference_type difference_type; 8036: typedef Key value_type; 8036: typedef const Key *pointer; 8036: typedef const Key &reference; 8036: 8036: key_iterator() = default; 8036: explicit key_iterator(const_iterator o) : i(o) { } 8036: 8036: const Key &operator*() const { return i.key(); } 8036: const Key *operator->() const { return &i.key(); } 8036: bool operator==(key_iterator o) const { return i == o.i; } 8036: bool operator!=(key_iterator o) const { return i != o.i; } 8036: 8036: inline key_iterator &operator++() { ++i; return *this; } 8036: inline key_iterator operator++(int) { return key_iterator(i++);} 8036: inline key_iterator &operator--() { --i; return *this; } 8036: inline key_iterator operator--(int) { return key_iterator(i--); } 8036: const_iterator base() const { return i; } 8036: }; 8036: 8036: 8036: inline iterator begin() { detach(); return iterator(d->firstNode()); } 8036: inline const_iterator begin() const { return const_iterator(d->firstNode()); } 8036: inline const_iterator cbegin() const { return const_iterator(d->firstNode()); } 8036: inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } 8036: inline iterator end() { detach(); return iterator(e); } 8036: inline const_iterator end() const { return const_iterator(e); } 8036: inline const_iterator cend() const { return const_iterator(e); } 8036: inline const_iterator constEnd() const { return const_iterator(e); } 8036: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8036: inline key_iterator keyEnd() const { return key_iterator(end()); } 8036: 8036: QPair equal_range(const Key &key); 8036: QPair equal_range(const Key &key) const noexcept; 8036: iterator erase(iterator it) { return erase(const_iterator(it.i)); } 8036: iterator erase(const_iterator it); 8036: 8036: 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: inline int count() const { return d->size; } 8036: iterator find(const Key &key); 8036: const_iterator find(const Key &key) const; 8036: const_iterator constFind(const Key &key) const; 8036: iterator insert(const Key &key, const T &value); 8036: iterator insertMulti(const Key &key, const T &value); 8036: QHash &unite(const QHash &other); 8036: 8036: 8036: typedef T mapped_type; 8036: typedef Key key_type; 8036: typedef qptrdiff difference_type; 8036: typedef int size_type; 8036: 8036: inline bool empty() const { return isEmpty(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: private: 8036: void detach_helper(); 8036: void freeData(QHashData *d); 8036: Node **findNode(const Key &key, uint *hp = nullptr) const; 8036: Node **findNode(const Key &key, uint h) const; 8036: Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); 8036: void deleteNode(Node *node); 8036: static void deleteNode2(QHashData::Node *node); 8036: 8036: static void duplicateNode(QHashData::Node *originalNode, void *newNode); 8036: 8036: bool isValidIterator(const iterator &it) const noexcept 8036: { return isValidNode(it.i); } 8036: bool isValidIterator(const const_iterator &it) const noexcept 8036: { return isValidNode(it.i); } 8036: bool isValidNode(QHashData::Node *node) const noexcept 8036: { 8036: 8036: 8036: 8036: 8036: 8036: (void)node;; 8036: return true; 8036: 8036: } 8036: friend class QSet; 8036: }; 8036: 8036: 8036: template 8036: inline void QHash::deleteNode(Node *node) 8036: { 8036: deleteNode2(reinterpret_cast(node)); 8036: d->freeNode(node); 8036: } 8036: 8036: template 8036: inline void QHash::deleteNode2(QHashData::Node *node) 8036: { 8036: 8036: 8036: 8036: concrete(node)->~Node(); 8036: 8036: } 8036: 8036: template 8036: inline void QHash::duplicateNode(QHashData::Node *node, void *newNode) 8036: { 8036: Node *concreteNode = concrete(node); 8036: new (newNode) Node(concreteNode->key, concreteNode->value, concreteNode->h, nullptr); 8036: } 8036: 8036: template 8036: inline typename QHash::Node * 8036: QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) 8036: { 8036: Node *node = new (d->allocateNode(alignOfNode())) Node(akey, avalue, ah, *anextNode); 8036: *anextNode = node; 8036: ++d->size; 8036: return node; 8036: } 8036: 8036: template 8036: inline QHash &QHash::unite(const QHash &other) 8036: { 8036: if (d == &QHashData::shared_null) { 8036: *this = other; 8036: } else { 8036: QHash copy(other); 8036: const_iterator it = copy.constEnd(); 8036: while (it != copy.constBegin()) { 8036: --it; 8036: insertMulti(it.key(), it.value()); 8036: } 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: void QHash::freeData(QHashData *x) 8036: { 8036: x->free_helper(deleteNode2); 8036: } 8036: 8036: template 8036: inline void QHash::clear() 8036: { 8036: *this = QHash(); 8036: } 8036: 8036: template 8036: void QHash::detach_helper() 8036: { 8036: QHashData *x = d->detach_helper(duplicateNode, deleteNode2, sizeof(Node), alignOfNode()); 8036: if (!d->ref.deref()) 8036: freeData(d); 8036: d = x; 8036: } 8036: 8036: template 8036: inline QHash &QHash::operator=(const QHash &other) 8036: { 8036: if (d != other.d) { 8036: QHashData *o = other.d; 8036: o->ref.ref(); 8036: if (!d->ref.deref()) 8036: freeData(d); 8036: d = o; 8036: if (!d->sharable) 8036: detach_helper(); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline const T QHash::value(const Key &akey) const 8036: { 8036: Node *node; 8036: if (d->size == 0 || (node = *findNode(akey)) == e) { 8036: return T(); 8036: } else { 8036: return node->value; 8036: } 8036: } 8036: 8036: template 8036: inline const T QHash::value(const Key &akey, const T &adefaultValue) const 8036: { 8036: Node *node; 8036: if (d->size == 0 || (node = *findNode(akey)) == e) { 8036: return adefaultValue; 8036: } else { 8036: return node->value; 8036: } 8036: } 8036: 8036: template 8036: QList QHash::uniqueKeys() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: if (i != end()) { 8036: for (;;) { 8036: const Key &aKey = i.key(); 8036: res.append(aKey); 8036: do { 8036: if (++i == end()) 8036: goto break_out_of_outer_loop; 8036: } while (aKey == i.key()); 8036: } 8036: } 8036: break_out_of_outer_loop: 8036: return res; 8036: } 8036: 8036: template 8036: QList QHash::keys() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: res.append(i.key()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: QList QHash::keys(const T &avalue) const 8036: { 8036: QList res; 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: if (i.value() == avalue) 8036: res.append(i.key()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: const Key QHash::key(const T &avalue) const 8036: { 8036: return key(avalue, Key()); 8036: } 8036: 8036: template 8036: const Key QHash::key(const T &avalue, const Key &defaultValue) const 8036: { 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: if (i.value() == avalue) 8036: return i.key(); 8036: ++i; 8036: } 8036: 8036: return defaultValue; 8036: } 8036: 8036: template 8036: QList QHash::values() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: res.append(i.value()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: QList QHash::values(const Key &akey) const 8036: { 8036: QList res; 8036: Node *node = *findNode(akey); 8036: if (node != e) { 8036: do { 8036: res.append(node->value); 8036: } while ((node = node->next) != e && node->key == akey); 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: int QHash::count(const Key &akey) const 8036: { 8036: int cnt = 0; 8036: Node *node = *findNode(akey); 8036: if (node != e) { 8036: do { 8036: ++cnt; 8036: } while ((node = node->next) != e && node->key == akey); 8036: } 8036: return cnt; 8036: } 8036: 8036: template 8036: inline const T QHash::operator[](const Key &akey) const 8036: { 8036: return value(akey); 8036: } 8036: 8036: template 8036: inline T &QHash::operator[](const Key &akey) 8036: { 8036: detach(); 8036: 8036: uint h; 8036: Node **node = findNode(akey, &h); 8036: if (*node == e) { 8036: if (d->willGrow()) 8036: node = findNode(akey, h); 8036: return createNode(h, akey, T(), node)->value; 8036: } 8036: return (*node)->value; 8036: } 8036: 8036: template 8036: inline typename QHash::iterator QHash::insert(const Key &akey, 8036: const T &avalue) 8036: { 8036: detach(); 8036: 8036: uint h; 8036: Node **node = findNode(akey, &h); 8036: if (*node == e) { 8036: if (d->willGrow()) 8036: node = findNode(akey, h); 8036: return iterator(createNode(h, akey, avalue, node)); 8036: } 8036: 8036: if (!std::is_same::value) 8036: (*node)->value = avalue; 8036: return iterator(*node); 8036: } 8036: 8036: template 8036: inline typename QHash::iterator QHash::insertMulti(const Key &akey, 8036: const T &avalue) 8036: { 8036: detach(); 8036: d->willGrow(); 8036: 8036: uint h; 8036: Node **nextNode = findNode(akey, &h); 8036: return iterator(createNode(h, akey, avalue, nextNode)); 8036: } 8036: 8036: template 8036: int QHash::remove(const Key &akey) 8036: { 8036: if (isEmpty()) 8036: return 0; 8036: detach(); 8036: 8036: int oldSize = d->size; 8036: Node **node = findNode(akey); 8036: if (*node != e) { 8036: bool deleteNext = true; 8036: do { 8036: Node *next = (*node)->next; 8036: deleteNext = (next != e && next->key == (*node)->key); 8036: deleteNode(*node); 8036: *node = next; 8036: --d->size; 8036: } while (deleteNext); 8036: d->hasShrunk(); 8036: } 8036: return oldSize - d->size; 8036: } 8036: 8036: template 8036: T QHash::take(const Key &akey) 8036: { 8036: if (isEmpty()) 8036: return T(); 8036: detach(); 8036: 8036: Node **node = findNode(akey); 8036: if (*node != e) { 8036: T t = (*node)->value; 8036: Node *next = (*node)->next; 8036: deleteNode(*node); 8036: *node = next; 8036: --d->size; 8036: d->hasShrunk(); 8036: return t; 8036: } 8036: return T(); 8036: } 8036: 8036: template 8036: typename QHash::iterator QHash::erase(const_iterator it) 8036: { 8036: do { } while ((false) && (isValidIterator(it))); 8036: 8036: if (it == const_iterator(e)) 8036: return iterator(it.i); 8036: 8036: if (d->ref.isShared()) { 8036: 8036: int bucketNum = (it.i->h % d->numBuckets); 8036: const_iterator bucketIterator(*(d->buckets + bucketNum)); 8036: int stepsFromBucketStartToIte = 0; 8036: while (bucketIterator != it) { 8036: ++stepsFromBucketStartToIte; 8036: ++bucketIterator; 8036: } 8036: detach(); 8036: it = const_iterator(*(d->buckets + bucketNum)); 8036: while (stepsFromBucketStartToIte > 0) { 8036: --stepsFromBucketStartToIte; 8036: ++it; 8036: } 8036: } 8036: 8036: iterator ret(it.i); 8036: ++ret; 8036: 8036: Node *node = concrete(it.i); 8036: Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); 8036: while (*node_ptr != node) 8036: node_ptr = &(*node_ptr)->next; 8036: *node_ptr = node->next; 8036: deleteNode(node); 8036: --d->size; 8036: return ret; 8036: } 8036: 8036: template 8036: inline void QHash::reserve(int asize) 8036: { 8036: detach(); 8036: d->rehash(-qMax(asize, 1)); 8036: } 8036: 8036: template 8036: inline typename QHash::const_iterator QHash::find(const Key &akey) const 8036: { 8036: return const_iterator(*findNode(akey)); 8036: } 8036: 8036: template 8036: inline typename QHash::const_iterator QHash::constFind(const Key &akey) const 8036: { 8036: return const_iterator(*findNode(akey)); 8036: } 8036: 8036: template 8036: inline typename QHash::iterator QHash::find(const Key &akey) 8036: { 8036: detach(); 8036: return iterator(*findNode(akey)); 8036: } 8036: 8036: template 8036: inline bool QHash::contains(const Key &akey) const 8036: { 8036: return *findNode(akey) != e; 8036: } 8036: 8036: template 8036: typename QHash::Node **QHash::findNode(const Key &akey, uint h) const 8036: { 8036: Node **node; 8036: 8036: if (d->numBuckets) { 8036: node = reinterpret_cast(&d->buckets[h % d->numBuckets]); 8036: do { } while ((false) && (*node == e || (*node)->next)); 8036: while (*node != e && !(*node)->same_key(h, akey)) 8036: node = &(*node)->next; 8036: } else { 8036: node = const_cast(reinterpret_cast(&e)); 8036: } 8036: return node; 8036: } 8036: 8036: template 8036: typename QHash::Node **QHash::findNode(const Key &akey, 8036: uint *ahp) const 8036: { 8036: uint h = 0; 8036: 8036: if (d->numBuckets || ahp) { 8036: h = qHash(akey, d->seed); 8036: if (ahp) 8036: *ahp = h; 8036: } 8036: return findNode(akey, h); 8036: } 8036: 8036: template 8036: bool QHash::operator==(const QHash &other) const 8036: { 8036: if (size() != other.size()) 8036: return false; 8036: if (d == other.d) 8036: return true; 8036: 8036: const_iterator it = begin(); 8036: 8036: while (it != end()) { 8036: 8036: 8036: auto thisEqualRangeEnd = it; 8036: while (thisEqualRangeEnd != end() && it.key() == thisEqualRangeEnd.key()) 8036: ++thisEqualRangeEnd; 8036: 8036: const auto otherEqualRange = other.equal_range(it.key()); 8036: 8036: if (std::distance(it, thisEqualRangeEnd) != std::distance(otherEqualRange.first, otherEqualRange.second)) 8036: return false; 8036: # 962 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 3 4 8036: if (!std::is_permutation(it, thisEqualRangeEnd, otherEqualRange.first 8036: 8036: 8036: 8036: )) { 8036: return false; 8036: } 8036: 8036: it = thisEqualRangeEnd; 8036: } 8036: 8036: return true; 8036: } 8036: 8036: template 8036: QPair::iterator, typename QHash::iterator> QHash::equal_range(const Key &akey) 8036: { 8036: detach(); 8036: auto pair = qAsConst(*this).equal_range(akey); 8036: return qMakePair(iterator(pair.first.i), iterator(pair.second.i)); 8036: } 8036: 8036: template 8036: QPair::const_iterator, typename QHash::const_iterator> QHash::equal_range(const Key &akey) const noexcept 8036: { 8036: Node *node = *findNode(akey); 8036: const_iterator firstIt = const_iterator(node); 8036: 8036: if (node != e) { 8036: 8036: 8036: 8036: 8036: while (node->next != e && node->next->key == akey) 8036: node = node->next; 8036: 8036: 8036: 8036: 8036: 8036: node = concrete(QHashData::nextNode(reinterpret_cast(node))); 8036: } 8036: 8036: return qMakePair(firstIt, const_iterator(node)); 8036: } 8036: 8036: template 8036: class QMultiHash : public QHash 8036: { 8036: public: 8036: QMultiHash() noexcept {} 8036: 8036: inline QMultiHash(std::initializer_list > list) 8036: { 8036: this->reserve(int(list.size())); 8036: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8036: insert(it->first, it->second); 8036: } 8036: 8036: 8036: 8036: 8036: QMultiHash(const QHash &other) : QHash(other) {} 8036: 8036: QMultiHash(QHash &&other) noexcept : QHash(std::move(other)) {} 8036: 8036: void swap(QMultiHash &other) noexcept { QHash::swap(other); } 8036: 8036: inline typename QHash::iterator replace(const Key &key, const T &value) 8036: { return QHash::insert(key, value); } 8036: 8036: inline typename QHash::iterator insert(const Key &key, const T &value) 8036: { return QHash::insertMulti(key, value); } 8036: 8036: inline QMultiHash &operator+=(const QMultiHash &other) 8036: { this->unite(other); return *this; } 8036: inline QMultiHash operator+(const QMultiHash &other) const 8036: { QMultiHash result = *this; result += other; return result; } 8036: 8036: using QHash::contains; 8036: using QHash::remove; 8036: using QHash::count; 8036: using QHash::find; 8036: using QHash::constFind; 8036: 8036: bool contains(const Key &key, const T &value) const; 8036: 8036: int remove(const Key &key, const T &value); 8036: 8036: int count(const Key &key, const T &value) const; 8036: 8036: typename QHash::iterator find(const Key &key, const T &value) { 8036: typename QHash::iterator i(find(key)); 8036: typename QHash::iterator end(this->end()); 8036: while (i != end && i.key() == key) { 8036: if (i.value() == value) 8036: return i; 8036: ++i; 8036: } 8036: return end; 8036: } 8036: typename QHash::const_iterator find(const Key &key, const T &value) const { 8036: typename QHash::const_iterator i(constFind(key)); 8036: typename QHash::const_iterator end(QHash::constEnd()); 8036: while (i != end && i.key() == key) { 8036: if (i.value() == value) 8036: return i; 8036: ++i; 8036: } 8036: return end; 8036: } 8036: typename QHash::const_iterator constFind(const Key &key, const T &value) const 8036: { return find(key, value); } 8036: private: 8036: T &operator[](const Key &key); 8036: const T operator[](const Key &key) const; 8036: }; 8036: 8036: template 8036: inline bool QMultiHash::contains(const Key &key, const T &value) const 8036: { 8036: return constFind(key, value) != QHash::constEnd(); 8036: } 8036: 8036: template 8036: inline int QMultiHash::remove(const Key &key, const T &value) 8036: { 8036: int n = 0; 8036: typename QHash::iterator i(find(key)); 8036: typename QHash::iterator end(QHash::end()); 8036: while (i != end && i.key() == key) { 8036: if (i.value() == value) { 8036: i = this->erase(i); 8036: ++n; 8036: } else { 8036: ++i; 8036: } 8036: } 8036: return n; 8036: } 8036: 8036: template 8036: inline int QMultiHash::count(const Key &key, const T &value) const 8036: { 8036: int n = 0; 8036: typename QHash::const_iterator i(constFind(key)); 8036: typename QHash::const_iterator end(QHash::constEnd()); 8036: while (i != end && i.key() == key) { 8036: if (i.value() == value) 8036: ++n; 8036: ++i; 8036: } 8036: return n; 8036: } 8036: 8036: template class QHashIterator { typedef typename QHash::const_iterator const_iterator; typedef const_iterator Item; QHash c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QHashIterator(const QHash &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QHashIterator &operator=(const QHash &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8036: template class QMutableHashIterator { typedef typename QHash::iterator iterator; typedef typename QHash::const_iterator const_iterator; typedef iterator Item; QHash *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableHashIterator(QHash &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableHashIterator &operator=(QHash &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8036: 8036: template 8036: uint qHash(const QHash &key, uint seed = 0) 8036: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8036: { 8036: QtPrivate::QHashCombineCommutative hash; 8036: for (auto it = key.begin(), end = key.end(); it != end; ++it) { 8036: const Key &k = it.key(); 8036: const T &v = it.value(); 8036: seed = hash(seed, std::pair(k, v)); 8036: } 8036: return seed; 8036: } 8036: 8036: template 8036: inline uint qHash(const QMultiHash &key, uint seed = 0) 8036: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8036: { 8036: const QHash &key2 = key; 8036: return qHash(key2, seed); 8036: } 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QHash" 2 3 4 8036: # 56 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QStringList" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QStringList" 2 3 4 8036: # 57 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QMetaEnum" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetaobject.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetaobject.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 1 3 4 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 1 3 4 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8036: 8036: 8036: 8036: namespace QtPrivate { 8036: template struct RemoveRef { typedef T Type; }; 8036: template struct RemoveRef { typedef T Type; }; 8036: template struct RemoveConstRef { typedef T Type; }; 8036: template struct RemoveConstRef { typedef T Type; }; 8036: # 69 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8036: template struct List {}; 8036: template struct List { typedef Head Car; typedef List Cdr; }; 8036: template struct List_Append; 8036: template struct List_Append, List> { typedef List Value; }; 8036: template struct List_Left { 8036: typedef typename List_Append,typename List_Left::Value>::Value Value; 8036: }; 8036: template struct List_Left { typedef List<> Value; }; 8036: 8036: template struct List_Select { typedef typename List_Select::Value Value; }; 8036: template struct List_Select { typedef typename L::Car Value; }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct ApplyReturnValue { 8036: void *data; 8036: explicit ApplyReturnValue(void *data_) : data(data_) {} 8036: }; 8036: template 8036: void operator,(T &&value, const ApplyReturnValue &container) { 8036: if (container.data) 8036: *reinterpret_cast(container.data) = std::forward(value); 8036: } 8036: template 8036: void operator,(T, const ApplyReturnValue &) {} 8036: # 117 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8036: template struct IndexesList {}; 8036: template struct IndexesAppend; 8036: template struct IndexesAppend, Right> 8036: { typedef IndexesList Value; }; 8036: template struct Indexes 8036: { typedef typename IndexesAppend::Value, N - 1>::Value Value; }; 8036: template <> struct Indexes<0> { typedef IndexesList<> Value; }; 8036: template struct FunctionPointer { enum {ArgumentCount = -1, IsPointerToMemberFunction = false}; }; 8036: 8036: template struct FunctorCall; 8036: template 8036: struct FunctorCall, List, R, Function> { 8036: static void call(Function &f, void **arg) { 8036: f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8036: } 8036: }; 8036: template 8036: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { 8036: static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { 8036: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8036: } 8036: }; 8036: template 8036: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { 8036: static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { 8036: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8036: } 8036: }; 8036: # 160 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8036: template struct FunctionPointer 8036: { 8036: typedef Obj Object; 8036: typedef List Arguments; 8036: typedef Ret ReturnType; 8036: typedef Ret (Obj::*Function) (Args...); 8036: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8036: template 8036: static void call(Function f, Obj *o, void **arg) { 8036: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8036: } 8036: }; 8036: template struct FunctionPointer 8036: { 8036: typedef Obj Object; 8036: typedef List Arguments; 8036: typedef Ret ReturnType; 8036: typedef Ret (Obj::*Function) (Args...) const; 8036: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8036: template 8036: static void call(Function f, Obj *o, void **arg) { 8036: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8036: } 8036: }; 8036: 8036: template struct FunctionPointer 8036: { 8036: typedef List Arguments; 8036: typedef Ret ReturnType; 8036: typedef Ret (*Function) (Args...); 8036: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = false}; 8036: template 8036: static void call(Function f, void *, void **arg) { 8036: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8036: } 8036: }; 8036: # 236 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8036: template struct Functor 8036: { 8036: template 8036: static void call(Function &f, void *, void **arg) { 8036: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct IsEnumUnderlyingTypeSigned : std::false_type 8036: { 8036: }; 8036: 8036: template 8036: struct IsEnumUnderlyingTypeSigned::value>::type> 8036: : std::integral_constant::type>::value> 8036: { 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct AreArgumentsNarrowedBase : std::false_type 8036: { 8036: }; 8036: 8036: template 8036: struct AreArgumentsNarrowedBase::type> 8036: : std::integral_constant::value && std::is_integral::value) || 8036: (std::is_floating_point::value && std::is_floating_point::value && sizeof(From) > sizeof(To)) || 8036: ((std::is_integral::value || std::is_enum::value) && std::is_floating_point::value) || 8036: (std::is_integral::value && std::is_integral::value 8036: && (sizeof(From) > sizeof(To) 8036: || (std::is_signed::value ? !std::is_signed::value 8036: : (std::is_signed::value && sizeof(From) == sizeof(To))))) || 8036: (std::is_enum::value && std::is_integral::value 8036: && (sizeof(From) > sizeof(To) 8036: || (IsEnumUnderlyingTypeSigned::value ? !std::is_signed::value 8036: : (std::is_signed::value && sizeof(From) == sizeof(To))))) 8036: > 8036: { 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template struct AreArgumentsCompatible { 8036: static int test(const typename RemoveRef::Type&); 8036: static char test(...); 8036: static const typename RemoveRef::Type &dummy(); 8036: enum { value = sizeof(test(dummy())) == sizeof(int) }; 8036: 8036: 8036: 8036: 8036: }; 8036: template struct AreArgumentsCompatible { enum { value = false }; }; 8036: template struct AreArgumentsCompatible { enum { value = true }; }; 8036: 8036: template struct AreArgumentsCompatible { enum { value = true }; }; 8036: template struct AreArgumentsCompatible { enum { value = true }; }; 8036: template<> struct AreArgumentsCompatible { enum { value = true }; }; 8036: 8036: template struct CheckCompatibleArguments { enum { value = false }; }; 8036: template <> struct CheckCompatibleArguments, List<>> { enum { value = true }; }; 8036: template struct CheckCompatibleArguments> { enum { value = true }; }; 8036: template 8036: struct CheckCompatibleArguments, List> 8036: { 8036: enum { value = AreArgumentsCompatible::Type, typename RemoveConstRef::Type>::value 8036: && CheckCompatibleArguments, List>::value }; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template struct ComputeFunctorArgumentCount; 8036: 8036: template struct ComputeFunctorArgumentCountHelper 8036: { enum { Value = -1 }; }; 8036: template 8036: struct ComputeFunctorArgumentCountHelper, false> 8036: : ComputeFunctorArgumentCount, sizeof...(ArgList)>::Value> {}; 8036: 8036: template struct ComputeFunctorArgumentCount> 8036: { 8036: template static D dummy(); 8036: template static auto test(F f) -> decltype(((f.operator()((dummy())...)), int())); 8036: static char test(...); 8036: enum { 8036: Ok = sizeof(test(dummy())) == sizeof(int), 8036: Value = Ok ? int(sizeof...(ArgList)) : int(ComputeFunctorArgumentCountHelper, Ok>::Value) 8036: }; 8036: }; 8036: 8036: 8036: template struct FunctorReturnType; 8036: template struct FunctorReturnType> { 8036: template static D dummy(); 8036: typedef decltype(dummy().operator()((dummy())...)) Value; 8036: }; 8036: } 8036: 8036: 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 2 3 4 8036: 8036: 8036: 8036: 8036: class QByteArray; 8036: struct QArrayData; 8036: typedef QArrayData QByteArrayData; 8036: 8036: class QString; 8036: # 262 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8036: __attribute__((visibility("default"))) const char *qFlagLocation(const char *method); 8036: # 288 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8036: class QObject; 8036: class QMetaMethod; 8036: class QMetaEnum; 8036: class QMetaProperty; 8036: class QMetaClassInfo; 8036: 8036: 8036: class __attribute__((visibility("default"))) QGenericArgument 8036: { 8036: public: 8036: inline QGenericArgument(const char *aName = nullptr, const void *aData = nullptr) 8036: : _data(aData), _name(aName) {} 8036: inline void *data() const { return const_cast(_data); } 8036: inline const char *name() const { return _name; } 8036: 8036: private: 8036: const void *_data; 8036: const char *_name; 8036: }; 8036: 8036: class __attribute__((visibility("default"))) QGenericReturnArgument: public QGenericArgument 8036: { 8036: public: 8036: inline QGenericReturnArgument(const char *aName = nullptr, void *aData = nullptr) 8036: : QGenericArgument(aName, aData) 8036: {} 8036: }; 8036: 8036: template 8036: class QArgument: public QGenericArgument 8036: { 8036: public: 8036: inline QArgument(const char *aName, const T &aData) 8036: : QGenericArgument(aName, static_cast(&aData)) 8036: {} 8036: }; 8036: template 8036: class QArgument: public QGenericArgument 8036: { 8036: public: 8036: inline QArgument(const char *aName, T &aData) 8036: : QGenericArgument(aName, static_cast(&aData)) 8036: {} 8036: }; 8036: 8036: 8036: template 8036: class QReturnArgument: public QGenericReturnArgument 8036: { 8036: public: 8036: inline QReturnArgument(const char *aName, T &aData) 8036: : QGenericReturnArgument(aName, static_cast(&aData)) 8036: {} 8036: }; 8036: 8036: struct __attribute__((visibility("default"))) QMetaObject 8036: { 8036: class Connection; 8036: const char *className() const; 8036: const QMetaObject *superClass() const; 8036: 8036: bool inherits(const QMetaObject *metaObject) const noexcept; 8036: QObject *cast(QObject *obj) const; 8036: const QObject *cast(const QObject *obj) const; 8036: 8036: 8036: QString tr(const char *s, const char *c, int n = -1) const; 8036: 8036: 8036: int methodOffset() const; 8036: int enumeratorOffset() const; 8036: int propertyOffset() const; 8036: int classInfoOffset() const; 8036: 8036: int constructorCount() const; 8036: int methodCount() const; 8036: int enumeratorCount() const; 8036: int propertyCount() const; 8036: int classInfoCount() const; 8036: 8036: int indexOfConstructor(const char *constructor) const; 8036: int indexOfMethod(const char *method) const; 8036: int indexOfSignal(const char *signal) const; 8036: int indexOfSlot(const char *slot) const; 8036: int indexOfEnumerator(const char *name) const; 8036: int indexOfProperty(const char *name) const; 8036: int indexOfClassInfo(const char *name) const; 8036: 8036: QMetaMethod constructor(int index) const; 8036: QMetaMethod method(int index) const; 8036: QMetaEnum enumerator(int index) const; 8036: QMetaProperty property(int index) const; 8036: QMetaClassInfo classInfo(int index) const; 8036: QMetaProperty userProperty() const; 8036: 8036: static bool checkConnectArgs(const char *signal, const char *method); 8036: static bool checkConnectArgs(const QMetaMethod &signal, 8036: const QMetaMethod &method); 8036: static QByteArray normalizedSignature(const char *method); 8036: static QByteArray normalizedType(const char *type); 8036: 8036: 8036: static Connection connect(const QObject *sender, int signal_index, 8036: const QObject *receiver, int method_index, 8036: int type = 0, int *types = nullptr); 8036: 8036: static bool disconnect(const QObject *sender, int signal_index, 8036: const QObject *receiver, int method_index); 8036: static bool disconnectOne(const QObject *sender, int signal_index, 8036: const QObject *receiver, int method_index); 8036: 8036: static void connectSlotsByName(QObject *o); 8036: 8036: 8036: static void activate(QObject *sender, int signal_index, void **argv); 8036: static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); 8036: static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); 8036: 8036: static bool invokeMethod(QObject *obj, const char *member, 8036: Qt::ConnectionType, 8036: QGenericReturnArgument ret, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()); 8036: 8036: static inline bool invokeMethod(QObject *obj, const char *member, 8036: QGenericReturnArgument ret, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) 8036: { 8036: return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, 8036: val4, val5, val6, val7, val8, val9); 8036: } 8036: 8036: static inline bool invokeMethod(QObject *obj, const char *member, 8036: Qt::ConnectionType type, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) 8036: { 8036: return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, 8036: val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: 8036: static inline bool invokeMethod(QObject *obj, const char *member, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) 8036: { 8036: return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, 8036: val1, val2, val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: 8036: QObject *newInstance(QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const; 8036: 8036: enum Call { 8036: InvokeMetaMethod, 8036: ReadProperty, 8036: WriteProperty, 8036: ResetProperty, 8036: QueryPropertyDesignable, 8036: QueryPropertyScriptable, 8036: QueryPropertyStored, 8036: QueryPropertyEditable, 8036: QueryPropertyUser, 8036: CreateInstance, 8036: IndexOfMethod, 8036: RegisterPropertyMetaType, 8036: RegisterMethodArgumentMetaType 8036: }; 8036: 8036: int static_metacall(Call, int, void **) const; 8036: static int metacall(QObject *, Call, int, void **); 8036: 8036: struct { 8036: const QMetaObject *superdata; 8036: const QByteArrayData *stringdata; 8036: const uint *data; 8036: typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); 8036: StaticMetacallFunction static_metacall; 8036: const QMetaObject * const *relatedMetaObjects; 8036: void *extradata; 8036: } d; 8036: }; 8036: 8036: class __attribute__((visibility("default"))) QMetaObject::Connection { 8036: void *d_ptr; 8036: explicit Connection(void *data) : d_ptr(data) { } 8036: friend class QObject; 8036: friend class QObjectPrivate; 8036: friend struct QMetaObject; 8036: bool isConnected_helper() const; 8036: public: 8036: ~Connection(); 8036: Connection(); 8036: Connection(const Connection &other); 8036: Connection &operator=(const Connection &other); 8036: 8036: 8036: 8036: typedef void *Connection::*RestrictedBool; 8036: operator RestrictedBool() const { return d_ptr && isConnected_helper() ? &Connection::d_ptr : nullptr; } 8036: 8036: 8036: 8036: inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = nullptr; } 8036: inline Connection &operator=(Connection &&other) 8036: { qSwap(d_ptr, other.d_ptr); return *this; } 8036: 8036: }; 8036: 8036: inline const QMetaObject *QMetaObject::superClass() const 8036: { return d.superdata; } 8036: 8036: namespace QtPrivate { 8036: 8036: template struct HasQ_OBJECT_Macro { 8036: template 8036: static char test(int (T::*)(QMetaObject::Call, int, void **)); 8036: static int test(int (Object::*)(QMetaObject::Call, int, void **)); 8036: enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; 8036: }; 8036: } 8036: 8036: 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetaobject.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvarlengtharray.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvarlengtharray.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontainerfwd.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontainerfwd.h" 3 4 8036: 8036: 8036: 8036: template class QCache; 8036: template class QHash; 8036: template class QLinkedList; 8036: template class QList; 8036: template class QMap; 8036: template class QMultiHash; 8036: template class QMultiMap; 8036: template struct QPair; 8036: template class QQueue; 8036: template class QSet; 8036: template class QStack; 8036: template class QVarLengthArray; 8036: template class QVector; 8036: 8036: 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class QPodList; 8036: 8036: 8036: template 8036: class QVarLengthArray 8036: { 8036: public: 8036: inline explicit QVarLengthArray(int size = 0); 8036: 8036: inline QVarLengthArray(const QVarLengthArray &other) 8036: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8036: { 8036: append(other.constData(), other.size()); 8036: } 8036: 8036: 8036: QVarLengthArray(std::initializer_list args) 8036: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8036: { 8036: if (args.size()) 8036: append(args.begin(), int(args.size())); 8036: } 8036: 8036: 8036: inline ~QVarLengthArray() { 8036: if (QTypeInfo::isComplex) { 8036: T *i = ptr + s; 8036: while (i-- != ptr) 8036: i->~T(); 8036: } 8036: if (ptr != reinterpret_cast(array)) 8036: free(ptr); 8036: } 8036: inline QVarLengthArray &operator=(const QVarLengthArray &other) 8036: { 8036: if (this != &other) { 8036: clear(); 8036: append(other.constData(), other.size()); 8036: } 8036: return *this; 8036: } 8036: 8036: 8036: QVarLengthArray &operator=(std::initializer_list list) 8036: { 8036: resize(list.size()); 8036: std::copy(list.begin(), list.end(), 8036: (this->begin())); 8036: return *this; 8036: } 8036: 8036: 8036: inline void removeLast() { 8036: do { } while ((false) && (s > 0)); 8036: realloc(s - 1, a); 8036: } 8036: inline int size() const { return s; } 8036: inline int count() const { return s; } 8036: inline int length() const { return s; } 8036: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: T& last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8036: const T& last() const { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8036: inline bool isEmpty() const { return (s == 0); } 8036: inline void resize(int size); 8036: inline void clear() { resize(0); } 8036: inline void squeeze(); 8036: 8036: inline int capacity() const { return a; } 8036: inline void reserve(int size); 8036: 8036: inline int indexOf(const T &t, int from = 0) const; 8036: inline int lastIndexOf(const T &t, int from = -1) const; 8036: inline bool contains(const T &t) const; 8036: 8036: inline T &operator[](int idx) { 8036: do { } while ((false) && (idx >= 0 && idx < s)); 8036: return ptr[idx]; 8036: } 8036: inline const T &operator[](int idx) const { 8036: do { } while ((false) && (idx >= 0 && idx < s)); 8036: return ptr[idx]; 8036: } 8036: inline const T &at(int idx) const { return operator[](idx); } 8036: 8036: T value(int i) const; 8036: T value(int i, const T &defaultValue) const; 8036: 8036: inline void append(const T &t) { 8036: if (s == a) { 8036: T copy(t); 8036: realloc(s, s<<1); 8036: const int idx = s++; 8036: if (QTypeInfo::isComplex) { 8036: new (ptr + idx) T(std::move(copy)); 8036: } else { 8036: ptr[idx] = std::move(copy); 8036: } 8036: } else { 8036: const int idx = s++; 8036: if (QTypeInfo::isComplex) { 8036: new (ptr + idx) T(t); 8036: } else { 8036: ptr[idx] = t; 8036: } 8036: } 8036: } 8036: 8036: void append(T &&t) { 8036: if (s == a) 8036: realloc(s, s << 1); 8036: const int idx = s++; 8036: if (QTypeInfo::isComplex) 8036: new (ptr + idx) T(std::move(t)); 8036: else 8036: ptr[idx] = std::move(t); 8036: } 8036: 8036: void append(const T *buf, int size); 8036: inline QVarLengthArray &operator<<(const T &t) 8036: { append(t); return *this; } 8036: inline QVarLengthArray &operator+=(const T &t) 8036: { append(t); return *this; } 8036: 8036: void prepend(const T &t); 8036: void insert(int i, const T &t); 8036: void insert(int i, int n, const T &t); 8036: void replace(int i, const T &t); 8036: void remove(int i); 8036: void remove(int i, int n); 8036: 8036: 8036: inline T *data() { return ptr; } 8036: inline const T *data() const { return ptr; } 8036: inline const T * constData() const { return ptr; } 8036: typedef int size_type; 8036: typedef T value_type; 8036: typedef value_type *pointer; 8036: typedef const value_type *const_pointer; 8036: typedef value_type &reference; 8036: typedef const value_type &const_reference; 8036: typedef qptrdiff difference_type; 8036: 8036: 8036: typedef T* iterator; 8036: typedef const T* const_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: 8036: inline iterator begin() { return ptr; } 8036: inline const_iterator begin() const { return ptr; } 8036: inline const_iterator cbegin() const { return ptr; } 8036: inline const_iterator constBegin() const { return ptr; } 8036: inline iterator end() { return ptr + s; } 8036: inline const_iterator end() const { return ptr + s; } 8036: inline const_iterator cend() const { return ptr + s; } 8036: inline const_iterator constEnd() const { return ptr + s; } 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8036: iterator insert(const_iterator before, int n, const T &x); 8036: inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); } 8036: iterator erase(const_iterator begin, const_iterator end); 8036: inline iterator erase(const_iterator pos) { return erase(pos, pos+1); } 8036: 8036: 8036: inline bool empty() const { return isEmpty(); } 8036: inline void push_back(const T &t) { append(t); } 8036: void push_back(T &&t) { append(std::move(t)); } 8036: inline void pop_back() { removeLast(); } 8036: inline T &front() { return first(); } 8036: inline const T &front() const { return first(); } 8036: inline T &back() { return last(); } 8036: inline const T &back() const { return last(); } 8036: 8036: private: 8036: friend class QPodList; 8036: void realloc(int size, int alloc); 8036: 8036: int a; 8036: int s; 8036: T *ptr; 8036: union { 8036: char array[Prealloc * sizeof(T)]; 8036: qint64 q_for_alignment_1; 8036: double q_for_alignment_2; 8036: }; 8036: 8036: bool isValidIterator(const const_iterator &i) const 8036: { 8036: return (i <= constEnd()) && (constBegin() <= i); 8036: } 8036: }; 8036: 8036: template 8036: inline QVarLengthArray::QVarLengthArray(int asize) 8036: : s(asize) { 8036: static_assert(bool(Prealloc > 0), "QVarLengthArray Prealloc must be greater than 0."); 8036: do { } while ((false) && (s >= 0)); 8036: if (s > Prealloc) { 8036: ptr = reinterpret_cast(malloc(s * sizeof(T))); 8036: qt_noop(); 8036: a = s; 8036: } else { 8036: ptr = reinterpret_cast(array); 8036: a = Prealloc; 8036: } 8036: if (QTypeInfo::isComplex) { 8036: T *i = ptr + s; 8036: while (i != ptr) 8036: new (--i) T; 8036: } 8036: } 8036: 8036: template 8036: inline void QVarLengthArray::resize(int asize) 8036: { realloc(asize, qMax(asize, a)); } 8036: 8036: template 8036: inline void QVarLengthArray::reserve(int asize) 8036: { if (asize > a) realloc(s, asize); } 8036: 8036: template 8036: inline int QVarLengthArray::indexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from = qMax(from + s, 0); 8036: if (from < s) { 8036: T *n = ptr + from - 1; 8036: T *e = ptr + s; 8036: while (++n != e) 8036: if (*n == t) 8036: return n - ptr; 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: inline int QVarLengthArray::lastIndexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from += s; 8036: else if (from >= s) 8036: from = s - 1; 8036: if (from >= 0) { 8036: T *b = ptr; 8036: T *n = ptr + from + 1; 8036: while (n != b) { 8036: if (*--n == t) 8036: return n - b; 8036: } 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: inline bool QVarLengthArray::contains(const T &t) const 8036: { 8036: T *b = ptr; 8036: T *i = ptr + s; 8036: while (i != b) { 8036: if (*--i == t) 8036: return true; 8036: } 8036: return false; 8036: } 8036: 8036: template 8036: void QVarLengthArray::append(const T *abuf, int increment) 8036: { 8036: do { } while ((false) && (abuf)); 8036: if (increment <= 0) 8036: return; 8036: 8036: const int asize = s + increment; 8036: 8036: if (asize >= a) 8036: realloc(s, qMax(s*2, asize)); 8036: 8036: if (QTypeInfo::isComplex) { 8036: 8036: while (s < asize) 8036: new (ptr+(s++)) T(*abuf++); 8036: } else { 8036: memcpy(&ptr[s], abuf, increment * sizeof(T)); 8036: s = asize; 8036: } 8036: } 8036: 8036: template 8036: inline void QVarLengthArray::squeeze() 8036: { realloc(s, s); } 8036: 8036: template 8036: void QVarLengthArray::realloc(int asize, int aalloc) 8036: { 8036: do { } while ((false) && (aalloc >= asize)); 8036: T *oldPtr = ptr; 8036: int osize = s; 8036: 8036: const int copySize = qMin(asize, osize); 8036: do { const bool valueOfExpression = copySize >= 0; do { } while ((false) && (valueOfExpression)); if (valueOfExpression){} else __builtin_unreachable(); } while (false); 8036: if (aalloc != a) { 8036: if (aalloc > Prealloc) { 8036: T* newPtr = reinterpret_cast(malloc(aalloc * sizeof(T))); 8036: qt_noop(); 8036: 8036: ptr = newPtr; 8036: a = aalloc; 8036: } else { 8036: ptr = reinterpret_cast(array); 8036: a = Prealloc; 8036: } 8036: s = 0; 8036: if (!QTypeInfoQuery::isRelocatable) { 8036: if (true) { 8036: 8036: while (s < copySize) { 8036: new (ptr+s) T(*(oldPtr+s)); 8036: (oldPtr+s)->~T(); 8036: s++; 8036: } 8036: } else { 8036: 8036: int sClean = s; 8036: while (sClean < osize) 8036: (oldPtr+(sClean++))->~T(); 8036: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8036: free(oldPtr); 8036: qt_noop(); 8036: } 8036: } else { 8036: memcpy(ptr, oldPtr, copySize * sizeof(T)); 8036: } 8036: } 8036: s = copySize; 8036: 8036: if (QTypeInfo::isComplex) { 8036: 8036: while (osize > asize) 8036: (oldPtr+(--osize))->~T(); 8036: } 8036: 8036: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8036: free(oldPtr); 8036: 8036: if (QTypeInfo::isComplex) { 8036: 8036: while (s < asize) 8036: new (ptr+(s++)) T; 8036: } else { 8036: s = asize; 8036: } 8036: } 8036: 8036: template 8036: T QVarLengthArray::value(int i) const 8036: { 8036: if (uint(i) >= uint(size())) { 8036: return T(); 8036: } 8036: return at(i); 8036: } 8036: template 8036: T QVarLengthArray::value(int i, const T &defaultValue) const 8036: { 8036: return (uint(i) >= uint(size())) ? defaultValue : at(i); 8036: } 8036: 8036: template 8036: inline void QVarLengthArray::insert(int i, const T &t) 8036: { do { } while ((false) && (i >= 0 && i <= s)); 8036: insert(begin() + i, 1, t); } 8036: template 8036: inline void QVarLengthArray::insert(int i, int n, const T &t) 8036: { do { } while ((false) && (i >= 0 && i <= s)); 8036: insert(begin() + i, n, t); } 8036: template 8036: inline void QVarLengthArray::remove(int i, int n) 8036: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= s)); 8036: erase(begin() + i, begin() + i + n); } 8036: template 8036: inline void QVarLengthArray::remove(int i) 8036: { do { } while ((false) && (i >= 0 && i < s)); 8036: erase(begin() + i, begin() + i + 1); } 8036: template 8036: inline void QVarLengthArray::prepend(const T &t) 8036: { insert(begin(), 1, t); } 8036: 8036: template 8036: inline void QVarLengthArray::replace(int i, const T &t) 8036: { 8036: do { } while ((false) && (i >= 0 && i < s)); 8036: const T copy(t); 8036: data()[i] = copy; 8036: } 8036: 8036: 8036: template 8036: typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) 8036: { 8036: do { } while ((false) && (isValidIterator(before))); 8036: 8036: int offset = int(before - ptr); 8036: if (n != 0) { 8036: resize(s + n); 8036: const T copy(t); 8036: if (!QTypeInfoQuery::isRelocatable) { 8036: T *b = ptr + offset; 8036: T *j = ptr + s; 8036: T *i = j - n; 8036: while (i != b) 8036: *--j = *--i; 8036: i = b + n; 8036: while (i != b) 8036: *--i = copy; 8036: } else { 8036: T *b = ptr + offset; 8036: T *i = b + n; 8036: memmove(i, b, (s - offset - n) * sizeof(T)); 8036: while (i != b) 8036: new (--i) T(copy); 8036: } 8036: } 8036: return ptr + offset; 8036: } 8036: 8036: template 8036: typename QVarLengthArray::iterator QVarLengthArray::erase(const_iterator abegin, const_iterator aend) 8036: { 8036: do { } while ((false) && (isValidIterator(abegin))); 8036: do { } while ((false) && (isValidIterator(aend))); 8036: 8036: int f = int(abegin - ptr); 8036: int l = int(aend - ptr); 8036: int n = l - f; 8036: if (QTypeInfo::isComplex) { 8036: std::copy(ptr + l, ptr + s, (ptr + f)); 8036: T *i = ptr + s; 8036: T *b = ptr + s - n; 8036: while (i != b) { 8036: --i; 8036: i->~T(); 8036: } 8036: } else { 8036: memmove(ptr + f, ptr + l, (s - l) * sizeof(T)); 8036: } 8036: s -= n; 8036: return ptr + f; 8036: } 8036: 8036: template 8036: bool operator==(const QVarLengthArray &l, const QVarLengthArray &r) 8036: { 8036: if (l.size() != r.size()) 8036: return false; 8036: const T *rb = r.begin(); 8036: const T *b = l.begin(); 8036: const T *e = l.end(); 8036: return std::equal(b, e, (rb)); 8036: } 8036: 8036: template 8036: bool operator!=(const QVarLengthArray &l, const QVarLengthArray &r) 8036: { 8036: return !(l == r); 8036: } 8036: 8036: template 8036: bool operator<(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8036: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8036: 8036: { 8036: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8036: rhs.begin(), rhs.end()); 8036: } 8036: 8036: template 8036: inline bool operator>(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return rhs < lhs; 8036: } 8036: 8036: template 8036: inline bool operator<=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs > rhs); 8036: } 8036: 8036: template 8036: inline bool operator>=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs < rhs); 8036: } 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/vector" 1 3 4 8036: # 58 "/usr/include/c++/8/vector" 3 4 8036: 8036: # 59 "/usr/include/c++/8/vector" 3 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 8036: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: struct __uninitialized_copy 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_copy(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result) 8036: { 8036: _ForwardIterator __cur = __result; 8036: if (true) 8036: { 8036: for (; __first != __last; ++__first, (void)++__cur) 8036: std::_Construct(std::__addressof(*__cur), *__first); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_copy 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_copy(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result) 8036: { return std::copy(__first, __last, __result); } 8036: }; 8036: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: template 8036: inline _ForwardIterator 8036: uninitialized_copy(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result) 8036: { 8036: typedef typename iterator_traits<_InputIterator>::value_type 8036: _ValueType1; 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType2; 8036: 8036: 8036: 8036: 8036: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 8036: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 8036: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 8036: 8036: 8036: return std::__uninitialized_copy<__is_trivial(_ValueType1) 8036: && __is_trivial(_ValueType2) 8036: && __assignable>:: 8036: __uninit_copy(__first, __last, __result); 8036: } 8036: 8036: 8036: template 8036: struct __uninitialized_fill 8036: { 8036: template 8036: static void 8036: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __x) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __cur != __last; ++__cur) 8036: std::_Construct(std::__addressof(*__cur), __x); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_fill 8036: { 8036: template 8036: static void 8036: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __x) 8036: { std::fill(__first, __last, __x); } 8036: }; 8036: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: template 8036: inline void 8036: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __x) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: 8036: 8036: 8036: const bool __assignable = is_copy_assignable<_ValueType>::value; 8036: 8036: 8036: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 8036: __uninit_fill(__first, __last, __x); 8036: } 8036: 8036: 8036: template 8036: struct __uninitialized_fill_n 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8036: const _Tp& __x) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __n > 0; --__n, (void) ++__cur) 8036: std::_Construct(std::__addressof(*__cur), __x); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_fill_n 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8036: const _Tp& __x) 8036: { return std::fill_n(__first, __n, __x); } 8036: }; 8036: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: template 8036: inline _ForwardIterator 8036: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: 8036: 8036: 8036: const bool __assignable = is_copy_assignable<_ValueType>::value; 8036: 8036: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 8036: __uninit_fill_n(__first, __n, __x); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result, _Allocator& __alloc) 8036: { 8036: _ForwardIterator __cur = __result; 8036: if (true) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __first != __last; ++__first, (void)++__cur) 8036: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __cur, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result, allocator<_Tp>&) 8036: { return std::uninitialized_copy(__first, __last, __result); } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 8036: _ForwardIterator __result, _Allocator& __alloc) 8036: { 8036: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 8036: std::make_move_iterator(__last), 8036: __result, __alloc); 8036: } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_move_if_noexcept_a(_InputIterator __first, 8036: _InputIterator __last, 8036: _ForwardIterator __result, 8036: _Allocator& __alloc) 8036: { 8036: return std::__uninitialized_copy_a 8036: (std::__make_move_if_noexcept_iterator(__first), 8036: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 8036: } 8036: 8036: template 8036: void 8036: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __x, _Allocator& __alloc) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __cur != __last; ++__cur) 8036: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline void 8036: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8036: const _Tp& __x, allocator<_Tp2>&) 8036: { std::uninitialized_fill(__first, __last, __x); } 8036: 8036: template 8036: _ForwardIterator 8036: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8036: const _Tp& __x, _Allocator& __alloc) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __n > 0; --__n, (void) ++__cur) 8036: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8036: const _Tp& __x, allocator<_Tp2>&) 8036: { return std::uninitialized_fill_n(__first, __n, __x); } 8036: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_copy_move(_InputIterator1 __first1, 8036: _InputIterator1 __last1, 8036: _InputIterator2 __first2, 8036: _InputIterator2 __last2, 8036: _ForwardIterator __result, 8036: _Allocator& __alloc) 8036: { 8036: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 8036: __result, 8036: __alloc); 8036: if (true) 8036: { 8036: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __mid, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_move_copy(_InputIterator1 __first1, 8036: _InputIterator1 __last1, 8036: _InputIterator2 __first2, 8036: _InputIterator2 __last2, 8036: _ForwardIterator __result, 8036: _Allocator& __alloc) 8036: { 8036: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 8036: __result, 8036: __alloc); 8036: if (true) 8036: { 8036: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __mid, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 8036: const _Tp& __x, _InputIterator __first, 8036: _InputIterator __last, _Allocator& __alloc) 8036: { 8036: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 8036: if (true) 8036: { 8036: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __mid, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 8036: _ForwardIterator __first2, 8036: _ForwardIterator __last2, const _Tp& __x, 8036: _Allocator& __alloc) 8036: { 8036: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 8036: __first2, 8036: __alloc); 8036: if (true) 8036: { 8036: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first2, __mid2, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __uninitialized_default_1 8036: { 8036: template 8036: static void 8036: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __cur != __last; ++__cur) 8036: std::_Construct(std::__addressof(*__cur)); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_default_1 8036: { 8036: template 8036: static void 8036: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: std::fill(__first, __last, _ValueType()); 8036: } 8036: }; 8036: 8036: template 8036: struct __uninitialized_default_n_1 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_default_n(_ForwardIterator __first, _Size __n) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __n > 0; --__n, (void) ++__cur) 8036: std::_Construct(std::__addressof(*__cur)); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_default_n_1 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_default_n(_ForwardIterator __first, _Size __n) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: return std::fill_n(__first, __n, _ValueType()); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: __uninitialized_default(_ForwardIterator __first, 8036: _ForwardIterator __last) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: const bool __assignable = is_copy_assignable<_ValueType>::value; 8036: 8036: std::__uninitialized_default_1<__is_trivial(_ValueType) 8036: && __assignable>:: 8036: __uninit_default(__first, __last); 8036: } 8036: 8036: 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: const bool __assignable = is_copy_assignable<_ValueType>::value; 8036: 8036: return __uninitialized_default_n_1<__is_trivial(_ValueType) 8036: && __assignable>:: 8036: __uninit_default_n(__first, __n); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: __uninitialized_default_a(_ForwardIterator __first, 8036: _ForwardIterator __last, 8036: _Allocator& __alloc) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __cur != __last; ++__cur) 8036: __traits::construct(__alloc, std::__addressof(*__cur)); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline void 8036: __uninitialized_default_a(_ForwardIterator __first, 8036: _ForwardIterator __last, 8036: allocator<_Tp>&) 8036: { std::__uninitialized_default(__first, __last); } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: _ForwardIterator 8036: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8036: _Allocator& __alloc) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8036: for (; __n > 0; --__n, (void) ++__cur) 8036: __traits::construct(__alloc, std::__addressof(*__cur)); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur, __alloc); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8036: allocator<_Tp>&) 8036: { return std::__uninitialized_default_n(__first, __n); } 8036: 8036: template 8036: struct __uninitialized_default_novalue_1 8036: { 8036: template 8036: static void 8036: __uninit_default_novalue(_ForwardIterator __first, 8036: _ForwardIterator __last) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __cur != __last; ++__cur) 8036: std::_Construct_novalue(std::__addressof(*__cur)); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_default_novalue_1 8036: { 8036: template 8036: static void 8036: __uninit_default_novalue(_ForwardIterator __first, 8036: _ForwardIterator __last) 8036: { 8036: } 8036: }; 8036: 8036: template 8036: struct __uninitialized_default_novalue_n_1 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8036: { 8036: _ForwardIterator __cur = __first; 8036: if (true) 8036: { 8036: for (; __n > 0; --__n, (void) ++__cur) 8036: std::_Construct_novalue(std::__addressof(*__cur)); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__first, __cur); 8036: ; 8036: } 8036: } 8036: }; 8036: 8036: template<> 8036: struct __uninitialized_default_novalue_n_1 8036: { 8036: template 8036: static _ForwardIterator 8036: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8036: { return std::next(__first, __n); } 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: inline void 8036: __uninitialized_default_novalue(_ForwardIterator __first, 8036: _ForwardIterator __last) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: std::__uninitialized_default_novalue_1< 8036: is_trivially_default_constructible<_ValueType>::value>:: 8036: __uninit_default_novalue(__first, __last); 8036: } 8036: 8036: 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 8036: { 8036: typedef typename iterator_traits<_ForwardIterator>::value_type 8036: _ValueType; 8036: 8036: return __uninitialized_default_novalue_n_1< 8036: is_trivially_default_constructible<_ValueType>::value>:: 8036: __uninit_default_novalue_n(__first, __n); 8036: } 8036: 8036: template 8036: _ForwardIterator 8036: __uninitialized_copy_n(_InputIterator __first, _Size __n, 8036: _ForwardIterator __result, input_iterator_tag) 8036: { 8036: _ForwardIterator __cur = __result; 8036: if (true) 8036: { 8036: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8036: std::_Construct(std::__addressof(*__cur), *__first); 8036: return __cur; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __cur); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline _ForwardIterator 8036: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 8036: _ForwardIterator __result, 8036: random_access_iterator_tag) 8036: { return std::uninitialized_copy(__first, __first + __n, __result); } 8036: 8036: template 8036: pair<_InputIterator, _ForwardIterator> 8036: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8036: _ForwardIterator __result, input_iterator_tag) 8036: { 8036: _ForwardIterator __cur = __result; 8036: if (true) 8036: { 8036: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8036: std::_Construct(std::__addressof(*__cur), *__first); 8036: return {__first, __cur}; 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__result, __cur); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: inline pair<_RandomAccessIterator, _ForwardIterator> 8036: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 8036: _ForwardIterator __result, 8036: random_access_iterator_tag) 8036: { 8036: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 8036: auto __first_res = std::next(__first, __n); 8036: return {__first_res, __second_res}; 8036: } 8036: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: template 8036: inline _ForwardIterator 8036: uninitialized_copy_n(_InputIterator __first, _Size __n, 8036: _ForwardIterator __result) 8036: { return std::__uninitialized_copy_n(__first, __n, __result, 8036: std::__iterator_category(__first)); } 8036: 8036: template 8036: inline pair<_InputIterator, _ForwardIterator> 8036: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8036: _ForwardIterator __result) 8036: { 8036: return 8036: std::__uninitialized_copy_n_pair(__first, __n, __result, 8036: std::__iterator_category(__first)); 8036: } 8036: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8036: 8036: } 8036: # 64 "/usr/include/c++/8/vector" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 8036: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: struct _Vector_base 8036: { 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind<_Tp>::other _Tp_alloc_type; 8036: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 8036: pointer; 8036: 8036: struct _Vector_impl 8036: : public _Tp_alloc_type 8036: { 8036: pointer _M_start; 8036: pointer _M_finish; 8036: pointer _M_end_of_storage; 8036: 8036: _Vector_impl() 8036: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 8036: { } 8036: 8036: _Vector_impl(_Tp_alloc_type const& __a) noexcept 8036: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 8036: { } 8036: 8036: 8036: _Vector_impl(_Tp_alloc_type&& __a) noexcept 8036: : _Tp_alloc_type(std::move(__a)), 8036: _M_start(), _M_finish(), _M_end_of_storage() 8036: { } 8036: 8036: 8036: void _M_swap_data(_Vector_impl& __x) noexcept 8036: { 8036: std::swap(_M_start, __x._M_start); 8036: std::swap(_M_finish, __x._M_finish); 8036: std::swap(_M_end_of_storage, __x._M_end_of_storage); 8036: } 8036: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: }; 8036: 8036: public: 8036: typedef _Alloc allocator_type; 8036: 8036: _Tp_alloc_type& 8036: _M_get_Tp_allocator() noexcept 8036: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8036: 8036: const _Tp_alloc_type& 8036: _M_get_Tp_allocator() const noexcept 8036: { return *static_cast(&this->_M_impl); } 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_M_get_Tp_allocator()); } 8036: 8036: _Vector_base() 8036: : _M_impl() { } 8036: 8036: _Vector_base(const allocator_type& __a) noexcept 8036: : _M_impl(__a) { } 8036: 8036: _Vector_base(size_t __n) 8036: : _M_impl() 8036: { _M_create_storage(__n); } 8036: 8036: _Vector_base(size_t __n, const allocator_type& __a) 8036: : _M_impl(__a) 8036: { _M_create_storage(__n); } 8036: 8036: 8036: _Vector_base(_Tp_alloc_type&& __a) noexcept 8036: : _M_impl(std::move(__a)) { } 8036: 8036: _Vector_base(_Vector_base&& __x) noexcept 8036: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8036: { this->_M_impl._M_swap_data(__x._M_impl); } 8036: 8036: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 8036: : _M_impl(__a) 8036: { 8036: if (__x.get_allocator() == __a) 8036: this->_M_impl._M_swap_data(__x._M_impl); 8036: else 8036: { 8036: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 8036: _M_create_storage(__n); 8036: } 8036: } 8036: 8036: 8036: ~_Vector_base() noexcept 8036: { 8036: _M_deallocate(_M_impl._M_start, 8036: _M_impl._M_end_of_storage - _M_impl._M_start); 8036: } 8036: 8036: public: 8036: _Vector_impl _M_impl; 8036: 8036: pointer 8036: _M_allocate(size_t __n) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8036: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 8036: } 8036: 8036: void 8036: _M_deallocate(pointer __p, size_t __n) 8036: { 8036: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8036: if (__p) 8036: _Tr::deallocate(_M_impl, __p, __n); 8036: } 8036: 8036: private: 8036: void 8036: _M_create_storage(size_t __n) 8036: { 8036: this->_M_impl._M_start = this->_M_allocate(__n); 8036: this->_M_impl._M_finish = this->_M_impl._M_start; 8036: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8036: } 8036: }; 8036: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template > 8036: class vector : protected _Vector_base<_Tp, _Alloc> 8036: { 8036: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: static_assert(is_same::type, _Tp>::value, 8036: "std::vector must have a non-const, non-volatile value_type"); 8036: 8036: 8036: 8036: 8036: 8036: 8036: typedef _Vector_base<_Tp, _Alloc> _Base; 8036: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8036: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8036: 8036: public: 8036: typedef _Tp value_type; 8036: typedef typename _Base::pointer pointer; 8036: typedef typename _Alloc_traits::const_pointer const_pointer; 8036: typedef typename _Alloc_traits::reference reference; 8036: typedef typename _Alloc_traits::const_reference const_reference; 8036: typedef __gnu_cxx::__normal_iterator iterator; 8036: typedef __gnu_cxx::__normal_iterator 8036: const_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Alloc allocator_type; 8036: 8036: protected: 8036: using _Base::_M_allocate; 8036: using _Base::_M_deallocate; 8036: using _Base::_M_impl; 8036: using _Base::_M_get_Tp_allocator; 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: 8036: vector() 8036: 8036: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8036: 8036: : _Base() { } 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: vector(const allocator_type& __a) noexcept 8036: : _Base(__a) { } 8036: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: explicit 8036: vector(size_type __n, const allocator_type& __a = allocator_type()) 8036: : _Base(__n, __a) 8036: { _M_default_initialize(__n); } 8036: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector(size_type __n, const value_type& __value, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(__n, __a) 8036: { _M_fill_initialize(__n, __value); } 8036: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector(const vector& __x) 8036: : _Base(__x.size(), 8036: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 8036: { 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8036: this->_M_impl._M_start, 8036: _M_get_Tp_allocator()); 8036: } 8036: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector(vector&& __x) noexcept 8036: : _Base(std::move(__x)) { } 8036: 8036: 8036: vector(const vector& __x, const allocator_type& __a) 8036: : _Base(__x.size(), __a) 8036: { 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8036: this->_M_impl._M_start, 8036: _M_get_Tp_allocator()); 8036: } 8036: 8036: 8036: vector(vector&& __rv, const allocator_type& __m) 8036: noexcept(_Alloc_traits::_S_always_equal()) 8036: : _Base(std::move(__rv), __m) 8036: { 8036: if (__rv.get_allocator() != __m) 8036: { 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 8036: this->_M_impl._M_start, 8036: _M_get_Tp_allocator()); 8036: __rv.clear(); 8036: } 8036: } 8036: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector(initializer_list __l, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(__a) 8036: { 8036: _M_range_initialize(__l.begin(), __l.end(), 8036: random_access_iterator_tag()); 8036: } 8036: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template> 8036: vector(_InputIterator __first, _InputIterator __last, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(__a) 8036: { _M_initialize_dispatch(__first, __last, __false_type()); } 8036: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: ~vector() noexcept 8036: { 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: ; 8036: } 8036: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector& 8036: operator=(const vector& __x); 8036: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector& 8036: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 8036: { 8036: constexpr bool __move_storage = 8036: _Alloc_traits::_S_propagate_on_move_assign() 8036: || _Alloc_traits::_S_always_equal(); 8036: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8036: return *this; 8036: } 8036: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: vector& 8036: operator=(initializer_list __l) 8036: { 8036: this->_M_assign_aux(__l.begin(), __l.end(), 8036: random_access_iterator_tag()); 8036: return *this; 8036: } 8036: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: assign(size_type __n, const value_type& __val) 8036: { _M_fill_assign(__n, __val); } 8036: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template> 8036: void 8036: assign(_InputIterator __first, _InputIterator __last) 8036: { _M_assign_dispatch(__first, __last, __false_type()); } 8036: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: assign(initializer_list __l) 8036: { 8036: this->_M_assign_aux(__l.begin(), __l.end(), 8036: random_access_iterator_tag()); 8036: } 8036: 8036: 8036: 8036: using _Base::get_allocator; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return iterator(this->_M_impl._M_start); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return const_iterator(this->_M_impl._M_start); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: end() noexcept 8036: { return iterator(this->_M_impl._M_finish); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return const_iterator(this->_M_impl._M_finish); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return const_iterator(this->_M_impl._M_start); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return const_iterator(this->_M_impl._M_finish); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 8036: 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8036: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: resize(size_type __new_size) 8036: { 8036: if (__new_size > size()) 8036: _M_default_append(__new_size - size()); 8036: else if (__new_size < size()) 8036: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8036: } 8036: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: resize(size_type __new_size, const value_type& __x) 8036: { 8036: if (__new_size > size()) 8036: _M_fill_insert(end(), __new_size - size(), __x); 8036: else if (__new_size < size()) 8036: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8036: } 8036: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: shrink_to_fit() 8036: { _M_shrink_to_fit(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: size_type 8036: capacity() const noexcept 8036: { return size_type(this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); } 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: empty() const noexcept 8036: { return begin() == end(); } 8036: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: reserve(size_type __n); 8036: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: reference 8036: operator[](size_type __n) noexcept 8036: { 8036: ; 8036: return *(this->_M_impl._M_start + __n); 8036: } 8036: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: const_reference 8036: operator[](size_type __n) const noexcept 8036: { 8036: ; 8036: return *(this->_M_impl._M_start + __n); 8036: } 8036: 8036: protected: 8036: 8036: void 8036: _M_range_check(size_type __n) const 8036: { 8036: if (__n >= this->size()) 8036: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8036: 8036: , 8036: __n, this->size()); 8036: } 8036: 8036: public: 8036: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: reference 8036: at(size_type __n) 8036: { 8036: _M_range_check(__n); 8036: return (*this)[__n]; 8036: } 8036: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: const_reference 8036: at(size_type __n) const 8036: { 8036: _M_range_check(__n); 8036: return (*this)[__n]; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: front() noexcept 8036: { 8036: ; 8036: return *begin(); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: front() const noexcept 8036: { 8036: ; 8036: return *begin(); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: reference 8036: back() noexcept 8036: { 8036: ; 8036: return *(end() - 1); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: const_reference 8036: back() const noexcept 8036: { 8036: ; 8036: return *(end() - 1); 8036: } 8036: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: _Tp* 8036: data() noexcept 8036: { return _M_data_ptr(this->_M_impl._M_start); } 8036: 8036: const _Tp* 8036: data() const noexcept 8036: { return _M_data_ptr(this->_M_impl._M_start); } 8036: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: push_back(const value_type& __x) 8036: { 8036: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: __x); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: } 8036: else 8036: _M_realloc_insert(end(), __x); 8036: } 8036: 8036: 8036: void 8036: push_back(value_type&& __x) 8036: { emplace_back(std::move(__x)); } 8036: 8036: template 8036: 8036: 8036: 8036: void 8036: 8036: emplace_back(_Args&&... __args); 8036: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: pop_back() noexcept 8036: { 8036: ; 8036: --this->_M_impl._M_finish; 8036: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8036: ; 8036: } 8036: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template 8036: iterator 8036: emplace(const_iterator __position, _Args&&... __args) 8036: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 8036: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: insert(const_iterator __position, const value_type& __x); 8036: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: insert(const_iterator __position, value_type&& __x) 8036: { return _M_insert_rval(__position, std::move(__x)); } 8036: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: insert(const_iterator __position, initializer_list __l) 8036: { 8036: auto __offset = __position - cbegin(); 8036: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 8036: std::random_access_iterator_tag()); 8036: return begin() + __offset; 8036: } 8036: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: insert(const_iterator __position, size_type __n, const value_type& __x) 8036: { 8036: difference_type __offset = __position - cbegin(); 8036: _M_fill_insert(begin() + __offset, __n, __x); 8036: return begin() + __offset; 8036: } 8036: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template> 8036: iterator 8036: insert(const_iterator __position, _InputIterator __first, 8036: _InputIterator __last) 8036: { 8036: difference_type __offset = __position - cbegin(); 8036: _M_insert_dispatch(begin() + __offset, 8036: __first, __last, __false_type()); 8036: return begin() + __offset; 8036: } 8036: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: 8036: erase(const_iterator __position) 8036: { return _M_erase(begin() + (__position - cbegin())); } 8036: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: iterator 8036: 8036: erase(const_iterator __first, const_iterator __last) 8036: { 8036: const auto __beg = begin(); 8036: const auto __cbeg = cbegin(); 8036: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 8036: } 8036: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: void 8036: swap(vector& __x) noexcept 8036: { 8036: 8036: 8036: ; 8036: 8036: this->_M_impl._M_swap_data(__x._M_impl); 8036: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8036: __x._M_get_Tp_allocator()); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: clear() noexcept 8036: { _M_erase_at_end(this->_M_impl._M_start); } 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: template 8036: pointer 8036: _M_allocate_and_copy(size_type __n, 8036: _ForwardIterator __first, _ForwardIterator __last) 8036: { 8036: pointer __result = this->_M_allocate(__n); 8036: if (true) 8036: { 8036: std::__uninitialized_copy_a(__first, __last, __result, 8036: _M_get_Tp_allocator()); 8036: return __result; 8036: } 8036: if (false) 8036: { 8036: _M_deallocate(__result, __n); 8036: ; 8036: } 8036: } 8036: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template 8036: void 8036: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 8036: { 8036: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 8036: this->_M_impl._M_end_of_storage = 8036: this->_M_impl._M_start + static_cast(__n); 8036: _M_fill_initialize(static_cast(__n), __value); 8036: } 8036: 8036: 8036: template 8036: void 8036: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8036: __false_type) 8036: { 8036: typedef typename std::iterator_traits<_InputIterator>:: 8036: iterator_category _IterCategory; 8036: _M_range_initialize(__first, __last, _IterCategory()); 8036: } 8036: 8036: 8036: template 8036: void 8036: _M_range_initialize(_InputIterator __first, 8036: _InputIterator __last, std::input_iterator_tag) 8036: { 8036: for (; __first != __last; ++__first) 8036: 8036: emplace_back(*__first); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: template 8036: void 8036: _M_range_initialize(_ForwardIterator __first, 8036: _ForwardIterator __last, std::forward_iterator_tag) 8036: { 8036: const size_type __n = std::distance(__first, __last); 8036: this->_M_impl._M_start = this->_M_allocate(__n); 8036: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_copy_a(__first, __last, 8036: this->_M_impl._M_start, 8036: _M_get_Tp_allocator()); 8036: } 8036: 8036: 8036: 8036: void 8036: _M_fill_initialize(size_type __n, const value_type& __value) 8036: { 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 8036: _M_get_Tp_allocator()); 8036: } 8036: 8036: 8036: 8036: void 8036: _M_default_initialize(size_type __n) 8036: { 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 8036: _M_get_Tp_allocator()); 8036: } 8036: # 1497 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template 8036: void 8036: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8036: { _M_fill_assign(__n, __val); } 8036: 8036: 8036: template 8036: void 8036: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8036: __false_type) 8036: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8036: 8036: 8036: template 8036: void 8036: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8036: std::input_iterator_tag); 8036: 8036: 8036: template 8036: void 8036: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8036: std::forward_iterator_tag); 8036: 8036: 8036: 8036: void 8036: _M_fill_assign(size_type __n, const value_type& __val); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 8036: __true_type) 8036: { _M_fill_insert(__pos, __n, __val); } 8036: 8036: 8036: template 8036: void 8036: _M_insert_dispatch(iterator __pos, _InputIterator __first, 8036: _InputIterator __last, __false_type) 8036: { 8036: _M_range_insert(__pos, __first, __last, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: 8036: template 8036: void 8036: _M_range_insert(iterator __pos, _InputIterator __first, 8036: _InputIterator __last, std::input_iterator_tag); 8036: 8036: 8036: template 8036: void 8036: _M_range_insert(iterator __pos, _ForwardIterator __first, 8036: _ForwardIterator __last, std::forward_iterator_tag); 8036: 8036: 8036: 8036: void 8036: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8036: 8036: 8036: 8036: void 8036: _M_default_append(size_type __n); 8036: 8036: bool 8036: _M_shrink_to_fit(); 8036: # 1584 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: struct _Temporary_value 8036: { 8036: template 8036: explicit 8036: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 8036: { 8036: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 8036: std::forward<_Args>(__args)...); 8036: } 8036: 8036: ~_Temporary_value() 8036: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 8036: 8036: value_type& 8036: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 8036: 8036: private: 8036: pointer 8036: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 8036: 8036: vector* _M_this; 8036: typename aligned_storage::type __buf; 8036: }; 8036: 8036: 8036: 8036: template 8036: void 8036: _M_insert_aux(iterator __position, _Arg&& __arg); 8036: 8036: template 8036: void 8036: _M_realloc_insert(iterator __position, _Args&&... __args); 8036: 8036: 8036: iterator 8036: _M_insert_rval(const_iterator __position, value_type&& __v); 8036: 8036: 8036: template 8036: iterator 8036: _M_emplace_aux(const_iterator __position, _Args&&... __args); 8036: 8036: 8036: iterator 8036: _M_emplace_aux(const_iterator __position, value_type&& __v) 8036: { return _M_insert_rval(__position, std::move(__v)); } 8036: 8036: 8036: 8036: size_type 8036: _M_check_len(size_type __n, const char* __s) const 8036: { 8036: if (max_size() - size() < __n) 8036: __throw_length_error((__s)); 8036: 8036: const size_type __len = size() + std::max(size(), __n); 8036: return (__len < size() || __len > max_size()) ? max_size() : __len; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: void 8036: _M_erase_at_end(pointer __pos) noexcept 8036: { 8036: if (size_type __n = this->_M_impl._M_finish - __pos) 8036: { 8036: std::_Destroy(__pos, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish = __pos; 8036: ; 8036: } 8036: } 8036: 8036: iterator 8036: _M_erase(iterator __position); 8036: 8036: iterator 8036: _M_erase(iterator __first, iterator __last); 8036: 8036: 8036: private: 8036: 8036: 8036: 8036: void 8036: _M_move_assign(vector&& __x, std::true_type) noexcept 8036: { 8036: vector __tmp(get_allocator()); 8036: this->_M_impl._M_swap_data(__tmp._M_impl); 8036: this->_M_impl._M_swap_data(__x._M_impl); 8036: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8036: } 8036: 8036: 8036: 8036: void 8036: _M_move_assign(vector&& __x, std::false_type) 8036: { 8036: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8036: _M_move_assign(std::move(__x), std::true_type()); 8036: else 8036: { 8036: 8036: 8036: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 8036: std::__make_move_if_noexcept_iterator(__x.end())); 8036: __x.clear(); 8036: } 8036: } 8036: 8036: 8036: template 8036: _Up* 8036: _M_data_ptr(_Up* __ptr) const noexcept 8036: { return __ptr; } 8036: 8036: 8036: template 8036: typename std::pointer_traits<_Ptr>::element_type* 8036: _M_data_ptr(_Ptr __ptr) const 8036: { return empty() ? nullptr : std::__to_address(__ptr); } 8036: # 1724 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: }; 8036: # 1746 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template 8036: inline bool 8036: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return (__x.size() == __y.size() 8036: && std::equal(__x.begin(), __x.end(), __y.begin())); } 8036: # 1763 "/usr/include/c++/8/bits/stl_vector.h" 3 8036: template 8036: inline bool 8036: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return std::lexicographical_compare(__x.begin(), __x.end(), 8036: __y.begin(), __y.end()); } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return !(__x == __y); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return __y < __x; } 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return !(__y < __x); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: template 8036: inline void 8036: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: 8036: } 8036: # 65 "/usr/include/c++/8/vector" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 8036: # 63 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: typedef unsigned long _Bit_type; 8036: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 8036: 8036: struct _Bit_reference 8036: { 8036: _Bit_type * _M_p; 8036: _Bit_type _M_mask; 8036: 8036: _Bit_reference(_Bit_type * __x, _Bit_type __y) 8036: : _M_p(__x), _M_mask(__y) { } 8036: 8036: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 8036: 8036: operator bool() const noexcept 8036: { return !!(*_M_p & _M_mask); } 8036: 8036: _Bit_reference& 8036: operator=(bool __x) noexcept 8036: { 8036: if (__x) 8036: *_M_p |= _M_mask; 8036: else 8036: *_M_p &= ~_M_mask; 8036: return *this; 8036: } 8036: 8036: _Bit_reference& 8036: operator=(const _Bit_reference& __x) noexcept 8036: { return *this = bool(__x); } 8036: 8036: bool 8036: operator==(const _Bit_reference& __x) const 8036: { return bool(*this) == bool(__x); } 8036: 8036: bool 8036: operator<(const _Bit_reference& __x) const 8036: { return !bool(*this) && bool(__x); } 8036: 8036: void 8036: flip() noexcept 8036: { *_M_p ^= _M_mask; } 8036: }; 8036: 8036: 8036: inline void 8036: swap(_Bit_reference __x, _Bit_reference __y) noexcept 8036: { 8036: bool __tmp = __x; 8036: __x = __y; 8036: __y = __tmp; 8036: } 8036: 8036: inline void 8036: swap(_Bit_reference __x, bool& __y) noexcept 8036: { 8036: bool __tmp = __x; 8036: __x = __y; 8036: __y = __tmp; 8036: } 8036: 8036: inline void 8036: swap(bool& __x, _Bit_reference __y) noexcept 8036: { 8036: bool __tmp = __x; 8036: __x = __y; 8036: __y = __tmp; 8036: } 8036: 8036: 8036: struct _Bit_iterator_base 8036: : public std::iterator 8036: { 8036: _Bit_type * _M_p; 8036: unsigned int _M_offset; 8036: 8036: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 8036: : _M_p(__x), _M_offset(__y) { } 8036: 8036: void 8036: _M_bump_up() 8036: { 8036: if (_M_offset++ == int(_S_word_bit) - 1) 8036: { 8036: _M_offset = 0; 8036: ++_M_p; 8036: } 8036: } 8036: 8036: void 8036: _M_bump_down() 8036: { 8036: if (_M_offset-- == 0) 8036: { 8036: _M_offset = int(_S_word_bit) - 1; 8036: --_M_p; 8036: } 8036: } 8036: 8036: void 8036: _M_incr(ptrdiff_t __i) 8036: { 8036: difference_type __n = __i + _M_offset; 8036: _M_p += __n / int(_S_word_bit); 8036: __n = __n % int(_S_word_bit); 8036: if (__n < 0) 8036: { 8036: __n += int(_S_word_bit); 8036: --_M_p; 8036: } 8036: _M_offset = static_cast(__n); 8036: } 8036: 8036: bool 8036: operator==(const _Bit_iterator_base& __i) const 8036: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 8036: 8036: bool 8036: operator<(const _Bit_iterator_base& __i) const 8036: { 8036: return _M_p < __i._M_p 8036: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 8036: } 8036: 8036: bool 8036: operator!=(const _Bit_iterator_base& __i) const 8036: { return !(*this == __i); } 8036: 8036: bool 8036: operator>(const _Bit_iterator_base& __i) const 8036: { return __i < *this; } 8036: 8036: bool 8036: operator<=(const _Bit_iterator_base& __i) const 8036: { return !(__i < *this); } 8036: 8036: bool 8036: operator>=(const _Bit_iterator_base& __i) const 8036: { return !(*this < __i); } 8036: }; 8036: 8036: inline ptrdiff_t 8036: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 8036: { 8036: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 8036: + __x._M_offset - __y._M_offset); 8036: } 8036: 8036: struct _Bit_iterator : public _Bit_iterator_base 8036: { 8036: typedef _Bit_reference reference; 8036: typedef _Bit_reference* pointer; 8036: typedef _Bit_iterator iterator; 8036: 8036: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 8036: 8036: _Bit_iterator(_Bit_type * __x, unsigned int __y) 8036: : _Bit_iterator_base(__x, __y) { } 8036: 8036: iterator 8036: _M_const_cast() const 8036: { return *this; } 8036: 8036: reference 8036: operator*() const 8036: { return reference(_M_p, 1UL << _M_offset); } 8036: 8036: iterator& 8036: operator++() 8036: { 8036: _M_bump_up(); 8036: return *this; 8036: } 8036: 8036: iterator 8036: operator++(int) 8036: { 8036: iterator __tmp = *this; 8036: _M_bump_up(); 8036: return __tmp; 8036: } 8036: 8036: iterator& 8036: operator--() 8036: { 8036: _M_bump_down(); 8036: return *this; 8036: } 8036: 8036: iterator 8036: operator--(int) 8036: { 8036: iterator __tmp = *this; 8036: _M_bump_down(); 8036: return __tmp; 8036: } 8036: 8036: iterator& 8036: operator+=(difference_type __i) 8036: { 8036: _M_incr(__i); 8036: return *this; 8036: } 8036: 8036: iterator& 8036: operator-=(difference_type __i) 8036: { 8036: *this += -__i; 8036: return *this; 8036: } 8036: 8036: iterator 8036: operator+(difference_type __i) const 8036: { 8036: iterator __tmp = *this; 8036: return __tmp += __i; 8036: } 8036: 8036: iterator 8036: operator-(difference_type __i) const 8036: { 8036: iterator __tmp = *this; 8036: return __tmp -= __i; 8036: } 8036: 8036: reference 8036: operator[](difference_type __i) const 8036: { return *(*this + __i); } 8036: }; 8036: 8036: inline _Bit_iterator 8036: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 8036: { return __x + __n; } 8036: 8036: struct _Bit_const_iterator : public _Bit_iterator_base 8036: { 8036: typedef bool reference; 8036: typedef bool const_reference; 8036: typedef const bool* pointer; 8036: typedef _Bit_const_iterator const_iterator; 8036: 8036: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 8036: 8036: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 8036: : _Bit_iterator_base(__x, __y) { } 8036: 8036: _Bit_const_iterator(const _Bit_iterator& __x) 8036: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 8036: 8036: _Bit_iterator 8036: _M_const_cast() const 8036: { return _Bit_iterator(_M_p, _M_offset); } 8036: 8036: const_reference 8036: operator*() const 8036: { return _Bit_reference(_M_p, 1UL << _M_offset); } 8036: 8036: const_iterator& 8036: operator++() 8036: { 8036: _M_bump_up(); 8036: return *this; 8036: } 8036: 8036: const_iterator 8036: operator++(int) 8036: { 8036: const_iterator __tmp = *this; 8036: _M_bump_up(); 8036: return __tmp; 8036: } 8036: 8036: const_iterator& 8036: operator--() 8036: { 8036: _M_bump_down(); 8036: return *this; 8036: } 8036: 8036: const_iterator 8036: operator--(int) 8036: { 8036: const_iterator __tmp = *this; 8036: _M_bump_down(); 8036: return __tmp; 8036: } 8036: 8036: const_iterator& 8036: operator+=(difference_type __i) 8036: { 8036: _M_incr(__i); 8036: return *this; 8036: } 8036: 8036: const_iterator& 8036: operator-=(difference_type __i) 8036: { 8036: *this += -__i; 8036: return *this; 8036: } 8036: 8036: const_iterator 8036: operator+(difference_type __i) const 8036: { 8036: const_iterator __tmp = *this; 8036: return __tmp += __i; 8036: } 8036: 8036: const_iterator 8036: operator-(difference_type __i) const 8036: { 8036: const_iterator __tmp = *this; 8036: return __tmp -= __i; 8036: } 8036: 8036: const_reference 8036: operator[](difference_type __i) const 8036: { return *(*this + __i); } 8036: }; 8036: 8036: inline _Bit_const_iterator 8036: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 8036: { return __x + __n; } 8036: 8036: inline void 8036: __fill_bvector(_Bit_type * __v, 8036: unsigned int __first, unsigned int __last, bool __x) 8036: { 8036: const _Bit_type __fmask = ~0ul << __first; 8036: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 8036: const _Bit_type __mask = __fmask & __lmask; 8036: 8036: if (__x) 8036: *__v |= __mask; 8036: else 8036: *__v &= ~__mask; 8036: } 8036: 8036: inline void 8036: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 8036: { 8036: if (__first._M_p != __last._M_p) 8036: { 8036: _Bit_type* __first_p = __first._M_p; 8036: if (__first._M_offset != 0) 8036: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 8036: 8036: __builtin_memset(__first_p, __x ? ~0 : 0, 8036: (__last._M_p - __first_p) * sizeof(_Bit_type)); 8036: 8036: if (__last._M_offset != 0) 8036: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 8036: } 8036: else if (__first._M_offset != __last._M_offset) 8036: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 8036: } 8036: 8036: template 8036: struct _Bvector_base 8036: { 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind<_Bit_type>::other _Bit_alloc_type; 8036: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 8036: _Bit_alloc_traits; 8036: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 8036: 8036: struct _Bvector_impl_data 8036: { 8036: _Bit_iterator _M_start; 8036: _Bit_iterator _M_finish; 8036: _Bit_pointer _M_end_of_storage; 8036: 8036: _Bvector_impl_data() noexcept 8036: : _M_start(), _M_finish(), _M_end_of_storage() 8036: { } 8036: 8036: 8036: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 8036: : _M_start(__x._M_start), _M_finish(__x._M_finish) 8036: , _M_end_of_storage(__x._M_end_of_storage) 8036: { __x._M_reset(); } 8036: 8036: void 8036: _M_move_data(_Bvector_impl_data&& __x) noexcept 8036: { 8036: this->_M_start = __x._M_start; 8036: this->_M_finish = __x._M_finish; 8036: this->_M_end_of_storage = __x._M_end_of_storage; 8036: __x._M_reset(); 8036: } 8036: 8036: 8036: void 8036: _M_reset() noexcept 8036: { 8036: _M_start = _M_finish = _Bit_iterator(); 8036: _M_end_of_storage = _Bit_pointer(); 8036: } 8036: }; 8036: 8036: struct _Bvector_impl 8036: : public _Bit_alloc_type, public _Bvector_impl_data 8036: { 8036: public: 8036: _Bvector_impl() 8036: noexcept(noexcept(_Bit_alloc_type())) 8036: : _Bit_alloc_type() 8036: { } 8036: 8036: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 8036: : _Bit_alloc_type(__a) 8036: { } 8036: 8036: 8036: _Bvector_impl(_Bvector_impl&&) = default; 8036: 8036: 8036: _Bit_type* 8036: _M_end_addr() const noexcept 8036: { 8036: if (this->_M_end_of_storage) 8036: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 8036: return 0; 8036: } 8036: }; 8036: 8036: public: 8036: typedef _Alloc allocator_type; 8036: 8036: _Bit_alloc_type& 8036: _M_get_Bit_allocator() noexcept 8036: { return this->_M_impl; } 8036: 8036: const _Bit_alloc_type& 8036: _M_get_Bit_allocator() const noexcept 8036: { return this->_M_impl; } 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_M_get_Bit_allocator()); } 8036: 8036: 8036: _Bvector_base() = default; 8036: 8036: 8036: 8036: 8036: _Bvector_base(const allocator_type& __a) 8036: : _M_impl(__a) { } 8036: 8036: 8036: _Bvector_base(_Bvector_base&&) = default; 8036: 8036: 8036: ~_Bvector_base() 8036: { this->_M_deallocate(); } 8036: 8036: protected: 8036: _Bvector_impl _M_impl; 8036: 8036: _Bit_pointer 8036: _M_allocate(size_t __n) 8036: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 8036: 8036: void 8036: _M_deallocate() 8036: { 8036: if (_M_impl._M_start._M_p) 8036: { 8036: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 8036: _Bit_alloc_traits::deallocate(_M_impl, 8036: _M_impl._M_end_of_storage - __n, 8036: __n); 8036: _M_impl._M_reset(); 8036: } 8036: } 8036: 8036: 8036: void 8036: _M_move_data(_Bvector_base&& __x) noexcept 8036: { _M_impl._M_move_data(std::move(__x._M_impl)); } 8036: 8036: 8036: static size_t 8036: _S_nword(size_t __n) 8036: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 8036: }; 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: # 586 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: template 8036: class vector : protected _Bvector_base<_Alloc> 8036: { 8036: typedef _Bvector_base<_Alloc> _Base; 8036: typedef typename _Base::_Bit_pointer _Bit_pointer; 8036: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 8036: 8036: 8036: template friend struct hash; 8036: 8036: 8036: public: 8036: typedef bool value_type; 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Bit_reference reference; 8036: typedef bool const_reference; 8036: typedef _Bit_reference* pointer; 8036: typedef const bool* const_pointer; 8036: typedef _Bit_iterator iterator; 8036: typedef _Bit_const_iterator const_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef _Alloc allocator_type; 8036: 8036: allocator_type 8036: get_allocator() const 8036: { return _Base::get_allocator(); } 8036: 8036: protected: 8036: using _Base::_M_allocate; 8036: using _Base::_M_deallocate; 8036: using _Base::_S_nword; 8036: using _Base::_M_get_Bit_allocator; 8036: 8036: public: 8036: 8036: vector() = default; 8036: 8036: 8036: 8036: 8036: explicit 8036: vector(const allocator_type& __a) 8036: : _Base(__a) { } 8036: 8036: 8036: explicit 8036: vector(size_type __n, const allocator_type& __a = allocator_type()) 8036: : vector(__n, false, __a) 8036: { } 8036: 8036: vector(size_type __n, const bool& __value, 8036: const allocator_type& __a = allocator_type()) 8036: 8036: 8036: 8036: 8036: 8036: : _Base(__a) 8036: { 8036: _M_initialize(__n); 8036: _M_initialize_value(__value); 8036: } 8036: 8036: vector(const vector& __x) 8036: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 8036: { 8036: _M_initialize(__x.size()); 8036: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8036: } 8036: 8036: 8036: vector(vector&&) = default; 8036: 8036: vector(vector&& __x, const allocator_type& __a) 8036: noexcept(_Bit_alloc_traits::_S_always_equal()) 8036: : _Base(__a) 8036: { 8036: if (__x.get_allocator() == __a) 8036: this->_M_move_data(std::move(__x)); 8036: else 8036: { 8036: _M_initialize(__x.size()); 8036: _M_copy_aligned(__x.begin(), __x.end(), begin()); 8036: __x.clear(); 8036: } 8036: } 8036: 8036: vector(const vector& __x, const allocator_type& __a) 8036: : _Base(__a) 8036: { 8036: _M_initialize(__x.size()); 8036: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8036: } 8036: 8036: vector(initializer_list __l, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(__a) 8036: { 8036: _M_initialize_range(__l.begin(), __l.end(), 8036: random_access_iterator_tag()); 8036: } 8036: 8036: 8036: 8036: template> 8036: vector(_InputIterator __first, _InputIterator __last, 8036: const allocator_type& __a = allocator_type()) 8036: : _Base(__a) 8036: { _M_initialize_dispatch(__first, __last, __false_type()); } 8036: # 709 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: ~vector() noexcept { } 8036: 8036: vector& 8036: operator=(const vector& __x) 8036: { 8036: if (&__x == this) 8036: return *this; 8036: 8036: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 8036: { 8036: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 8036: { 8036: this->_M_deallocate(); 8036: std::__alloc_on_copy(_M_get_Bit_allocator(), 8036: __x._M_get_Bit_allocator()); 8036: _M_initialize(__x.size()); 8036: } 8036: else 8036: std::__alloc_on_copy(_M_get_Bit_allocator(), 8036: __x._M_get_Bit_allocator()); 8036: } 8036: 8036: if (__x.size() > capacity()) 8036: { 8036: this->_M_deallocate(); 8036: _M_initialize(__x.size()); 8036: } 8036: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8036: begin()); 8036: return *this; 8036: } 8036: 8036: 8036: vector& 8036: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 8036: { 8036: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 8036: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 8036: { 8036: this->_M_deallocate(); 8036: this->_M_move_data(std::move(__x)); 8036: std::__alloc_on_move(_M_get_Bit_allocator(), 8036: __x._M_get_Bit_allocator()); 8036: } 8036: else 8036: { 8036: if (__x.size() > capacity()) 8036: { 8036: this->_M_deallocate(); 8036: _M_initialize(__x.size()); 8036: } 8036: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8036: begin()); 8036: __x.clear(); 8036: } 8036: return *this; 8036: } 8036: 8036: vector& 8036: operator=(initializer_list __l) 8036: { 8036: this->assign (__l.begin(), __l.end()); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: assign(size_type __n, const bool& __x) 8036: { _M_fill_assign(__n, __x); } 8036: 8036: 8036: template> 8036: void 8036: assign(_InputIterator __first, _InputIterator __last) 8036: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8036: # 800 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: void 8036: assign(initializer_list __l) 8036: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return this->_M_impl._M_start; } 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return this->_M_impl._M_start; } 8036: 8036: iterator 8036: end() noexcept 8036: { return this->_M_impl._M_finish; } 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return this->_M_impl._M_finish; } 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(end()); } 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(begin()); } 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return this->_M_impl._M_start; } 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return this->_M_impl._M_finish; } 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return size_type(end() - begin()); } 8036: 8036: size_type 8036: max_size() const noexcept 8036: { 8036: const size_type __isize = 8036: __gnu_cxx::__numeric_traits::__max 8036: - int(_S_word_bit) + 1; 8036: const size_type __asize 8036: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 8036: return (__asize <= __isize / int(_S_word_bit) 8036: ? __asize * int(_S_word_bit) : __isize); 8036: } 8036: 8036: size_type 8036: capacity() const noexcept 8036: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 8036: - begin()); } 8036: 8036: bool 8036: empty() const noexcept 8036: { return begin() == end(); } 8036: 8036: reference 8036: operator[](size_type __n) 8036: { 8036: return *iterator(this->_M_impl._M_start._M_p 8036: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8036: } 8036: 8036: const_reference 8036: operator[](size_type __n) const 8036: { 8036: return *const_iterator(this->_M_impl._M_start._M_p 8036: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8036: } 8036: 8036: protected: 8036: void 8036: _M_range_check(size_type __n) const 8036: { 8036: if (__n >= this->size()) 8036: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8036: 8036: , 8036: __n, this->size()); 8036: } 8036: 8036: public: 8036: reference 8036: at(size_type __n) 8036: { _M_range_check(__n); return (*this)[__n]; } 8036: 8036: const_reference 8036: at(size_type __n) const 8036: { _M_range_check(__n); return (*this)[__n]; } 8036: 8036: void 8036: reserve(size_type __n) 8036: { 8036: if (__n > max_size()) 8036: __throw_length_error(("vector::reserve")); 8036: if (capacity() < __n) 8036: _M_reallocate(__n); 8036: } 8036: 8036: reference 8036: front() 8036: { return *begin(); } 8036: 8036: const_reference 8036: front() const 8036: { return *begin(); } 8036: 8036: reference 8036: back() 8036: { return *(end() - 1); } 8036: 8036: const_reference 8036: back() const 8036: { return *(end() - 1); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: data() noexcept { } 8036: 8036: void 8036: push_back(bool __x) 8036: { 8036: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8036: *this->_M_impl._M_finish++ = __x; 8036: else 8036: _M_insert_aux(end(), __x); 8036: } 8036: 8036: void 8036: swap(vector& __x) noexcept 8036: { 8036: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 8036: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 8036: std::swap(this->_M_impl._M_end_of_storage, 8036: __x._M_impl._M_end_of_storage); 8036: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 8036: __x._M_get_Bit_allocator()); 8036: } 8036: 8036: 8036: static void 8036: swap(reference __x, reference __y) noexcept 8036: { 8036: bool __tmp = __x; 8036: __x = __y; 8036: __y = __tmp; 8036: } 8036: 8036: iterator 8036: 8036: insert(const_iterator __position, const bool& __x = bool()) 8036: 8036: 8036: 8036: { 8036: const difference_type __n = __position - begin(); 8036: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 8036: && __position == end()) 8036: *this->_M_impl._M_finish++ = __x; 8036: else 8036: _M_insert_aux(__position._M_const_cast(), __x); 8036: return begin() + __n; 8036: } 8036: 8036: 8036: template> 8036: iterator 8036: insert(const_iterator __position, 8036: _InputIterator __first, _InputIterator __last) 8036: { 8036: difference_type __offset = __position - cbegin(); 8036: _M_insert_dispatch(__position._M_const_cast(), 8036: __first, __last, __false_type()); 8036: return begin() + __offset; 8036: } 8036: # 1016 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: iterator 8036: insert(const_iterator __position, size_type __n, const bool& __x) 8036: { 8036: difference_type __offset = __position - cbegin(); 8036: _M_fill_insert(__position._M_const_cast(), __n, __x); 8036: return begin() + __offset; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: insert(const_iterator __p, initializer_list __l) 8036: { return this->insert(__p, __l.begin(), __l.end()); } 8036: 8036: 8036: void 8036: pop_back() 8036: { --this->_M_impl._M_finish; } 8036: 8036: iterator 8036: 8036: erase(const_iterator __position) 8036: 8036: 8036: 8036: { return _M_erase(__position._M_const_cast()); } 8036: 8036: iterator 8036: 8036: erase(const_iterator __first, const_iterator __last) 8036: 8036: 8036: 8036: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8036: 8036: void 8036: resize(size_type __new_size, bool __x = bool()) 8036: { 8036: if (__new_size < size()) 8036: _M_erase_at_end(begin() + difference_type(__new_size)); 8036: else 8036: insert(end(), __new_size - size(), __x); 8036: } 8036: 8036: 8036: void 8036: shrink_to_fit() 8036: { _M_shrink_to_fit(); } 8036: 8036: 8036: void 8036: flip() noexcept 8036: { 8036: _Bit_type * const __end = this->_M_impl._M_end_addr(); 8036: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 8036: *__p = ~*__p; 8036: } 8036: 8036: void 8036: clear() noexcept 8036: { _M_erase_at_end(begin()); } 8036: 8036: 8036: template 8036: 8036: 8036: 8036: void 8036: 8036: emplace_back(_Args&&... __args) 8036: { 8036: push_back(bool(__args...)); 8036: 8036: 8036: 8036: } 8036: 8036: template 8036: iterator 8036: emplace(const_iterator __pos, _Args&&... __args) 8036: { return insert(__pos, bool(__args...)); } 8036: 8036: 8036: protected: 8036: 8036: iterator 8036: _M_copy_aligned(const_iterator __first, const_iterator __last, 8036: iterator __result) 8036: { 8036: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 8036: return std::copy(const_iterator(__last._M_p, 0), __last, 8036: iterator(__q, 0)); 8036: } 8036: 8036: void 8036: _M_initialize(size_type __n) 8036: { 8036: if (__n) 8036: { 8036: _Bit_pointer __q = this->_M_allocate(__n); 8036: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8036: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 8036: } 8036: else 8036: { 8036: this->_M_impl._M_end_of_storage = _Bit_pointer(); 8036: this->_M_impl._M_start = iterator(0, 0); 8036: } 8036: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 8036: 8036: } 8036: 8036: void 8036: _M_initialize_value(bool __x) 8036: { 8036: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 8036: __builtin_memset(__p, __x ? ~0 : 0, 8036: (this->_M_impl._M_end_addr() - __p) 8036: * sizeof(_Bit_type)); 8036: } 8036: 8036: void 8036: _M_reallocate(size_type __n); 8036: 8036: 8036: bool 8036: _M_shrink_to_fit(); 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8036: { 8036: _M_initialize(static_cast(__n)); 8036: _M_initialize_value(__x); 8036: } 8036: 8036: template 8036: void 8036: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8036: __false_type) 8036: { _M_initialize_range(__first, __last, 8036: std::__iterator_category(__first)); } 8036: 8036: template 8036: void 8036: _M_initialize_range(_InputIterator __first, _InputIterator __last, 8036: std::input_iterator_tag) 8036: { 8036: for (; __first != __last; ++__first) 8036: push_back(*__first); 8036: } 8036: 8036: template 8036: void 8036: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 8036: std::forward_iterator_tag) 8036: { 8036: const size_type __n = std::distance(__first, __last); 8036: _M_initialize(__n); 8036: std::copy(__first, __last, this->_M_impl._M_start); 8036: } 8036: # 1202 "/usr/include/c++/8/bits/stl_bvector.h" 3 8036: void 8036: _M_fill_assign(size_t __n, bool __x) 8036: { 8036: if (__n > size()) 8036: { 8036: _M_initialize_value(__x); 8036: insert(end(), __n - size(), __x); 8036: } 8036: else 8036: { 8036: _M_erase_at_end(begin() + __n); 8036: _M_initialize_value(__x); 8036: } 8036: } 8036: 8036: template 8036: void 8036: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8036: std::input_iterator_tag) 8036: { 8036: iterator __cur = begin(); 8036: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8036: *__cur = *__first; 8036: if (__first == __last) 8036: _M_erase_at_end(__cur); 8036: else 8036: insert(end(), __first, __last); 8036: } 8036: 8036: template 8036: void 8036: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8036: std::forward_iterator_tag) 8036: { 8036: const size_type __len = std::distance(__first, __last); 8036: if (__len < size()) 8036: _M_erase_at_end(std::copy(__first, __last, begin())); 8036: else 8036: { 8036: _ForwardIterator __mid = __first; 8036: std::advance(__mid, size()); 8036: std::copy(__first, __mid, begin()); 8036: insert(end(), __mid, __last); 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void 8036: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 8036: __true_type) 8036: { _M_fill_insert(__pos, __n, __x); } 8036: 8036: template 8036: void 8036: _M_insert_dispatch(iterator __pos, 8036: _InputIterator __first, _InputIterator __last, 8036: __false_type) 8036: { _M_insert_range(__pos, __first, __last, 8036: std::__iterator_category(__first)); } 8036: 8036: void 8036: _M_fill_insert(iterator __position, size_type __n, bool __x); 8036: 8036: template 8036: void 8036: _M_insert_range(iterator __pos, _InputIterator __first, 8036: _InputIterator __last, std::input_iterator_tag) 8036: { 8036: for (; __first != __last; ++__first) 8036: { 8036: __pos = insert(__pos, *__first); 8036: ++__pos; 8036: } 8036: } 8036: 8036: template 8036: void 8036: _M_insert_range(iterator __position, _ForwardIterator __first, 8036: _ForwardIterator __last, std::forward_iterator_tag); 8036: 8036: void 8036: _M_insert_aux(iterator __position, bool __x); 8036: 8036: size_type 8036: _M_check_len(size_type __n, const char* __s) const 8036: { 8036: if (max_size() - size() < __n) 8036: __throw_length_error((__s)); 8036: 8036: const size_type __len = size() + std::max(size(), __n); 8036: return (__len < size() || __len > max_size()) ? max_size() : __len; 8036: } 8036: 8036: void 8036: _M_erase_at_end(iterator __pos) 8036: { this->_M_impl._M_finish = __pos; } 8036: 8036: iterator 8036: _M_erase(iterator __pos); 8036: 8036: iterator 8036: _M_erase(iterator __first, iterator __last); 8036: }; 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: struct hash> 8036: : public __hash_base> 8036: { 8036: size_t 8036: operator()(const std::vector&) const noexcept; 8036: }; 8036: 8036: 8036: } 8036: # 66 "/usr/include/c++/8/vector" 2 3 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 8036: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: reserve(size_type __n) 8036: { 8036: if (__n > this->max_size()) 8036: __throw_length_error(("vector::reserve")); 8036: if (this->capacity() < __n) 8036: { 8036: const size_type __old_size = size(); 8036: pointer __tmp = _M_allocate_and_copy(__n, 8036: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 8036: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 8036: ; 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __tmp; 8036: this->_M_impl._M_finish = __tmp + __old_size; 8036: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8036: } 8036: } 8036: 8036: 8036: template 8036: template 8036: 8036: 8036: 8036: void 8036: 8036: vector<_Tp, _Alloc>:: 8036: emplace_back(_Args&&... __args) 8036: { 8036: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: std::forward<_Args>(__args)...); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: } 8036: else 8036: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 8036: 8036: 8036: 8036: } 8036: 8036: 8036: template 8036: typename vector<_Tp, _Alloc>::iterator 8036: vector<_Tp, _Alloc>:: 8036: 8036: insert(const_iterator __position, const value_type& __x) 8036: 8036: 8036: 8036: { 8036: const size_type __n = __position - begin(); 8036: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8036: if (__position == end()) 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: __x); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: } 8036: else 8036: { 8036: 8036: const auto __pos = begin() + (__position - cbegin()); 8036: 8036: 8036: _Temporary_value __x_copy(this, __x); 8036: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 8036: 8036: 8036: 8036: } 8036: else 8036: 8036: _M_realloc_insert(begin() + (__position - cbegin()), __x); 8036: 8036: 8036: 8036: 8036: return iterator(this->_M_impl._M_start + __n); 8036: } 8036: 8036: template 8036: typename vector<_Tp, _Alloc>::iterator 8036: vector<_Tp, _Alloc>:: 8036: _M_erase(iterator __position) 8036: { 8036: if (__position + 1 != end()) 8036: std::move(__position + 1, end(), __position); 8036: --this->_M_impl._M_finish; 8036: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8036: ; 8036: return __position; 8036: } 8036: 8036: template 8036: typename vector<_Tp, _Alloc>::iterator 8036: vector<_Tp, _Alloc>:: 8036: _M_erase(iterator __first, iterator __last) 8036: { 8036: if (__first != __last) 8036: { 8036: if (__last != end()) 8036: std::move(__last, end(), __first); 8036: _M_erase_at_end(__first.base() + (end() - __last)); 8036: } 8036: return __first; 8036: } 8036: 8036: template 8036: vector<_Tp, _Alloc>& 8036: vector<_Tp, _Alloc>:: 8036: operator=(const vector<_Tp, _Alloc>& __x) 8036: { 8036: if (&__x != this) 8036: { 8036: ; 8036: 8036: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8036: { 8036: if (!_Alloc_traits::_S_always_equal() 8036: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8036: { 8036: 8036: this->clear(); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = nullptr; 8036: this->_M_impl._M_finish = nullptr; 8036: this->_M_impl._M_end_of_storage = nullptr; 8036: } 8036: std::__alloc_on_copy(_M_get_Tp_allocator(), 8036: __x._M_get_Tp_allocator()); 8036: } 8036: 8036: const size_type __xlen = __x.size(); 8036: if (__xlen > capacity()) 8036: { 8036: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 8036: __x.end()); 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __tmp; 8036: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 8036: } 8036: else if (size() >= __xlen) 8036: { 8036: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 8036: end(), _M_get_Tp_allocator()); 8036: } 8036: else 8036: { 8036: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 8036: this->_M_impl._M_start); 8036: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 8036: __x._M_impl._M_finish, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: } 8036: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_fill_assign(size_t __n, const value_type& __val) 8036: { 8036: if (__n > capacity()) 8036: { 8036: vector __tmp(__n, __val, _M_get_Tp_allocator()); 8036: __tmp._M_impl._M_swap_data(this->_M_impl); 8036: } 8036: else if (__n > size()) 8036: { 8036: std::fill(begin(), end(), __val); 8036: const size_type __add = __n - size(); 8036: ; 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8036: __add, __val, _M_get_Tp_allocator()); 8036: ; 8036: } 8036: else 8036: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 8036: } 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8036: std::input_iterator_tag) 8036: { 8036: pointer __cur(this->_M_impl._M_start); 8036: for (; __first != __last && __cur != this->_M_impl._M_finish; 8036: ++__cur, ++__first) 8036: *__cur = *__first; 8036: if (__first == __last) 8036: _M_erase_at_end(__cur); 8036: else 8036: _M_range_insert(end(), __first, __last, 8036: std::__iterator_category(__first)); 8036: } 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8036: std::forward_iterator_tag) 8036: { 8036: const size_type __len = std::distance(__first, __last); 8036: 8036: if (__len > capacity()) 8036: { 8036: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 8036: ; 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __tmp; 8036: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 8036: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 8036: } 8036: else if (size() >= __len) 8036: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 8036: else 8036: { 8036: _ForwardIterator __mid = __first; 8036: std::advance(__mid, size()); 8036: std::copy(__first, __mid, this->_M_impl._M_start); 8036: const size_type __attribute__((__unused__)) __n = __len - size(); 8036: ; 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_copy_a(__mid, __last, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: ; 8036: } 8036: } 8036: 8036: 8036: template 8036: auto 8036: vector<_Tp, _Alloc>:: 8036: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 8036: { 8036: const auto __n = __position - cbegin(); 8036: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8036: if (__position == cend()) 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: std::move(__v)); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: } 8036: else 8036: _M_insert_aux(begin() + __n, std::move(__v)); 8036: else 8036: _M_realloc_insert(begin() + __n, std::move(__v)); 8036: 8036: return iterator(this->_M_impl._M_start + __n); 8036: } 8036: 8036: template 8036: template 8036: auto 8036: vector<_Tp, _Alloc>:: 8036: _M_emplace_aux(const_iterator __position, _Args&&... __args) 8036: -> iterator 8036: { 8036: const auto __n = __position - cbegin(); 8036: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8036: if (__position == cend()) 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: std::forward<_Args>(__args)...); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: } 8036: else 8036: { 8036: 8036: 8036: 8036: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 8036: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 8036: } 8036: else 8036: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 8036: 8036: return iterator(this->_M_impl._M_start + __n); 8036: } 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_insert_aux(iterator __position, _Arg&& __arg) 8036: 8036: 8036: 8036: 8036: 8036: 8036: { 8036: ; 8036: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8036: std::move(*(this->_M_impl._M_finish - 1))); 8036: ++this->_M_impl._M_finish; 8036: ; 8036: 8036: 8036: 8036: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 8036: 8036: ; 8036: 8036: 8036: 8036: *__position = std::forward<_Arg>(__arg); 8036: 8036: } 8036: 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_realloc_insert(iterator __position, _Args&&... __args) 8036: 8036: 8036: 8036: 8036: 8036: 8036: { 8036: const size_type __len = 8036: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 8036: pointer __old_start = this->_M_impl._M_start; 8036: pointer __old_finish = this->_M_impl._M_finish; 8036: const size_type __elems_before = __position - begin(); 8036: pointer __new_start(this->_M_allocate(__len)); 8036: pointer __new_finish(__new_start); 8036: if (true) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: _Alloc_traits::construct(this->_M_impl, 8036: __new_start + __elems_before, 8036: 8036: std::forward<_Args>(__args)...); 8036: 8036: 8036: 8036: __new_finish = pointer(); 8036: 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (__old_start, __position.base(), 8036: __new_start, _M_get_Tp_allocator()); 8036: 8036: ++__new_finish; 8036: 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (__position.base(), __old_finish, 8036: __new_finish, _M_get_Tp_allocator()); 8036: } 8036: if (false) 8036: { 8036: if (!__new_finish) 8036: _Alloc_traits::destroy(this->_M_impl, 8036: __new_start + __elems_before); 8036: else 8036: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 8036: _M_deallocate(__new_start, __len); 8036: ; 8036: } 8036: ; 8036: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 8036: _M_deallocate(__old_start, 8036: this->_M_impl._M_end_of_storage - __old_start); 8036: this->_M_impl._M_start = __new_start; 8036: this->_M_impl._M_finish = __new_finish; 8036: this->_M_impl._M_end_of_storage = __new_start + __len; 8036: } 8036: 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 8036: { 8036: if (__n != 0) 8036: { 8036: if (size_type(this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_finish) >= __n) 8036: { 8036: 8036: 8036: 8036: _Temporary_value __tmp(this, __x); 8036: value_type& __x_copy = __tmp._M_val(); 8036: 8036: const size_type __elems_after = end() - __position; 8036: pointer __old_finish(this->_M_impl._M_finish); 8036: if (__elems_after > __n) 8036: { 8036: ; 8036: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8036: this->_M_impl._M_finish, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish += __n; 8036: ; 8036: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8036: ; 8036: std::fill(__position.base(), __position.base() + __n, 8036: __x_copy); 8036: } 8036: else 8036: { 8036: ; 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8036: __n - __elems_after, 8036: __x_copy, 8036: _M_get_Tp_allocator()); 8036: ; 8036: std::__uninitialized_move_a(__position.base(), __old_finish, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish += __elems_after; 8036: ; 8036: std::fill(__position.base(), __old_finish, __x_copy); 8036: } 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(__n, "vector::_M_fill_insert"); 8036: const size_type __elems_before = __position - begin(); 8036: pointer __new_start(this->_M_allocate(__len)); 8036: pointer __new_finish(__new_start); 8036: if (true) 8036: { 8036: 8036: std::__uninitialized_fill_n_a(__new_start + __elems_before, 8036: __n, __x, 8036: _M_get_Tp_allocator()); 8036: __new_finish = pointer(); 8036: 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (this->_M_impl._M_start, __position.base(), 8036: __new_start, _M_get_Tp_allocator()); 8036: 8036: __new_finish += __n; 8036: 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (__position.base(), this->_M_impl._M_finish, 8036: __new_finish, _M_get_Tp_allocator()); 8036: } 8036: if (false) 8036: { 8036: if (!__new_finish) 8036: std::_Destroy(__new_start + __elems_before, 8036: __new_start + __elems_before + __n, 8036: _M_get_Tp_allocator()); 8036: else 8036: std::_Destroy(__new_start, __new_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(__new_start, __len); 8036: ; 8036: } 8036: ; 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __new_start; 8036: this->_M_impl._M_finish = __new_finish; 8036: this->_M_impl._M_end_of_storage = __new_start + __len; 8036: } 8036: } 8036: } 8036: 8036: 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_default_append(size_type __n) 8036: { 8036: if (__n != 0) 8036: { 8036: size_type __size = size(); 8036: size_type __navail = size_type(this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_finish); 8036: 8036: if (__size > max_size() || __navail > max_size() - __size) 8036: __builtin_unreachable(); 8036: 8036: if (__navail >= __n) 8036: { 8036: ; 8036: this->_M_impl._M_finish = 8036: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 8036: __n, _M_get_Tp_allocator()); 8036: ; 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(__n, "vector::_M_default_append"); 8036: const size_type __old_size = __size; 8036: pointer __new_start(this->_M_allocate(__len)); 8036: pointer __new_finish(__new_start); 8036: if (true) 8036: { 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (this->_M_impl._M_start, this->_M_impl._M_finish, 8036: __new_start, _M_get_Tp_allocator()); 8036: __new_finish = 8036: std::__uninitialized_default_n_a(__new_finish, __n, 8036: _M_get_Tp_allocator()); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__new_start, __new_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(__new_start, __len); 8036: ; 8036: } 8036: ; 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __new_start; 8036: this->_M_impl._M_finish = __new_finish; 8036: this->_M_impl._M_end_of_storage = __new_start + __len; 8036: } 8036: } 8036: } 8036: 8036: template 8036: bool 8036: vector<_Tp, _Alloc>:: 8036: _M_shrink_to_fit() 8036: { 8036: if (capacity() == size()) 8036: return false; 8036: ; 8036: return std::__shrink_to_fit_aux::_S_do_it(*this); 8036: } 8036: 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_range_insert(iterator __pos, _InputIterator __first, 8036: _InputIterator __last, std::input_iterator_tag) 8036: { 8036: if (__pos == end()) 8036: { 8036: for (; __first != __last; ++__first) 8036: insert(end(), *__first); 8036: } 8036: else if (__first != __last) 8036: { 8036: vector __tmp(__first, __last, _M_get_Tp_allocator()); 8036: insert(__pos, 8036: std::make_move_iterator(__tmp.begin()), 8036: std::make_move_iterator(__tmp.end())); 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: vector<_Tp, _Alloc>:: 8036: _M_range_insert(iterator __position, _ForwardIterator __first, 8036: _ForwardIterator __last, std::forward_iterator_tag) 8036: { 8036: if (__first != __last) 8036: { 8036: const size_type __n = std::distance(__first, __last); 8036: if (size_type(this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_finish) >= __n) 8036: { 8036: const size_type __elems_after = end() - __position; 8036: pointer __old_finish(this->_M_impl._M_finish); 8036: if (__elems_after > __n) 8036: { 8036: ; 8036: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8036: this->_M_impl._M_finish, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish += __n; 8036: ; 8036: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8036: ; 8036: std::copy(__first, __last, __position); 8036: } 8036: else 8036: { 8036: _ForwardIterator __mid = __first; 8036: std::advance(__mid, __elems_after); 8036: ; 8036: std::__uninitialized_copy_a(__mid, __last, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish += __n - __elems_after; 8036: ; 8036: std::__uninitialized_move_a(__position.base(), 8036: __old_finish, 8036: this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: this->_M_impl._M_finish += __elems_after; 8036: ; 8036: std::copy(__first, __mid, __position); 8036: } 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(__n, "vector::_M_range_insert"); 8036: pointer __new_start(this->_M_allocate(__len)); 8036: pointer __new_finish(__new_start); 8036: if (true) 8036: { 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (this->_M_impl._M_start, __position.base(), 8036: __new_start, _M_get_Tp_allocator()); 8036: __new_finish 8036: = std::__uninitialized_copy_a(__first, __last, 8036: __new_finish, 8036: _M_get_Tp_allocator()); 8036: __new_finish 8036: = std::__uninitialized_move_if_noexcept_a 8036: (__position.base(), this->_M_impl._M_finish, 8036: __new_finish, _M_get_Tp_allocator()); 8036: } 8036: if (false) 8036: { 8036: std::_Destroy(__new_start, __new_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(__new_start, __len); 8036: ; 8036: } 8036: ; 8036: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8036: _M_get_Tp_allocator()); 8036: _M_deallocate(this->_M_impl._M_start, 8036: this->_M_impl._M_end_of_storage 8036: - this->_M_impl._M_start); 8036: this->_M_impl._M_start = __new_start; 8036: this->_M_impl._M_finish = __new_finish; 8036: this->_M_impl._M_end_of_storage = __new_start + __len; 8036: } 8036: } 8036: } 8036: 8036: 8036: 8036: template 8036: void 8036: vector:: 8036: _M_reallocate(size_type __n) 8036: { 8036: _Bit_pointer __q = this->_M_allocate(__n); 8036: iterator __start(std::__addressof(*__q), 0); 8036: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 8036: this->_M_deallocate(); 8036: this->_M_impl._M_start = __start; 8036: this->_M_impl._M_finish = __finish; 8036: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8036: } 8036: 8036: template 8036: void 8036: vector:: 8036: _M_fill_insert(iterator __position, size_type __n, bool __x) 8036: { 8036: if (__n == 0) 8036: return; 8036: if (capacity() - size() >= __n) 8036: { 8036: std::copy_backward(__position, end(), 8036: this->_M_impl._M_finish + difference_type(__n)); 8036: std::fill(__position, __position + difference_type(__n), __x); 8036: this->_M_impl._M_finish += difference_type(__n); 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(__n, "vector::_M_fill_insert"); 8036: _Bit_pointer __q = this->_M_allocate(__len); 8036: iterator __start(std::__addressof(*__q), 0); 8036: iterator __i = _M_copy_aligned(begin(), __position, __start); 8036: std::fill(__i, __i + difference_type(__n), __x); 8036: iterator __finish = std::copy(__position, end(), 8036: __i + difference_type(__n)); 8036: this->_M_deallocate(); 8036: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8036: this->_M_impl._M_start = __start; 8036: this->_M_impl._M_finish = __finish; 8036: } 8036: } 8036: 8036: template 8036: template 8036: void 8036: vector:: 8036: _M_insert_range(iterator __position, _ForwardIterator __first, 8036: _ForwardIterator __last, std::forward_iterator_tag) 8036: { 8036: if (__first != __last) 8036: { 8036: size_type __n = std::distance(__first, __last); 8036: if (capacity() - size() >= __n) 8036: { 8036: std::copy_backward(__position, end(), 8036: this->_M_impl._M_finish 8036: + difference_type(__n)); 8036: std::copy(__first, __last, __position); 8036: this->_M_impl._M_finish += difference_type(__n); 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(__n, "vector::_M_insert_range"); 8036: _Bit_pointer __q = this->_M_allocate(__len); 8036: iterator __start(std::__addressof(*__q), 0); 8036: iterator __i = _M_copy_aligned(begin(), __position, __start); 8036: __i = std::copy(__first, __last, __i); 8036: iterator __finish = std::copy(__position, end(), __i); 8036: this->_M_deallocate(); 8036: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8036: this->_M_impl._M_start = __start; 8036: this->_M_impl._M_finish = __finish; 8036: } 8036: } 8036: } 8036: 8036: template 8036: void 8036: vector:: 8036: _M_insert_aux(iterator __position, bool __x) 8036: { 8036: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8036: { 8036: std::copy_backward(__position, this->_M_impl._M_finish, 8036: this->_M_impl._M_finish + 1); 8036: *__position = __x; 8036: ++this->_M_impl._M_finish; 8036: } 8036: else 8036: { 8036: const size_type __len = 8036: _M_check_len(size_type(1), "vector::_M_insert_aux"); 8036: _Bit_pointer __q = this->_M_allocate(__len); 8036: iterator __start(std::__addressof(*__q), 0); 8036: iterator __i = _M_copy_aligned(begin(), __position, __start); 8036: *__i++ = __x; 8036: iterator __finish = std::copy(__position, end(), __i); 8036: this->_M_deallocate(); 8036: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8036: this->_M_impl._M_start = __start; 8036: this->_M_impl._M_finish = __finish; 8036: } 8036: } 8036: 8036: template 8036: typename vector::iterator 8036: vector:: 8036: _M_erase(iterator __position) 8036: { 8036: if (__position + 1 != end()) 8036: std::copy(__position + 1, end(), __position); 8036: --this->_M_impl._M_finish; 8036: return __position; 8036: } 8036: 8036: template 8036: typename vector::iterator 8036: vector:: 8036: _M_erase(iterator __first, iterator __last) 8036: { 8036: if (__first != __last) 8036: _M_erase_at_end(std::copy(__last, end(), __first)); 8036: return __first; 8036: } 8036: 8036: 8036: template 8036: bool 8036: vector:: 8036: _M_shrink_to_fit() 8036: { 8036: if (capacity() - size() < int(_S_word_bit)) 8036: return false; 8036: if (true) 8036: { 8036: _M_reallocate(size()); 8036: return true; 8036: } 8036: if (false) 8036: { return false; } 8036: } 8036: 8036: 8036: 8036: 8036: } 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: size_t 8036: hash>:: 8036: operator()(const std::vector& __b) const noexcept 8036: { 8036: size_t __hash = 0; 8036: using std::_S_word_bit; 8036: using std::_Bit_type; 8036: 8036: const size_t __words = __b.size() / _S_word_bit; 8036: if (__words) 8036: { 8036: const size_t __clength = __words * sizeof(_Bit_type); 8036: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 8036: } 8036: 8036: const size_t __extrabits = __b.size() % _S_word_bit; 8036: if (__extrabits) 8036: { 8036: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 8036: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 8036: 8036: const size_t __clength 8036: = (__extrabits + 8 - 1) / 8; 8036: if (__words) 8036: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 8036: else 8036: __hash = std::_Hash_impl::hash(&__hiword, __clength); 8036: } 8036: 8036: return __hash; 8036: } 8036: 8036: 8036: } 8036: # 70 "/usr/include/c++/8/vector" 2 3 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8036: 8036: # 1 "/usr/include/c++/8/map" 1 3 4 8036: # 58 "/usr/include/c++/8/map" 3 4 8036: 8036: # 59 "/usr/include/c++/8/map" 3 8036: 8036: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 8036: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: 8036: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: # 75 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: enum _Rb_tree_color { _S_red = false, _S_black = true }; 8036: 8036: struct _Rb_tree_node_base 8036: { 8036: typedef _Rb_tree_node_base* _Base_ptr; 8036: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8036: 8036: _Rb_tree_color _M_color; 8036: _Base_ptr _M_parent; 8036: _Base_ptr _M_left; 8036: _Base_ptr _M_right; 8036: 8036: static _Base_ptr 8036: _S_minimum(_Base_ptr __x) noexcept 8036: { 8036: while (__x->_M_left != 0) __x = __x->_M_left; 8036: return __x; 8036: } 8036: 8036: static _Const_Base_ptr 8036: _S_minimum(_Const_Base_ptr __x) noexcept 8036: { 8036: while (__x->_M_left != 0) __x = __x->_M_left; 8036: return __x; 8036: } 8036: 8036: static _Base_ptr 8036: _S_maximum(_Base_ptr __x) noexcept 8036: { 8036: while (__x->_M_right != 0) __x = __x->_M_right; 8036: return __x; 8036: } 8036: 8036: static _Const_Base_ptr 8036: _S_maximum(_Const_Base_ptr __x) noexcept 8036: { 8036: while (__x->_M_right != 0) __x = __x->_M_right; 8036: return __x; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct _Rb_tree_key_compare 8036: { 8036: _Key_compare _M_key_compare; 8036: 8036: _Rb_tree_key_compare() 8036: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 8036: 8036: : _M_key_compare() 8036: { } 8036: 8036: _Rb_tree_key_compare(const _Key_compare& __comp) 8036: : _M_key_compare(__comp) 8036: { } 8036: 8036: 8036: 8036: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 8036: 8036: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 8036: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 8036: : _M_key_compare(__x._M_key_compare) 8036: { } 8036: 8036: }; 8036: 8036: 8036: struct _Rb_tree_header 8036: { 8036: _Rb_tree_node_base _M_header; 8036: size_t _M_node_count; 8036: 8036: _Rb_tree_header() noexcept 8036: { 8036: _M_header._M_color = _S_red; 8036: _M_reset(); 8036: } 8036: 8036: 8036: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 8036: { 8036: if (__x._M_header._M_parent != nullptr) 8036: _M_move_data(__x); 8036: else 8036: { 8036: _M_header._M_color = _S_red; 8036: _M_reset(); 8036: } 8036: } 8036: 8036: 8036: void 8036: _M_move_data(_Rb_tree_header& __from) 8036: { 8036: _M_header._M_color = __from._M_header._M_color; 8036: _M_header._M_parent = __from._M_header._M_parent; 8036: _M_header._M_left = __from._M_header._M_left; 8036: _M_header._M_right = __from._M_header._M_right; 8036: _M_header._M_parent->_M_parent = &_M_header; 8036: _M_node_count = __from._M_node_count; 8036: 8036: __from._M_reset(); 8036: } 8036: 8036: void 8036: _M_reset() 8036: { 8036: _M_header._M_parent = 0; 8036: _M_header._M_left = &_M_header; 8036: _M_header._M_right = &_M_header; 8036: _M_node_count = 0; 8036: } 8036: }; 8036: 8036: template 8036: struct _Rb_tree_node : public _Rb_tree_node_base 8036: { 8036: typedef _Rb_tree_node<_Val>* _Link_type; 8036: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 8036: 8036: _Val* 8036: _M_valptr() 8036: { return _M_storage._M_ptr(); } 8036: 8036: const _Val* 8036: _M_valptr() const 8036: { return _M_storage._M_ptr(); } 8036: 8036: }; 8036: 8036: __attribute__ ((__pure__)) _Rb_tree_node_base* 8036: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 8036: 8036: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8036: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 8036: 8036: __attribute__ ((__pure__)) _Rb_tree_node_base* 8036: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 8036: 8036: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8036: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 8036: 8036: template 8036: struct _Rb_tree_iterator 8036: { 8036: typedef _Tp value_type; 8036: typedef _Tp& reference; 8036: typedef _Tp* pointer; 8036: 8036: typedef bidirectional_iterator_tag iterator_category; 8036: typedef ptrdiff_t difference_type; 8036: 8036: typedef _Rb_tree_iterator<_Tp> _Self; 8036: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 8036: typedef _Rb_tree_node<_Tp>* _Link_type; 8036: 8036: _Rb_tree_iterator() noexcept 8036: : _M_node() { } 8036: 8036: explicit 8036: _Rb_tree_iterator(_Base_ptr __x) noexcept 8036: : _M_node(__x) { } 8036: 8036: reference 8036: operator*() const noexcept 8036: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8036: 8036: pointer 8036: operator->() const noexcept 8036: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 8036: 8036: _Self& 8036: operator++() noexcept 8036: { 8036: _M_node = _Rb_tree_increment(_M_node); 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator++(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _Rb_tree_increment(_M_node); 8036: return __tmp; 8036: } 8036: 8036: _Self& 8036: operator--() noexcept 8036: { 8036: _M_node = _Rb_tree_decrement(_M_node); 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator--(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _Rb_tree_decrement(_M_node); 8036: return __tmp; 8036: } 8036: 8036: bool 8036: operator==(const _Self& __x) const noexcept 8036: { return _M_node == __x._M_node; } 8036: 8036: bool 8036: operator!=(const _Self& __x) const noexcept 8036: { return _M_node != __x._M_node; } 8036: 8036: _Base_ptr _M_node; 8036: }; 8036: 8036: template 8036: struct _Rb_tree_const_iterator 8036: { 8036: typedef _Tp value_type; 8036: typedef const _Tp& reference; 8036: typedef const _Tp* pointer; 8036: 8036: typedef _Rb_tree_iterator<_Tp> iterator; 8036: 8036: typedef bidirectional_iterator_tag iterator_category; 8036: typedef ptrdiff_t difference_type; 8036: 8036: typedef _Rb_tree_const_iterator<_Tp> _Self; 8036: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 8036: typedef const _Rb_tree_node<_Tp>* _Link_type; 8036: 8036: _Rb_tree_const_iterator() noexcept 8036: : _M_node() { } 8036: 8036: explicit 8036: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 8036: : _M_node(__x) { } 8036: 8036: _Rb_tree_const_iterator(const iterator& __it) noexcept 8036: : _M_node(__it._M_node) { } 8036: 8036: iterator 8036: _M_const_cast() const noexcept 8036: { return iterator(const_cast(_M_node)); } 8036: 8036: reference 8036: operator*() const noexcept 8036: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8036: 8036: pointer 8036: operator->() const noexcept 8036: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 8036: 8036: _Self& 8036: operator++() noexcept 8036: { 8036: _M_node = _Rb_tree_increment(_M_node); 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator++(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _Rb_tree_increment(_M_node); 8036: return __tmp; 8036: } 8036: 8036: _Self& 8036: operator--() noexcept 8036: { 8036: _M_node = _Rb_tree_decrement(_M_node); 8036: return *this; 8036: } 8036: 8036: _Self 8036: operator--(int) noexcept 8036: { 8036: _Self __tmp = *this; 8036: _M_node = _Rb_tree_decrement(_M_node); 8036: return __tmp; 8036: } 8036: 8036: bool 8036: operator==(const _Self& __x) const noexcept 8036: { return _M_node == __x._M_node; } 8036: 8036: bool 8036: operator!=(const _Self& __x) const noexcept 8036: { return _M_node != __x._M_node; } 8036: 8036: _Base_ptr _M_node; 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const _Rb_tree_iterator<_Val>& __x, 8036: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8036: { return __x._M_node == __y._M_node; } 8036: 8036: template 8036: inline bool 8036: operator!=(const _Rb_tree_iterator<_Val>& __x, 8036: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8036: { return __x._M_node != __y._M_node; } 8036: 8036: void 8036: _Rb_tree_insert_and_rebalance(const bool __insert_left, 8036: _Rb_tree_node_base* __x, 8036: _Rb_tree_node_base* __p, 8036: _Rb_tree_node_base& __header) throw (); 8036: 8036: _Rb_tree_node_base* 8036: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 8036: _Rb_tree_node_base& __header) throw (); 8036: # 442 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: template > 8036: class _Rb_tree 8036: { 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 8036: 8036: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 8036: 8036: 8036: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 8036: "comparison object must be invocable with two arguments of key type"); 8036: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: protected: 8036: typedef _Rb_tree_node_base* _Base_ptr; 8036: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8036: typedef _Rb_tree_node<_Val>* _Link_type; 8036: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 8036: 8036: private: 8036: 8036: 8036: struct _Reuse_or_alloc_node 8036: { 8036: _Reuse_or_alloc_node(_Rb_tree& __t) 8036: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 8036: { 8036: if (_M_root) 8036: { 8036: _M_root->_M_parent = 0; 8036: 8036: if (_M_nodes->_M_left) 8036: _M_nodes = _M_nodes->_M_left; 8036: } 8036: else 8036: _M_nodes = 0; 8036: } 8036: 8036: 8036: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 8036: 8036: 8036: ~_Reuse_or_alloc_node() 8036: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 8036: 8036: template 8036: _Link_type 8036: 8036: 8036: 8036: operator()(_Arg&& __arg) 8036: 8036: { 8036: _Link_type __node = static_cast<_Link_type>(_M_extract()); 8036: if (__node) 8036: { 8036: _M_t._M_destroy_node(__node); 8036: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 8036: return __node; 8036: } 8036: 8036: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 8036: } 8036: 8036: private: 8036: _Base_ptr 8036: _M_extract() 8036: { 8036: if (!_M_nodes) 8036: return _M_nodes; 8036: 8036: _Base_ptr __node = _M_nodes; 8036: _M_nodes = _M_nodes->_M_parent; 8036: if (_M_nodes) 8036: { 8036: if (_M_nodes->_M_right == __node) 8036: { 8036: _M_nodes->_M_right = 0; 8036: 8036: if (_M_nodes->_M_left) 8036: { 8036: _M_nodes = _M_nodes->_M_left; 8036: 8036: while (_M_nodes->_M_right) 8036: _M_nodes = _M_nodes->_M_right; 8036: 8036: if (_M_nodes->_M_left) 8036: _M_nodes = _M_nodes->_M_left; 8036: } 8036: } 8036: else 8036: _M_nodes->_M_left = 0; 8036: } 8036: else 8036: _M_root = 0; 8036: 8036: return __node; 8036: } 8036: 8036: _Base_ptr _M_root; 8036: _Base_ptr _M_nodes; 8036: _Rb_tree& _M_t; 8036: }; 8036: 8036: 8036: 8036: struct _Alloc_node 8036: { 8036: _Alloc_node(_Rb_tree& __t) 8036: : _M_t(__t) { } 8036: 8036: template 8036: _Link_type 8036: 8036: 8036: 8036: operator()(_Arg&& __arg) const 8036: 8036: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 8036: 8036: private: 8036: _Rb_tree& _M_t; 8036: }; 8036: 8036: public: 8036: typedef _Key key_type; 8036: typedef _Val value_type; 8036: typedef value_type* pointer; 8036: typedef const value_type* const_pointer; 8036: typedef value_type& reference; 8036: typedef const value_type& const_reference; 8036: typedef size_t size_type; 8036: typedef ptrdiff_t difference_type; 8036: typedef _Alloc allocator_type; 8036: 8036: _Node_allocator& 8036: _M_get_Node_allocator() noexcept 8036: { return this->_M_impl; } 8036: 8036: const _Node_allocator& 8036: _M_get_Node_allocator() const noexcept 8036: { return this->_M_impl; } 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_M_get_Node_allocator()); } 8036: 8036: protected: 8036: _Link_type 8036: _M_get_node() 8036: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 8036: 8036: void 8036: _M_put_node(_Link_type __p) noexcept 8036: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 8036: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: template 8036: void 8036: _M_construct_node(_Link_type __node, _Args&&... __args) 8036: { 8036: if (true) 8036: { 8036: ::new(__node) _Rb_tree_node<_Val>; 8036: _Alloc_traits::construct(_M_get_Node_allocator(), 8036: __node->_M_valptr(), 8036: std::forward<_Args>(__args)...); 8036: } 8036: if (false) 8036: { 8036: __node->~_Rb_tree_node<_Val>(); 8036: _M_put_node(__node); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: _Link_type 8036: _M_create_node(_Args&&... __args) 8036: { 8036: _Link_type __tmp = _M_get_node(); 8036: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 8036: return __tmp; 8036: } 8036: 8036: void 8036: _M_destroy_node(_Link_type __p) noexcept 8036: { 8036: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 8036: __p->~_Rb_tree_node<_Val>(); 8036: } 8036: 8036: 8036: void 8036: _M_drop_node(_Link_type __p) noexcept 8036: { 8036: _M_destroy_node(__p); 8036: _M_put_node(__p); 8036: } 8036: 8036: template 8036: _Link_type 8036: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 8036: { 8036: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 8036: __tmp->_M_color = __x->_M_color; 8036: __tmp->_M_left = 0; 8036: __tmp->_M_right = 0; 8036: return __tmp; 8036: } 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: template 8036: 8036: struct _Rb_tree_impl 8036: : public _Node_allocator 8036: , public _Rb_tree_key_compare<_Key_compare> 8036: , public _Rb_tree_header 8036: { 8036: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 8036: 8036: _Rb_tree_impl() 8036: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 8036: 8036: 8036: : _Node_allocator() 8036: { } 8036: 8036: _Rb_tree_impl(const _Rb_tree_impl& __x) 8036: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 8036: , _Base_key_compare(__x._M_key_compare) 8036: { } 8036: 8036: 8036: 8036: 8036: 8036: 8036: _Rb_tree_impl(_Rb_tree_impl&&) = default; 8036: 8036: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 8036: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 8036: { } 8036: 8036: }; 8036: 8036: _Rb_tree_impl<_Compare> _M_impl; 8036: 8036: protected: 8036: _Base_ptr& 8036: _M_root() noexcept 8036: { return this->_M_impl._M_header._M_parent; } 8036: 8036: _Const_Base_ptr 8036: _M_root() const noexcept 8036: { return this->_M_impl._M_header._M_parent; } 8036: 8036: _Base_ptr& 8036: _M_leftmost() noexcept 8036: { return this->_M_impl._M_header._M_left; } 8036: 8036: _Const_Base_ptr 8036: _M_leftmost() const noexcept 8036: { return this->_M_impl._M_header._M_left; } 8036: 8036: _Base_ptr& 8036: _M_rightmost() noexcept 8036: { return this->_M_impl._M_header._M_right; } 8036: 8036: _Const_Base_ptr 8036: _M_rightmost() const noexcept 8036: { return this->_M_impl._M_header._M_right; } 8036: 8036: _Link_type 8036: _M_begin() noexcept 8036: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 8036: 8036: _Const_Link_type 8036: _M_begin() const noexcept 8036: { 8036: return static_cast<_Const_Link_type> 8036: (this->_M_impl._M_header._M_parent); 8036: } 8036: 8036: _Base_ptr 8036: _M_end() noexcept 8036: { return &this->_M_impl._M_header; } 8036: 8036: _Const_Base_ptr 8036: _M_end() const noexcept 8036: { return &this->_M_impl._M_header; } 8036: 8036: static const_reference 8036: _S_value(_Const_Link_type __x) 8036: { return *__x->_M_valptr(); } 8036: 8036: static const _Key& 8036: _S_key(_Const_Link_type __x) 8036: { return _KeyOfValue()(_S_value(__x)); } 8036: 8036: static _Link_type 8036: _S_left(_Base_ptr __x) noexcept 8036: { return static_cast<_Link_type>(__x->_M_left); } 8036: 8036: static _Const_Link_type 8036: _S_left(_Const_Base_ptr __x) noexcept 8036: { return static_cast<_Const_Link_type>(__x->_M_left); } 8036: 8036: static _Link_type 8036: _S_right(_Base_ptr __x) noexcept 8036: { return static_cast<_Link_type>(__x->_M_right); } 8036: 8036: static _Const_Link_type 8036: _S_right(_Const_Base_ptr __x) noexcept 8036: { return static_cast<_Const_Link_type>(__x->_M_right); } 8036: 8036: static const_reference 8036: _S_value(_Const_Base_ptr __x) 8036: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 8036: 8036: static const _Key& 8036: _S_key(_Const_Base_ptr __x) 8036: { return _KeyOfValue()(_S_value(__x)); } 8036: 8036: static _Base_ptr 8036: _S_minimum(_Base_ptr __x) noexcept 8036: { return _Rb_tree_node_base::_S_minimum(__x); } 8036: 8036: static _Const_Base_ptr 8036: _S_minimum(_Const_Base_ptr __x) noexcept 8036: { return _Rb_tree_node_base::_S_minimum(__x); } 8036: 8036: static _Base_ptr 8036: _S_maximum(_Base_ptr __x) noexcept 8036: { return _Rb_tree_node_base::_S_maximum(__x); } 8036: 8036: static _Const_Base_ptr 8036: _S_maximum(_Const_Base_ptr __x) noexcept 8036: { return _Rb_tree_node_base::_S_maximum(__x); } 8036: 8036: public: 8036: typedef _Rb_tree_iterator iterator; 8036: typedef _Rb_tree_const_iterator const_iterator; 8036: 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: pair<_Base_ptr, _Base_ptr> 8036: _M_get_insert_unique_pos(const key_type& __k); 8036: 8036: pair<_Base_ptr, _Base_ptr> 8036: _M_get_insert_equal_pos(const key_type& __k); 8036: 8036: pair<_Base_ptr, _Base_ptr> 8036: _M_get_insert_hint_unique_pos(const_iterator __pos, 8036: const key_type& __k); 8036: 8036: pair<_Base_ptr, _Base_ptr> 8036: _M_get_insert_hint_equal_pos(const_iterator __pos, 8036: const key_type& __k); 8036: 8036: private: 8036: 8036: template 8036: iterator 8036: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 8036: 8036: iterator 8036: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 8036: 8036: template 8036: iterator 8036: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 8036: 8036: template 8036: iterator 8036: _M_insert_equal_lower(_Arg&& __x); 8036: 8036: iterator 8036: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 8036: 8036: iterator 8036: _M_insert_equal_lower_node(_Link_type __z); 8036: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: template 8036: _Link_type 8036: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 8036: 8036: template 8036: _Link_type 8036: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 8036: { 8036: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 8036: _M_leftmost() = _S_minimum(__root); 8036: _M_rightmost() = _S_maximum(__root); 8036: _M_impl._M_node_count = __x._M_impl._M_node_count; 8036: return __root; 8036: } 8036: 8036: _Link_type 8036: _M_copy(const _Rb_tree& __x) 8036: { 8036: _Alloc_node __an(*this); 8036: return _M_copy(__x, __an); 8036: } 8036: 8036: void 8036: _M_erase(_Link_type __x); 8036: 8036: iterator 8036: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8036: const _Key& __k); 8036: 8036: const_iterator 8036: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8036: const _Key& __k) const; 8036: 8036: iterator 8036: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8036: const _Key& __k); 8036: 8036: const_iterator 8036: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8036: const _Key& __k) const; 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: _Rb_tree() = default; 8036: 8036: 8036: _Rb_tree(const _Compare& __comp, 8036: const allocator_type& __a = allocator_type()) 8036: : _M_impl(__comp, _Node_allocator(__a)) { } 8036: 8036: _Rb_tree(const _Rb_tree& __x) 8036: : _M_impl(__x._M_impl) 8036: { 8036: if (__x._M_root() != 0) 8036: _M_root() = _M_copy(__x); 8036: } 8036: 8036: 8036: _Rb_tree(const allocator_type& __a) 8036: : _M_impl(_Compare(), _Node_allocator(__a)) 8036: { } 8036: 8036: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 8036: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 8036: { 8036: if (__x._M_root() != nullptr) 8036: _M_root() = _M_copy(__x); 8036: } 8036: 8036: _Rb_tree(_Rb_tree&&) = default; 8036: 8036: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 8036: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 8036: { } 8036: 8036: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 8036: 8036: 8036: ~_Rb_tree() noexcept 8036: { _M_erase(_M_begin()); } 8036: 8036: _Rb_tree& 8036: operator=(const _Rb_tree& __x); 8036: 8036: 8036: _Compare 8036: key_comp() const 8036: { return _M_impl._M_key_compare; } 8036: 8036: iterator 8036: begin() noexcept 8036: { return iterator(this->_M_impl._M_header._M_left); } 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return const_iterator(this->_M_impl._M_header._M_left); } 8036: 8036: iterator 8036: end() noexcept 8036: { return iterator(&this->_M_impl._M_header); } 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return const_iterator(&this->_M_impl._M_header); } 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(end()); } 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(begin()); } 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: bool 8036: empty() const noexcept 8036: { return _M_impl._M_node_count == 0; } 8036: 8036: size_type 8036: size() const noexcept 8036: { return _M_impl._M_node_count; } 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 8036: 8036: void 8036: swap(_Rb_tree& __t) 8036: noexcept(__is_nothrow_swappable<_Compare>::value); 8036: 8036: 8036: 8036: template 8036: pair 8036: _M_insert_unique(_Arg&& __x); 8036: 8036: template 8036: iterator 8036: _M_insert_equal(_Arg&& __x); 8036: 8036: template 8036: iterator 8036: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8036: 8036: template 8036: iterator 8036: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 8036: { 8036: _Alloc_node __an(*this); 8036: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 8036: } 8036: 8036: template 8036: iterator 8036: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8036: 8036: template 8036: iterator 8036: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 8036: { 8036: _Alloc_node __an(*this); 8036: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 8036: } 8036: 8036: template 8036: pair 8036: _M_emplace_unique(_Args&&... __args); 8036: 8036: template 8036: iterator 8036: _M_emplace_equal(_Args&&... __args); 8036: 8036: template 8036: iterator 8036: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 8036: 8036: template 8036: iterator 8036: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 8036: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: template 8036: void 8036: _M_insert_unique(_InputIterator __first, _InputIterator __last); 8036: 8036: template 8036: void 8036: _M_insert_equal(_InputIterator __first, _InputIterator __last); 8036: 8036: private: 8036: void 8036: _M_erase_aux(const_iterator __position); 8036: 8036: void 8036: _M_erase_aux(const_iterator __first, const_iterator __last); 8036: 8036: public: 8036: 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iterator 8036: erase(const_iterator __position) 8036: { 8036: ; 8036: const_iterator __result = __position; 8036: ++__result; 8036: _M_erase_aux(__position); 8036: return __result._M_const_cast(); 8036: } 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iterator 8036: erase(iterator __position) 8036: { 8036: ; 8036: iterator __result = __position; 8036: ++__result; 8036: _M_erase_aux(__position); 8036: return __result; 8036: } 8036: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: size_type 8036: erase(const key_type& __x); 8036: 8036: 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iterator 8036: erase(const_iterator __first, const_iterator __last) 8036: { 8036: _M_erase_aux(__first, __last); 8036: return __last._M_const_cast(); 8036: } 8036: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: void 8036: erase(const key_type* __first, const key_type* __last); 8036: 8036: void 8036: clear() noexcept 8036: { 8036: _M_erase(_M_begin()); 8036: _M_impl._M_reset(); 8036: } 8036: 8036: 8036: iterator 8036: find(const key_type& __k); 8036: 8036: const_iterator 8036: find(const key_type& __k) const; 8036: 8036: size_type 8036: count(const key_type& __k) const; 8036: 8036: iterator 8036: lower_bound(const key_type& __k) 8036: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8036: 8036: const_iterator 8036: lower_bound(const key_type& __k) const 8036: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8036: 8036: iterator 8036: upper_bound(const key_type& __k) 8036: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8036: 8036: const_iterator 8036: upper_bound(const key_type& __k) const 8036: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8036: 8036: pair 8036: equal_range(const key_type& __k); 8036: 8036: pair 8036: equal_range(const key_type& __k) const; 8036: # 1341 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: bool 8036: __rb_verify() const; 8036: 8036: 8036: _Rb_tree& 8036: operator=(_Rb_tree&&) 8036: noexcept(_Alloc_traits::_S_nothrow_move() 8036: && is_nothrow_move_assignable<_Compare>::value); 8036: 8036: template 8036: void 8036: _M_assign_unique(_Iterator, _Iterator); 8036: 8036: template 8036: void 8036: _M_assign_equal(_Iterator, _Iterator); 8036: 8036: private: 8036: 8036: void 8036: _M_move_data(_Rb_tree& __x, std::true_type) 8036: { _M_impl._M_move_data(__x._M_impl); } 8036: 8036: 8036: 8036: void 8036: _M_move_data(_Rb_tree&, std::false_type); 8036: 8036: 8036: void 8036: _M_move_assign(_Rb_tree&, std::true_type); 8036: 8036: 8036: 8036: void 8036: _M_move_assign(_Rb_tree&, std::false_type); 8036: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: }; 8036: 8036: template 8036: inline bool 8036: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { 8036: return __x.size() == __y.size() 8036: && std::equal(__x.begin(), __x.end(), __y.begin()); 8036: } 8036: 8036: template 8036: inline bool 8036: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { 8036: return std::lexicographical_compare(__x.begin(), __x.end(), 8036: __y.begin(), __y.end()); 8036: } 8036: 8036: template 8036: inline bool 8036: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { return !(__x == __y); } 8036: 8036: template 8036: inline bool 8036: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { return __y < __x; } 8036: 8036: template 8036: inline bool 8036: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { return !(__y < __x); } 8036: 8036: template 8036: inline bool 8036: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { return !(__x < __y); } 8036: 8036: template 8036: inline void 8036: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8036: { __x.swap(__y); } 8036: 8036: 8036: template 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 8036: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 8036: { 8036: using __eq = typename _Alloc_traits::is_always_equal; 8036: if (__x._M_root() != nullptr) 8036: _M_move_data(__x, __eq()); 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_move_data(_Rb_tree& __x, std::false_type) 8036: { 8036: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8036: _M_move_data(__x, std::true_type()); 8036: else 8036: { 8036: _Alloc_node __an(*this); 8036: auto __lbd = 8036: [&__an](const value_type& __cval) 8036: { 8036: auto& __val = const_cast(__cval); 8036: return __an(std::move_if_noexcept(__val)); 8036: }; 8036: _M_root() = _M_copy(__x, __lbd); 8036: } 8036: } 8036: 8036: template 8036: inline void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_move_assign(_Rb_tree& __x, true_type) 8036: { 8036: clear(); 8036: if (__x._M_root() != nullptr) 8036: _M_move_data(__x, std::true_type()); 8036: std::__alloc_on_move(_M_get_Node_allocator(), 8036: __x._M_get_Node_allocator()); 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_move_assign(_Rb_tree& __x, false_type) 8036: { 8036: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8036: return _M_move_assign(__x, true_type{}); 8036: 8036: 8036: 8036: _Reuse_or_alloc_node __roan(*this); 8036: _M_impl._M_reset(); 8036: if (__x._M_root() != nullptr) 8036: { 8036: auto __lbd = 8036: [&__roan](const value_type& __cval) 8036: { 8036: auto& __val = const_cast(__cval); 8036: return __roan(std::move_if_noexcept(__val)); 8036: }; 8036: _M_root() = _M_copy(__x, __lbd); 8036: __x.clear(); 8036: } 8036: } 8036: 8036: template 8036: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: operator=(_Rb_tree&& __x) 8036: noexcept(_Alloc_traits::_S_nothrow_move() 8036: && is_nothrow_move_assignable<_Compare>::value) 8036: { 8036: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 8036: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 8036: return *this; 8036: } 8036: 8036: template 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_assign_unique(_Iterator __first, _Iterator __last) 8036: { 8036: _Reuse_or_alloc_node __roan(*this); 8036: _M_impl._M_reset(); 8036: for (; __first != __last; ++__first) 8036: _M_insert_unique_(end(), *__first, __roan); 8036: } 8036: 8036: template 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_assign_equal(_Iterator __first, _Iterator __last) 8036: { 8036: _Reuse_or_alloc_node __roan(*this); 8036: _M_impl._M_reset(); 8036: for (; __first != __last; ++__first) 8036: _M_insert_equal_(end(), *__first, __roan); 8036: } 8036: 8036: 8036: template 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: operator=(const _Rb_tree& __x) 8036: { 8036: if (this != &__x) 8036: { 8036: 8036: 8036: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8036: { 8036: auto& __this_alloc = this->_M_get_Node_allocator(); 8036: auto& __that_alloc = __x._M_get_Node_allocator(); 8036: if (!_Alloc_traits::_S_always_equal() 8036: && __this_alloc != __that_alloc) 8036: { 8036: 8036: 8036: clear(); 8036: std::__alloc_on_copy(__this_alloc, __that_alloc); 8036: } 8036: } 8036: 8036: 8036: _Reuse_or_alloc_node __roan(*this); 8036: _M_impl._M_reset(); 8036: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 8036: if (__x._M_root() != 0) 8036: _M_root() = _M_copy(__x, __roan); 8036: } 8036: 8036: return *this; 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_(_Base_ptr __x, _Base_ptr __p, 8036: 8036: _Arg&& __v, 8036: 8036: 8036: 8036: _NodeGen& __node_gen) 8036: { 8036: bool __insert_left = (__x != 0 || __p == _M_end() 8036: || _M_impl._M_key_compare(_KeyOfValue()(__v), 8036: _S_key(__p))); 8036: 8036: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 8036: 8036: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8036: this->_M_impl._M_header); 8036: ++_M_impl._M_node_count; 8036: return iterator(__z); 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: 8036: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 8036: 8036: 8036: 8036: { 8036: bool __insert_left = (__p == _M_end() 8036: || !_M_impl._M_key_compare(_S_key(__p), 8036: _KeyOfValue()(__v))); 8036: 8036: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 8036: 8036: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8036: this->_M_impl._M_header); 8036: ++_M_impl._M_node_count; 8036: return iterator(__z); 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: 8036: _M_insert_equal_lower(_Arg&& __v) 8036: 8036: 8036: 8036: { 8036: _Link_type __x = _M_begin(); 8036: _Base_ptr __y = _M_end(); 8036: while (__x != 0) 8036: { 8036: __y = __x; 8036: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 8036: _S_left(__x) : _S_right(__x); 8036: } 8036: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 8036: } 8036: 8036: template 8036: template 8036: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 8036: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 8036: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 8036: { 8036: 8036: _Link_type __top = _M_clone_node(__x, __node_gen); 8036: __top->_M_parent = __p; 8036: 8036: if (true) 8036: { 8036: if (__x->_M_right) 8036: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 8036: __p = __top; 8036: __x = _S_left(__x); 8036: 8036: while (__x != 0) 8036: { 8036: _Link_type __y = _M_clone_node(__x, __node_gen); 8036: __p->_M_left = __y; 8036: __y->_M_parent = __p; 8036: if (__x->_M_right) 8036: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 8036: __p = __y; 8036: __x = _S_left(__x); 8036: } 8036: } 8036: if (false) 8036: { 8036: _M_erase(__top); 8036: ; 8036: } 8036: return __top; 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_erase(_Link_type __x) 8036: { 8036: 8036: while (__x != 0) 8036: { 8036: _M_erase(_S_right(__x)); 8036: _Link_type __y = _S_left(__x); 8036: _M_drop_node(__x); 8036: __x = __y; 8036: } 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8036: const _Key& __k) 8036: { 8036: while (__x != 0) 8036: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: __x = _S_right(__x); 8036: return iterator(__y); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::const_iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8036: const _Key& __k) const 8036: { 8036: while (__x != 0) 8036: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: __x = _S_right(__x); 8036: return const_iterator(__y); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8036: const _Key& __k) 8036: { 8036: while (__x != 0) 8036: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: __x = _S_right(__x); 8036: return iterator(__y); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::const_iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8036: const _Key& __k) const 8036: { 8036: while (__x != 0) 8036: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: __x = _S_right(__x); 8036: return const_iterator(__y); 8036: } 8036: 8036: template 8036: pair::iterator, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::iterator> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: equal_range(const _Key& __k) 8036: { 8036: _Link_type __x = _M_begin(); 8036: _Base_ptr __y = _M_end(); 8036: while (__x != 0) 8036: { 8036: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8036: __x = _S_right(__x); 8036: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: { 8036: _Link_type __xu(__x); 8036: _Base_ptr __yu(__y); 8036: __y = __x, __x = _S_left(__x); 8036: __xu = _S_right(__xu); 8036: return pair(_M_lower_bound(__x, __y, __k), 8036: _M_upper_bound(__xu, __yu, __k)); 8036: } 8036: } 8036: return pair(iterator(__y), 8036: iterator(__y)); 8036: } 8036: 8036: template 8036: pair::const_iterator, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::const_iterator> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: equal_range(const _Key& __k) const 8036: { 8036: _Const_Link_type __x = _M_begin(); 8036: _Const_Base_ptr __y = _M_end(); 8036: while (__x != 0) 8036: { 8036: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8036: __x = _S_right(__x); 8036: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8036: __y = __x, __x = _S_left(__x); 8036: else 8036: { 8036: _Const_Link_type __xu(__x); 8036: _Const_Base_ptr __yu(__y); 8036: __y = __x, __x = _S_left(__x); 8036: __xu = _S_right(__xu); 8036: return pair(_M_lower_bound(__x, __y, __k), 8036: _M_upper_bound(__xu, __yu, __k)); 8036: } 8036: } 8036: return pair(const_iterator(__y), 8036: const_iterator(__y)); 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: swap(_Rb_tree& __t) 8036: noexcept(__is_nothrow_swappable<_Compare>::value) 8036: { 8036: if (_M_root() == 0) 8036: { 8036: if (__t._M_root() != 0) 8036: _M_impl._M_move_data(__t._M_impl); 8036: } 8036: else if (__t._M_root() == 0) 8036: __t._M_impl._M_move_data(_M_impl); 8036: else 8036: { 8036: std::swap(_M_root(),__t._M_root()); 8036: std::swap(_M_leftmost(),__t._M_leftmost()); 8036: std::swap(_M_rightmost(),__t._M_rightmost()); 8036: 8036: _M_root()->_M_parent = _M_end(); 8036: __t._M_root()->_M_parent = __t._M_end(); 8036: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 8036: } 8036: 8036: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 8036: 8036: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 8036: __t._M_get_Node_allocator()); 8036: } 8036: 8036: template 8036: pair::_Base_ptr, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::_Base_ptr> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_get_insert_unique_pos(const key_type& __k) 8036: { 8036: typedef pair<_Base_ptr, _Base_ptr> _Res; 8036: _Link_type __x = _M_begin(); 8036: _Base_ptr __y = _M_end(); 8036: bool __comp = true; 8036: while (__x != 0) 8036: { 8036: __y = __x; 8036: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 8036: __x = __comp ? _S_left(__x) : _S_right(__x); 8036: } 8036: iterator __j = iterator(__y); 8036: if (__comp) 8036: { 8036: if (__j == begin()) 8036: return _Res(__x, __y); 8036: else 8036: --__j; 8036: } 8036: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 8036: return _Res(__x, __y); 8036: return _Res(__j._M_node, 0); 8036: } 8036: 8036: template 8036: pair::_Base_ptr, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::_Base_ptr> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_get_insert_equal_pos(const key_type& __k) 8036: { 8036: typedef pair<_Base_ptr, _Base_ptr> _Res; 8036: _Link_type __x = _M_begin(); 8036: _Base_ptr __y = _M_end(); 8036: while (__x != 0) 8036: { 8036: __y = __x; 8036: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 8036: _S_left(__x) : _S_right(__x); 8036: } 8036: return _Res(__x, __y); 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: pair::iterator, bool> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: 8036: _M_insert_unique(_Arg&& __v) 8036: 8036: 8036: 8036: { 8036: typedef pair _Res; 8036: pair<_Base_ptr, _Base_ptr> __res 8036: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 8036: 8036: if (__res.second) 8036: { 8036: _Alloc_node __an(*this); 8036: return _Res(_M_insert_(__res.first, __res.second, 8036: std::forward<_Arg>(__v), __an), 8036: true); 8036: } 8036: 8036: return _Res(iterator(__res.first), false); 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: 8036: _M_insert_equal(_Arg&& __v) 8036: 8036: 8036: 8036: { 8036: pair<_Base_ptr, _Base_ptr> __res 8036: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 8036: _Alloc_node __an(*this); 8036: return _M_insert_(__res.first, __res.second, 8036: std::forward<_Arg>(__v), __an); 8036: } 8036: 8036: template 8036: pair::_Base_ptr, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::_Base_ptr> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_get_insert_hint_unique_pos(const_iterator __position, 8036: const key_type& __k) 8036: { 8036: iterator __pos = __position._M_const_cast(); 8036: typedef pair<_Base_ptr, _Base_ptr> _Res; 8036: 8036: 8036: if (__pos._M_node == _M_end()) 8036: { 8036: if (size() > 0 8036: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 8036: return _Res(0, _M_rightmost()); 8036: else 8036: return _M_get_insert_unique_pos(__k); 8036: } 8036: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 8036: { 8036: 8036: iterator __before = __pos; 8036: if (__pos._M_node == _M_leftmost()) 8036: return _Res(_M_leftmost(), _M_leftmost()); 8036: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 8036: { 8036: if (_S_right(__before._M_node) == 0) 8036: return _Res(0, __before._M_node); 8036: else 8036: return _Res(__pos._M_node, __pos._M_node); 8036: } 8036: else 8036: return _M_get_insert_unique_pos(__k); 8036: } 8036: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8036: { 8036: 8036: iterator __after = __pos; 8036: if (__pos._M_node == _M_rightmost()) 8036: return _Res(0, _M_rightmost()); 8036: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 8036: { 8036: if (_S_right(__pos._M_node) == 0) 8036: return _Res(0, __pos._M_node); 8036: else 8036: return _Res(__after._M_node, __after._M_node); 8036: } 8036: else 8036: return _M_get_insert_unique_pos(__k); 8036: } 8036: else 8036: 8036: return _Res(__pos._M_node, 0); 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_unique_(const_iterator __position, 8036: 8036: _Arg&& __v, 8036: 8036: 8036: 8036: _NodeGen& __node_gen) 8036: { 8036: pair<_Base_ptr, _Base_ptr> __res 8036: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 8036: 8036: if (__res.second) 8036: return _M_insert_(__res.first, __res.second, 8036: std::forward<_Arg>(__v), 8036: __node_gen); 8036: return iterator(__res.first); 8036: } 8036: 8036: template 8036: pair::_Base_ptr, 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::_Base_ptr> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 8036: { 8036: iterator __pos = __position._M_const_cast(); 8036: typedef pair<_Base_ptr, _Base_ptr> _Res; 8036: 8036: 8036: if (__pos._M_node == _M_end()) 8036: { 8036: if (size() > 0 8036: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 8036: return _Res(0, _M_rightmost()); 8036: else 8036: return _M_get_insert_equal_pos(__k); 8036: } 8036: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8036: { 8036: 8036: iterator __before = __pos; 8036: if (__pos._M_node == _M_leftmost()) 8036: return _Res(_M_leftmost(), _M_leftmost()); 8036: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 8036: { 8036: if (_S_right(__before._M_node) == 0) 8036: return _Res(0, __before._M_node); 8036: else 8036: return _Res(__pos._M_node, __pos._M_node); 8036: } 8036: else 8036: return _M_get_insert_equal_pos(__k); 8036: } 8036: else 8036: { 8036: 8036: iterator __after = __pos; 8036: if (__pos._M_node == _M_rightmost()) 8036: return _Res(0, _M_rightmost()); 8036: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 8036: { 8036: if (_S_right(__pos._M_node) == 0) 8036: return _Res(0, __pos._M_node); 8036: else 8036: return _Res(__after._M_node, __after._M_node); 8036: } 8036: else 8036: return _Res(0, 0); 8036: } 8036: } 8036: 8036: template 8036: 8036: template 8036: 8036: 8036: 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_equal_(const_iterator __position, 8036: 8036: _Arg&& __v, 8036: 8036: 8036: 8036: _NodeGen& __node_gen) 8036: { 8036: pair<_Base_ptr, _Base_ptr> __res 8036: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 8036: 8036: if (__res.second) 8036: return _M_insert_(__res.first, __res.second, 8036: std::forward<_Arg>(__v), 8036: __node_gen); 8036: 8036: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 8036: } 8036: 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 8036: { 8036: bool __insert_left = (__x != 0 || __p == _M_end() 8036: || _M_impl._M_key_compare(_S_key(__z), 8036: _S_key(__p))); 8036: 8036: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8036: this->_M_impl._M_header); 8036: ++_M_impl._M_node_count; 8036: return iterator(__z); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 8036: { 8036: bool __insert_left = (__p == _M_end() 8036: || !_M_impl._M_key_compare(_S_key(__p), 8036: _S_key(__z))); 8036: 8036: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8036: this->_M_impl._M_header); 8036: ++_M_impl._M_node_count; 8036: return iterator(__z); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_insert_equal_lower_node(_Link_type __z) 8036: { 8036: _Link_type __x = _M_begin(); 8036: _Base_ptr __y = _M_end(); 8036: while (__x != 0) 8036: { 8036: __y = __x; 8036: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 8036: _S_left(__x) : _S_right(__x); 8036: } 8036: return _M_insert_lower_node(__y, __z); 8036: } 8036: 8036: template 8036: template 8036: pair::iterator, bool> 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_emplace_unique(_Args&&... __args) 8036: { 8036: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8036: 8036: if (true) 8036: { 8036: typedef pair _Res; 8036: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 8036: if (__res.second) 8036: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 8036: 8036: _M_drop_node(__z); 8036: return _Res(iterator(__res.first), false); 8036: } 8036: if (false) 8036: { 8036: _M_drop_node(__z); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_emplace_equal(_Args&&... __args) 8036: { 8036: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8036: 8036: if (true) 8036: { 8036: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 8036: return _M_insert_node(__res.first, __res.second, __z); 8036: } 8036: if (false) 8036: { 8036: _M_drop_node(__z); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 8036: { 8036: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8036: 8036: if (true) 8036: { 8036: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 8036: 8036: if (__res.second) 8036: return _M_insert_node(__res.first, __res.second, __z); 8036: 8036: _M_drop_node(__z); 8036: return iterator(__res.first); 8036: } 8036: if (false) 8036: { 8036: _M_drop_node(__z); 8036: ; 8036: } 8036: } 8036: 8036: template 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 8036: { 8036: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8036: 8036: if (true) 8036: { 8036: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 8036: 8036: if (__res.second) 8036: return _M_insert_node(__res.first, __res.second, __z); 8036: 8036: return _M_insert_equal_lower_node(__z); 8036: } 8036: if (false) 8036: { 8036: _M_drop_node(__z); 8036: ; 8036: } 8036: } 8036: 8036: 8036: template 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8036: _M_insert_unique(_II __first, _II __last) 8036: { 8036: _Alloc_node __an(*this); 8036: for (; __first != __last; ++__first) 8036: _M_insert_unique_(end(), *__first, __an); 8036: } 8036: 8036: template 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8036: _M_insert_equal(_II __first, _II __last) 8036: { 8036: _Alloc_node __an(*this); 8036: for (; __first != __last; ++__first) 8036: _M_insert_equal_(end(), *__first, __an); 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_erase_aux(const_iterator __position) 8036: { 8036: _Link_type __y = 8036: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 8036: (const_cast<_Base_ptr>(__position._M_node), 8036: this->_M_impl._M_header)); 8036: _M_drop_node(__y); 8036: --_M_impl._M_node_count; 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: _M_erase_aux(const_iterator __first, const_iterator __last) 8036: { 8036: if (__first == begin() && __last == end()) 8036: clear(); 8036: else 8036: while (__first != __last) 8036: _M_erase_aux(__first++); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: erase(const _Key& __x) 8036: { 8036: pair __p = equal_range(__x); 8036: const size_type __old_size = size(); 8036: _M_erase_aux(__p.first, __p.second); 8036: return __old_size - size(); 8036: } 8036: 8036: template 8036: void 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: erase(const _Key* __first, const _Key* __last) 8036: { 8036: while (__first != __last) 8036: erase(*__first++); 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: find(const _Key& __k) 8036: { 8036: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8036: return (__j == end() 8036: || _M_impl._M_key_compare(__k, 8036: _S_key(__j._M_node))) ? end() : __j; 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8036: _Compare, _Alloc>::const_iterator 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: find(const _Key& __k) const 8036: { 8036: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8036: return (__j == end() 8036: || _M_impl._M_key_compare(__k, 8036: _S_key(__j._M_node))) ? end() : __j; 8036: } 8036: 8036: template 8036: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8036: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8036: count(const _Key& __k) const 8036: { 8036: pair __p = equal_range(__k); 8036: const size_type __n = std::distance(__p.first, __p.second); 8036: return __n; 8036: } 8036: 8036: __attribute__ ((__pure__)) unsigned int 8036: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 8036: const _Rb_tree_node_base* __root) throw (); 8036: 8036: template 8036: bool 8036: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 8036: { 8036: if (_M_impl._M_node_count == 0 || begin() == end()) 8036: return _M_impl._M_node_count == 0 && begin() == end() 8036: && this->_M_impl._M_header._M_left == _M_end() 8036: && this->_M_impl._M_header._M_right == _M_end(); 8036: 8036: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 8036: for (const_iterator __it = begin(); __it != end(); ++__it) 8036: { 8036: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 8036: _Const_Link_type __L = _S_left(__x); 8036: _Const_Link_type __R = _S_right(__x); 8036: 8036: if (__x->_M_color == _S_red) 8036: if ((__L && __L->_M_color == _S_red) 8036: || (__R && __R->_M_color == _S_red)) 8036: return false; 8036: 8036: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 8036: return false; 8036: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 8036: return false; 8036: 8036: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 8036: return false; 8036: } 8036: 8036: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 8036: return false; 8036: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 8036: return false; 8036: return true; 8036: } 8036: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 8036: 8036: } 8036: # 61 "/usr/include/c++/8/map" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 8036: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 8036: # 1 "/usr/include/c++/8/tuple" 1 3 8036: # 32 "/usr/include/c++/8/tuple" 3 8036: 8036: # 33 "/usr/include/c++/8/tuple" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/array" 1 3 8036: # 32 "/usr/include/c++/8/array" 3 8036: 8036: # 33 "/usr/include/c++/8/array" 3 8036: # 43 "/usr/include/c++/8/array" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: template 8036: struct __array_traits 8036: { 8036: typedef _Tp _Type[_Nm]; 8036: typedef __is_swappable<_Tp> _Is_swappable; 8036: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 8036: 8036: static constexpr _Tp& 8036: _S_ref(const _Type& __t, std::size_t __n) noexcept 8036: { return const_cast<_Tp&>(__t[__n]); } 8036: 8036: static constexpr _Tp* 8036: _S_ptr(const _Type& __t) noexcept 8036: { return const_cast<_Tp*>(__t); } 8036: }; 8036: 8036: template 8036: struct __array_traits<_Tp, 0> 8036: { 8036: struct _Type { }; 8036: typedef true_type _Is_swappable; 8036: typedef true_type _Is_nothrow_swappable; 8036: 8036: static constexpr _Tp& 8036: _S_ref(const _Type&, std::size_t) noexcept 8036: { return *static_cast<_Tp*>(nullptr); } 8036: 8036: static constexpr _Tp* 8036: _S_ptr(const _Type&) noexcept 8036: { return nullptr; } 8036: }; 8036: # 93 "/usr/include/c++/8/array" 3 8036: template 8036: struct array 8036: { 8036: typedef _Tp value_type; 8036: typedef value_type* pointer; 8036: typedef const value_type* const_pointer; 8036: typedef value_type& reference; 8036: typedef const value_type& const_reference; 8036: typedef value_type* iterator; 8036: typedef const value_type* const_iterator; 8036: typedef std::size_t size_type; 8036: typedef std::ptrdiff_t difference_type; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: 8036: 8036: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 8036: typename _AT_Type::_Type _M_elems; 8036: 8036: 8036: 8036: 8036: void 8036: fill(const value_type& __u) 8036: { std::fill_n(begin(), size(), __u); } 8036: 8036: void 8036: swap(array& __other) 8036: noexcept(_AT_Type::_Is_nothrow_swappable::value) 8036: { std::swap_ranges(begin(), end(), __other.begin()); } 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return iterator(data()); } 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return const_iterator(data()); } 8036: 8036: iterator 8036: end() noexcept 8036: { return iterator(data() + _Nm); } 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return const_iterator(data() + _Nm); } 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return reverse_iterator(end()); } 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return reverse_iterator(begin()); } 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return const_iterator(data()); } 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return const_iterator(data() + _Nm); } 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return const_reverse_iterator(end()); } 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return const_reverse_iterator(begin()); } 8036: 8036: 8036: constexpr size_type 8036: size() const noexcept { return _Nm; } 8036: 8036: constexpr size_type 8036: max_size() const noexcept { return _Nm; } 8036: 8036: constexpr bool 8036: empty() const noexcept { return size() == 0; } 8036: 8036: 8036: reference 8036: operator[](size_type __n) noexcept 8036: { return _AT_Type::_S_ref(_M_elems, __n); } 8036: 8036: constexpr const_reference 8036: operator[](size_type __n) const noexcept 8036: { return _AT_Type::_S_ref(_M_elems, __n); } 8036: 8036: reference 8036: at(size_type __n) 8036: { 8036: if (__n >= _Nm) 8036: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8036: , 8036: __n, _Nm); 8036: return _AT_Type::_S_ref(_M_elems, __n); 8036: } 8036: 8036: constexpr const_reference 8036: at(size_type __n) const 8036: { 8036: 8036: 8036: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 8036: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8036: , 8036: __n, _Nm), 8036: _AT_Type::_S_ref(_M_elems, 0)); 8036: } 8036: 8036: reference 8036: front() noexcept 8036: { return *begin(); } 8036: 8036: constexpr const_reference 8036: front() const noexcept 8036: { return _AT_Type::_S_ref(_M_elems, 0); } 8036: 8036: reference 8036: back() noexcept 8036: { return _Nm ? *(end() - 1) : *end(); } 8036: 8036: constexpr const_reference 8036: back() const noexcept 8036: { 8036: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 8036: : _AT_Type::_S_ref(_M_elems, 0); 8036: } 8036: 8036: pointer 8036: data() noexcept 8036: { return _AT_Type::_S_ptr(_M_elems); } 8036: 8036: const_pointer 8036: data() const noexcept 8036: { return _AT_Type::_S_ptr(_M_elems); } 8036: }; 8036: # 250 "/usr/include/c++/8/array" 3 8036: template 8036: inline bool 8036: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8036: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8036: 8036: template 8036: inline bool 8036: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8036: { return !(__one == __two); } 8036: 8036: template 8036: inline bool 8036: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8036: { 8036: return std::lexicographical_compare(__a.begin(), __a.end(), 8036: __b.begin(), __b.end()); 8036: } 8036: 8036: template 8036: inline bool 8036: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8036: { return __two < __one; } 8036: 8036: template 8036: inline bool 8036: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8036: { return !(__one > __two); } 8036: 8036: template 8036: inline bool 8036: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8036: { return !(__one < __two); } 8036: 8036: 8036: template 8036: inline 8036: 8036: 8036: typename enable_if< 8036: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 8036: >::type 8036: 8036: 8036: 8036: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8036: noexcept(noexcept(__one.swap(__two))) 8036: { __one.swap(__two); } 8036: 8036: 8036: template 8036: typename enable_if< 8036: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 8036: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 8036: 8036: 8036: template 8036: constexpr _Tp& 8036: get(array<_Tp, _Nm>& __arr) noexcept 8036: { 8036: static_assert(_Int < _Nm, "array index is within bounds"); 8036: return std::__array_traits<_Tp, _Nm>:: 8036: _S_ref(__arr._M_elems, _Int); 8036: } 8036: 8036: template 8036: constexpr _Tp&& 8036: get(array<_Tp, _Nm>&& __arr) noexcept 8036: { 8036: static_assert(_Int < _Nm, "array index is within bounds"); 8036: return std::move(std::get<_Int>(__arr)); 8036: } 8036: 8036: template 8036: constexpr const _Tp& 8036: get(const array<_Tp, _Nm>& __arr) noexcept 8036: { 8036: static_assert(_Int < _Nm, "array index is within bounds"); 8036: return std::__array_traits<_Tp, _Nm>:: 8036: _S_ref(__arr._M_elems, _Int); 8036: } 8036: 8036: template 8036: constexpr const _Tp&& 8036: get(const array<_Tp, _Nm>&& __arr) noexcept 8036: { 8036: static_assert(_Int < _Nm, "array index is within bounds"); 8036: return std::move(std::get<_Int>(__arr)); 8036: } 8036: 8036: 8036: } 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct tuple_size; 8036: 8036: 8036: template 8036: struct tuple_size> 8036: : public integral_constant { }; 8036: 8036: 8036: template 8036: struct tuple_element; 8036: 8036: 8036: template 8036: struct tuple_element<_Int, std::array<_Tp, _Nm>> 8036: { 8036: static_assert(_Int < _Nm, "index is out of bounds"); 8036: typedef _Tp type; 8036: }; 8036: 8036: template 8036: struct __is_tuple_like_impl> : true_type 8036: { }; 8036: 8036: 8036: } 8036: # 40 "/usr/include/c++/8/tuple" 2 3 8036: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 8036: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: struct __erased_type { }; 8036: 8036: template 8036: using __is_erased_or_convertible 8036: = __or_, is_convertible<_Alloc, _Tp>>; 8036: 8036: 8036: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 8036: 8036: constexpr allocator_arg_t allocator_arg = 8036: allocator_arg_t(); 8036: 8036: template> 8036: struct __uses_allocator_helper 8036: : false_type { }; 8036: 8036: template 8036: struct __uses_allocator_helper<_Tp, _Alloc, 8036: __void_t> 8036: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 8036: { }; 8036: 8036: 8036: template 8036: struct uses_allocator 8036: : __uses_allocator_helper<_Tp, _Alloc>::type 8036: { }; 8036: 8036: struct __uses_alloc_base { }; 8036: 8036: struct __uses_alloc0 : __uses_alloc_base 8036: { 8036: struct _Sink { void operator=(const void*) { } } _M_a; 8036: }; 8036: 8036: template 8036: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 8036: 8036: template 8036: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 8036: 8036: template 8036: struct __uses_alloc; 8036: 8036: template 8036: struct __uses_alloc 8036: : conditional< 8036: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 8036: __uses_alloc1<_Alloc>, 8036: __uses_alloc2<_Alloc>>::type 8036: { 8036: static_assert(__or_< 8036: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 8036: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 8036: " an allocator must be possible if uses_allocator is true"); 8036: }; 8036: 8036: template 8036: struct __uses_alloc 8036: : __uses_alloc0 { }; 8036: 8036: template 8036: using __uses_alloc_t = 8036: __uses_alloc::value, _Tp, _Alloc, _Args...>; 8036: 8036: template 8036: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 8036: __use_alloc(const _Alloc& __a) 8036: { 8036: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 8036: __ret._M_a = std::__addressof(__a); 8036: return __ret; 8036: } 8036: 8036: template 8036: void 8036: __use_alloc(const _Alloc&&) = delete; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template class _Predicate, 8036: typename _Tp, typename _Alloc, typename... _Args> 8036: struct __is_uses_allocator_predicate 8036: : conditional::value, 8036: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 8036: _Predicate<_Tp, _Args..., _Alloc>>, 8036: _Predicate<_Tp, _Args...>>::type { }; 8036: 8036: template 8036: struct __is_uses_allocator_constructible 8036: : __is_uses_allocator_predicate 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_nothrow_uses_allocator_constructible 8036: : __is_uses_allocator_predicate 8036: { }; 8036: # 156 "/usr/include/c++/8/bits/uses_allocator.h" 3 8036: template 8036: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 8036: _Args&&... __args) 8036: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 8036: _Args&&... __args) 8036: { 8036: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 8036: std::forward<_Args>(__args)...); 8036: } 8036: 8036: template 8036: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 8036: _Args&&... __args) 8036: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 8036: 8036: template 8036: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 8036: _Args&&... __args) 8036: { 8036: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 8036: __ptr, std::forward<_Args>(__args)...); 8036: } 8036: 8036: 8036: } 8036: # 41 "/usr/include/c++/8/tuple" 2 3 8036: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/invoke.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/invoke.h" 3 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 52 "/usr/include/c++/8/bits/invoke.h" 3 8036: template::type> 8036: constexpr _Up&& 8036: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 8036: { return static_cast<_Up&&>(__t); } 8036: 8036: template 8036: constexpr _Res 8036: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 8036: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: constexpr _Res 8036: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 8036: _Args&&... __args) 8036: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 8036: 8036: template 8036: constexpr _Res 8036: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 8036: _Args&&... __args) 8036: { 8036: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 8036: } 8036: 8036: template 8036: constexpr _Res 8036: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 8036: { return __invfwd<_Tp>(__t).*__f; } 8036: 8036: template 8036: constexpr _Res 8036: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 8036: { return (*std::forward<_Tp>(__t)).*__f; } 8036: 8036: 8036: template 8036: constexpr typename __invoke_result<_Callable, _Args...>::type 8036: __invoke(_Callable&& __fn, _Args&&... __args) 8036: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 8036: { 8036: using __result = __invoke_result<_Callable, _Args...>; 8036: using __type = typename __result::type; 8036: using __tag = typename __result::__invoke_type; 8036: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 8036: std::forward<_Args>(__args)...); 8036: } 8036: 8036: 8036: } 8036: # 42 "/usr/include/c++/8/tuple" 2 3 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class tuple; 8036: 8036: template 8036: struct __is_empty_non_tuple : is_empty<_Tp> { }; 8036: 8036: 8036: template 8036: struct __is_empty_non_tuple> : false_type { }; 8036: 8036: 8036: template 8036: using __empty_not_final 8036: = typename conditional<__is_final(_Tp), false_type, 8036: __is_empty_non_tuple<_Tp>>::type; 8036: 8036: template::value> 8036: struct _Head_base; 8036: 8036: template 8036: struct _Head_base<_Idx, _Head, true> 8036: : public _Head 8036: { 8036: constexpr _Head_base() 8036: : _Head() { } 8036: 8036: constexpr _Head_base(const _Head& __h) 8036: : _Head(__h) { } 8036: 8036: constexpr _Head_base(const _Head_base&) = default; 8036: constexpr _Head_base(_Head_base&&) = default; 8036: 8036: template 8036: constexpr _Head_base(_UHead&& __h) 8036: : _Head(std::forward<_UHead>(__h)) { } 8036: 8036: _Head_base(allocator_arg_t, __uses_alloc0) 8036: : _Head() { } 8036: 8036: template 8036: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8036: : _Head(allocator_arg, *__a._M_a) { } 8036: 8036: template 8036: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8036: : _Head(*__a._M_a) { } 8036: 8036: template 8036: _Head_base(__uses_alloc0, _UHead&& __uhead) 8036: : _Head(std::forward<_UHead>(__uhead)) { } 8036: 8036: template 8036: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8036: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 8036: 8036: template 8036: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8036: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 8036: 8036: static constexpr _Head& 8036: _M_head(_Head_base& __b) noexcept { return __b; } 8036: 8036: static constexpr const _Head& 8036: _M_head(const _Head_base& __b) noexcept { return __b; } 8036: }; 8036: 8036: template 8036: struct _Head_base<_Idx, _Head, false> 8036: { 8036: constexpr _Head_base() 8036: : _M_head_impl() { } 8036: 8036: constexpr _Head_base(const _Head& __h) 8036: : _M_head_impl(__h) { } 8036: 8036: constexpr _Head_base(const _Head_base&) = default; 8036: constexpr _Head_base(_Head_base&&) = default; 8036: 8036: template 8036: constexpr _Head_base(_UHead&& __h) 8036: : _M_head_impl(std::forward<_UHead>(__h)) { } 8036: 8036: _Head_base(allocator_arg_t, __uses_alloc0) 8036: : _M_head_impl() { } 8036: 8036: template 8036: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8036: : _M_head_impl(allocator_arg, *__a._M_a) { } 8036: 8036: template 8036: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8036: : _M_head_impl(*__a._M_a) { } 8036: 8036: template 8036: _Head_base(__uses_alloc0, _UHead&& __uhead) 8036: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 8036: 8036: template 8036: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8036: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 8036: { } 8036: 8036: template 8036: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8036: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 8036: 8036: static constexpr _Head& 8036: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 8036: 8036: static constexpr const _Head& 8036: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 8036: 8036: _Head _M_head_impl; 8036: }; 8036: # 176 "/usr/include/c++/8/tuple" 3 8036: template 8036: struct _Tuple_impl; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _Tuple_impl<_Idx, _Head, _Tail...> 8036: : public _Tuple_impl<_Idx + 1, _Tail...>, 8036: private _Head_base<_Idx, _Head> 8036: { 8036: template friend class _Tuple_impl; 8036: 8036: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 8036: typedef _Head_base<_Idx, _Head> _Base; 8036: 8036: static constexpr _Head& 8036: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8036: 8036: static constexpr const _Head& 8036: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8036: 8036: static constexpr _Inherited& 8036: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 8036: 8036: static constexpr const _Inherited& 8036: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 8036: 8036: constexpr _Tuple_impl() 8036: : _Inherited(), _Base() { } 8036: 8036: explicit 8036: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 8036: : _Inherited(__tail...), _Base(__head) { } 8036: 8036: template::type> 8036: explicit 8036: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 8036: : _Inherited(std::forward<_UTail>(__tail)...), 8036: _Base(std::forward<_UHead>(__head)) { } 8036: 8036: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8036: 8036: constexpr 8036: _Tuple_impl(_Tuple_impl&& __in) 8036: noexcept(__and_, 8036: is_nothrow_move_constructible<_Inherited>>::value) 8036: : _Inherited(std::move(_M_tail(__in))), 8036: _Base(std::forward<_Head>(_M_head(__in))) { } 8036: 8036: template 8036: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 8036: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8036: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8036: 8036: template 8036: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8036: : _Inherited(std::move 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8036: _Base(std::forward<_UHead> 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8036: : _Inherited(__tag, __a), 8036: _Base(__tag, __use_alloc<_Head>(__a)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Head& __head, const _Tail&... __tail) 8036: : _Inherited(__tag, __a, __tail...), 8036: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8036: 8036: template::type> 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _UHead&& __head, _UTail&&... __tail) 8036: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 8036: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8036: std::forward<_UHead>(__head)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Tuple_impl& __in) 8036: : _Inherited(__tag, __a, _M_tail(__in)), 8036: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _Tuple_impl&& __in) 8036: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 8036: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8036: std::forward<_Head>(_M_head(__in))) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Tuple_impl<_Idx, _UElements...>& __in) 8036: : _Inherited(__tag, __a, 8036: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8036: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8036: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8036: : _Inherited(__tag, __a, std::move 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8036: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8036: std::forward<_UHead> 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8036: 8036: _Tuple_impl& 8036: operator=(const _Tuple_impl& __in) 8036: { 8036: _M_head(*this) = _M_head(__in); 8036: _M_tail(*this) = _M_tail(__in); 8036: return *this; 8036: } 8036: 8036: _Tuple_impl& 8036: operator=(_Tuple_impl&& __in) 8036: noexcept(__and_, 8036: is_nothrow_move_assignable<_Inherited>>::value) 8036: { 8036: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8036: _M_tail(*this) = std::move(_M_tail(__in)); 8036: return *this; 8036: } 8036: 8036: template 8036: _Tuple_impl& 8036: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 8036: { 8036: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 8036: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 8036: return *this; 8036: } 8036: 8036: template 8036: _Tuple_impl& 8036: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8036: { 8036: _M_head(*this) = std::forward<_UHead> 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 8036: _M_tail(*this) = std::move 8036: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 8036: return *this; 8036: } 8036: 8036: protected: 8036: void 8036: _M_swap(_Tuple_impl& __in) 8036: noexcept(__is_nothrow_swappable<_Head>::value 8036: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 8036: { 8036: using std::swap; 8036: swap(_M_head(*this), _M_head(__in)); 8036: _Inherited::_M_swap(_M_tail(__in)); 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct _Tuple_impl<_Idx, _Head> 8036: : private _Head_base<_Idx, _Head> 8036: { 8036: template friend class _Tuple_impl; 8036: 8036: typedef _Head_base<_Idx, _Head> _Base; 8036: 8036: static constexpr _Head& 8036: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8036: 8036: static constexpr const _Head& 8036: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8036: 8036: constexpr _Tuple_impl() 8036: : _Base() { } 8036: 8036: explicit 8036: constexpr _Tuple_impl(const _Head& __head) 8036: : _Base(__head) { } 8036: 8036: template 8036: explicit 8036: constexpr _Tuple_impl(_UHead&& __head) 8036: : _Base(std::forward<_UHead>(__head)) { } 8036: 8036: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8036: 8036: constexpr 8036: _Tuple_impl(_Tuple_impl&& __in) 8036: noexcept(is_nothrow_move_constructible<_Head>::value) 8036: : _Base(std::forward<_Head>(_M_head(__in))) { } 8036: 8036: template 8036: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 8036: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8036: 8036: template 8036: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 8036: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8036: { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8036: : _Base(__tag, __use_alloc<_Head>(__a)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Head& __head) 8036: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _UHead&& __head) 8036: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8036: std::forward<_UHead>(__head)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Tuple_impl& __in) 8036: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _Tuple_impl&& __in) 8036: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8036: std::forward<_Head>(_M_head(__in))) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Tuple_impl<_Idx, _UHead>& __in) 8036: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8036: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8036: 8036: template 8036: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8036: _Tuple_impl<_Idx, _UHead>&& __in) 8036: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8036: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8036: { } 8036: 8036: _Tuple_impl& 8036: operator=(const _Tuple_impl& __in) 8036: { 8036: _M_head(*this) = _M_head(__in); 8036: return *this; 8036: } 8036: 8036: _Tuple_impl& 8036: operator=(_Tuple_impl&& __in) 8036: noexcept(is_nothrow_move_assignable<_Head>::value) 8036: { 8036: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8036: return *this; 8036: } 8036: 8036: template 8036: _Tuple_impl& 8036: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 8036: { 8036: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 8036: return *this; 8036: } 8036: 8036: template 8036: _Tuple_impl& 8036: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 8036: { 8036: _M_head(*this) 8036: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 8036: return *this; 8036: } 8036: 8036: protected: 8036: void 8036: _M_swap(_Tuple_impl& __in) 8036: noexcept(__is_nothrow_swappable<_Head>::value) 8036: { 8036: using std::swap; 8036: swap(_M_head(*this), _M_head(__in)); 8036: } 8036: }; 8036: 8036: 8036: 8036: template 8036: struct _TC 8036: { 8036: template 8036: static constexpr bool _ConstructibleTuple() 8036: { 8036: return __and_...>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyConvertibleTuple() 8036: { 8036: return __and_...>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _MoveConstructibleTuple() 8036: { 8036: return __and_...>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8036: { 8036: return __and_...>::value; 8036: } 8036: 8036: template 8036: static constexpr bool _NonNestedTuple() 8036: { 8036: return __and_<__not_, 8036: typename remove_cv< 8036: typename remove_reference<_SrcTuple>::type 8036: >::type>>, 8036: __not_>, 8036: __not_> 8036: >::value; 8036: } 8036: template 8036: static constexpr bool _NotSameTuple() 8036: { 8036: return __not_, 8036: typename remove_const< 8036: typename remove_reference<_UElements...>::type 8036: >::type>>::value; 8036: } 8036: }; 8036: 8036: template 8036: struct _TC 8036: { 8036: template 8036: static constexpr bool _ConstructibleTuple() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyConvertibleTuple() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _MoveConstructibleTuple() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8036: { 8036: return false; 8036: } 8036: 8036: template 8036: static constexpr bool _NonNestedTuple() 8036: { 8036: return true; 8036: } 8036: template 8036: static constexpr bool _NotSameTuple() 8036: { 8036: return true; 8036: } 8036: }; 8036: 8036: 8036: template 8036: class tuple : public _Tuple_impl<0, _Elements...> 8036: { 8036: typedef _Tuple_impl<0, _Elements...> _Inherited; 8036: 8036: 8036: 8036: template 8036: struct _TC2 8036: { 8036: static constexpr bool _DefaultConstructibleTuple() 8036: { 8036: return __and_...>::value; 8036: } 8036: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 8036: { 8036: return __and_<__is_implicitly_default_constructible<_Elements>...> 8036: ::value; 8036: } 8036: }; 8036: 8036: public: 8036: template:: 8036: _ImplicitlyDefaultConstructibleTuple(), 8036: bool>::type = true> 8036: constexpr tuple() 8036: : _Inherited() { } 8036: 8036: template:: 8036: _DefaultConstructibleTuple() 8036: && 8036: !_TC2<_Dummy>:: 8036: _ImplicitlyDefaultConstructibleTuple(), 8036: bool>::type = false> 8036: explicit constexpr tuple() 8036: : _Inherited() { } 8036: 8036: 8036: 8036: template using _TCC = 8036: _TC::value, 8036: _Elements...>; 8036: 8036: template::template 8036: _ConstructibleTuple<_Elements...>() 8036: && _TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_Elements...>() 8036: && (sizeof...(_Elements) >= 1), 8036: bool>::type=true> 8036: constexpr tuple(const _Elements&... __elements) 8036: : _Inherited(__elements...) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_Elements...>() 8036: && !_TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_Elements...>() 8036: && (sizeof...(_Elements) >= 1), 8036: bool>::type=false> 8036: explicit constexpr tuple(const _Elements&... __elements) 8036: : _Inherited(__elements...) { } 8036: 8036: 8036: 8036: template using _TMC = 8036: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8036: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 8036: template _NotSameTuple<_UElements...>()), 8036: _Elements...>; 8036: 8036: 8036: 8036: template using _TMCT = 8036: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8036: && !is_same, 8036: tuple<_UElements...>>::value, 8036: _Elements...>; 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && _TMC<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && (sizeof...(_Elements) >= 1), 8036: bool>::type=true> 8036: constexpr tuple(_UElements&&... __elements) 8036: : _Inherited(std::forward<_UElements>(__elements)...) { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && !_TMC<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && (sizeof...(_Elements) >= 1), 8036: bool>::type=false> 8036: explicit constexpr tuple(_UElements&&... __elements) 8036: : _Inherited(std::forward<_UElements>(__elements)...) { } 8036: 8036: constexpr tuple(const tuple&) = default; 8036: 8036: constexpr tuple(tuple&&) = default; 8036: 8036: 8036: 8036: template using _TNTC = 8036: _TC::value && sizeof...(_Elements) == 1, 8036: _Elements...>; 8036: 8036: template::template 8036: _ConstructibleTuple<_UElements...>() 8036: && _TMCT<_UElements...>::template 8036: _ImplicitlyConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&>(), 8036: bool>::type=true> 8036: constexpr tuple(const tuple<_UElements...>& __in) 8036: : _Inherited(static_cast&>(__in)) 8036: { } 8036: 8036: template::template 8036: _ConstructibleTuple<_UElements...>() 8036: && !_TMCT<_UElements...>::template 8036: _ImplicitlyConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&>(), 8036: bool>::type=false> 8036: explicit constexpr tuple(const tuple<_UElements...>& __in) 8036: : _Inherited(static_cast&>(__in)) 8036: { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && _TMCT<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=true> 8036: constexpr tuple(tuple<_UElements...>&& __in) 8036: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && !_TMCT<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=false> 8036: explicit constexpr tuple(tuple<_UElements...>&& __in) 8036: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8036: 8036: 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a) 8036: : _Inherited(__tag, __a) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_Elements...>() 8036: && _TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_Elements...>(), 8036: bool>::type=true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Elements&... __elements) 8036: : _Inherited(__tag, __a, __elements...) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_Elements...>() 8036: && !_TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_Elements...>(), 8036: bool>::type=false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const _Elements&... __elements) 8036: : _Inherited(__tag, __a, __elements...) { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && _TMC<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8036: bool>::type=true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: _UElements&&... __elements) 8036: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8036: { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && !_TMC<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8036: bool>::type=false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: _UElements&&... __elements) 8036: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8036: { } 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8036: : _Inherited(__tag, __a, static_cast(__in)) { } 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8036: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_UElements...>() 8036: && _TMCT<_UElements...>::template 8036: _ImplicitlyConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const tuple<_UElements...>& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast&>(__in)) 8036: { } 8036: 8036: template::template 8036: _ConstructibleTuple<_UElements...>() 8036: && !_TMCT<_UElements...>::template 8036: _ImplicitlyConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const tuple<_UElements...>& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast&>(__in)) 8036: { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && _TMCT<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: tuple<_UElements...>&& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8036: { } 8036: 8036: template::template 8036: _MoveConstructibleTuple<_UElements...>() 8036: && !_TMCT<_UElements...>::template 8036: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8036: && _TNTC<_Dummy>::template 8036: _NonNestedTuple&&>(), 8036: bool>::type=false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: tuple<_UElements...>&& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8036: { } 8036: 8036: tuple& 8036: operator=(const tuple& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = __in; 8036: return *this; 8036: } 8036: 8036: tuple& 8036: operator=(tuple&& __in) 8036: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8036: { 8036: static_cast<_Inherited&>(*this) = std::move(__in); 8036: return *this; 8036: } 8036: 8036: template 8036: typename 8036: enable_if::type 8036: operator=(const tuple<_UElements...>& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = __in; 8036: return *this; 8036: } 8036: 8036: template 8036: typename 8036: enable_if::type 8036: operator=(tuple<_UElements...>&& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = std::move(__in); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(tuple& __in) 8036: noexcept(noexcept(__in._M_swap(__in))) 8036: { _Inherited::_M_swap(__in); } 8036: }; 8036: # 889 "/usr/include/c++/8/tuple" 3 8036: template<> 8036: class tuple<> 8036: { 8036: public: 8036: void swap(tuple&) noexcept { } 8036: 8036: 8036: tuple() = default; 8036: 8036: template 8036: tuple(allocator_arg_t, const _Alloc&) { } 8036: template 8036: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 8036: }; 8036: 8036: 8036: 8036: template 8036: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 8036: { 8036: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 8036: 8036: public: 8036: template , 8036: __is_implicitly_default_constructible<_U2>> 8036: ::value, bool>::type = true> 8036: 8036: constexpr tuple() 8036: : _Inherited() { } 8036: 8036: template , 8036: is_default_constructible<_U2>, 8036: __not_< 8036: __and_<__is_implicitly_default_constructible<_U1>, 8036: __is_implicitly_default_constructible<_U2>>>> 8036: ::value, bool>::type = false> 8036: 8036: explicit constexpr tuple() 8036: : _Inherited() { } 8036: 8036: 8036: 8036: template using _TCC = 8036: _TC::value, _T1, _T2>; 8036: 8036: template::template 8036: _ConstructibleTuple<_T1, _T2>() 8036: && _TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8036: bool>::type = true> 8036: constexpr tuple(const _T1& __a1, const _T2& __a2) 8036: : _Inherited(__a1, __a2) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_T1, _T2>() 8036: && !_TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8036: bool>::type = false> 8036: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 8036: : _Inherited(__a1, __a2) { } 8036: 8036: 8036: 8036: using _TMC = _TC; 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8036: && !is_same::type, 8036: allocator_arg_t>::value, 8036: bool>::type = true> 8036: constexpr tuple(_U1&& __a1, _U2&& __a2) 8036: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8036: && !is_same::type, 8036: allocator_arg_t>::value, 8036: bool>::type = false> 8036: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 8036: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8036: 8036: constexpr tuple(const tuple&) = default; 8036: 8036: constexpr tuple(tuple&&) = default; 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: constexpr tuple(const tuple<_U1, _U2>& __in) 8036: : _Inherited(static_cast&>(__in)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 8036: : _Inherited(static_cast&>(__in)) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: constexpr tuple(tuple<_U1, _U2>&& __in) 8036: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 8036: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: constexpr tuple(const pair<_U1, _U2>& __in) 8036: : _Inherited(__in.first, __in.second) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit constexpr tuple(const pair<_U1, _U2>& __in) 8036: : _Inherited(__in.first, __in.second) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: constexpr tuple(pair<_U1, _U2>&& __in) 8036: : _Inherited(std::forward<_U1>(__in.first), 8036: std::forward<_U2>(__in.second)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit constexpr tuple(pair<_U1, _U2>&& __in) 8036: : _Inherited(std::forward<_U1>(__in.first), 8036: std::forward<_U2>(__in.second)) { } 8036: 8036: 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a) 8036: : _Inherited(__tag, __a) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_T1, _T2>() 8036: && _TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8036: bool>::type=true> 8036: 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const _T1& __a1, const _T2& __a2) 8036: : _Inherited(__tag, __a, __a1, __a2) { } 8036: 8036: template::template 8036: _ConstructibleTuple<_T1, _T2>() 8036: && !_TCC<_Dummy>::template 8036: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8036: bool>::type=false> 8036: 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const _T1& __a1, const _T2& __a2) 8036: : _Inherited(__tag, __a, __a1, __a2) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 8036: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8036: std::forward<_U2>(__a2)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: _U1&& __a1, _U2&& __a2) 8036: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8036: std::forward<_U2>(__a2)) { } 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8036: : _Inherited(__tag, __a, static_cast(__in)) { } 8036: 8036: template 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8036: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const tuple<_U1, _U2>& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast&>(__in)) 8036: { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const tuple<_U1, _U2>& __in) 8036: : _Inherited(__tag, __a, 8036: static_cast&>(__in)) 8036: { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 8036: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8036: { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: tuple<_U1, _U2>&& __in) 8036: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8036: { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const pair<_U1, _U2>& __in) 8036: : _Inherited(__tag, __a, __in.first, __in.second) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: const pair<_U1, _U2>& __in) 8036: : _Inherited(__tag, __a, __in.first, __in.second) { } 8036: 8036: template() 8036: && _TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = true> 8036: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 8036: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8036: std::forward<_U2>(__in.second)) { } 8036: 8036: template() 8036: && !_TMC::template 8036: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8036: bool>::type = false> 8036: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8036: pair<_U1, _U2>&& __in) 8036: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8036: std::forward<_U2>(__in.second)) { } 8036: 8036: tuple& 8036: operator=(const tuple& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = __in; 8036: return *this; 8036: } 8036: 8036: tuple& 8036: operator=(tuple&& __in) 8036: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8036: { 8036: static_cast<_Inherited&>(*this) = std::move(__in); 8036: return *this; 8036: } 8036: 8036: template 8036: tuple& 8036: operator=(const tuple<_U1, _U2>& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = __in; 8036: return *this; 8036: } 8036: 8036: template 8036: tuple& 8036: operator=(tuple<_U1, _U2>&& __in) 8036: { 8036: static_cast<_Inherited&>(*this) = std::move(__in); 8036: return *this; 8036: } 8036: 8036: template 8036: tuple& 8036: operator=(const pair<_U1, _U2>& __in) 8036: { 8036: this->_M_head(*this) = __in.first; 8036: this->_M_tail(*this)._M_head(*this) = __in.second; 8036: return *this; 8036: } 8036: 8036: template 8036: tuple& 8036: operator=(pair<_U1, _U2>&& __in) 8036: { 8036: this->_M_head(*this) = std::forward<_U1>(__in.first); 8036: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 8036: return *this; 8036: } 8036: 8036: void 8036: swap(tuple& __in) 8036: noexcept(noexcept(__in._M_swap(__in))) 8036: { _Inherited::_M_swap(__in); } 8036: }; 8036: 8036: 8036: 8036: template 8036: struct tuple_size> 8036: : public integral_constant { }; 8036: # 1278 "/usr/include/c++/8/tuple" 3 8036: template 8036: struct tuple_element<__i, tuple<_Head, _Tail...> > 8036: : tuple_element<__i - 1, tuple<_Tail...> > { }; 8036: 8036: 8036: 8036: 8036: template 8036: struct tuple_element<0, tuple<_Head, _Tail...> > 8036: { 8036: typedef _Head type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct tuple_element<__i, tuple<>> 8036: { 8036: static_assert(__i < tuple_size>::value, 8036: "tuple index is in range"); 8036: }; 8036: 8036: template 8036: constexpr _Head& 8036: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8036: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8036: 8036: template 8036: constexpr const _Head& 8036: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8036: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8036: 8036: 8036: template 8036: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 8036: get(tuple<_Elements...>& __t) noexcept 8036: { return std::__get_helper<__i>(__t); } 8036: 8036: 8036: template 8036: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 8036: get(const tuple<_Elements...>& __t) noexcept 8036: { return std::__get_helper<__i>(__t); } 8036: 8036: 8036: template 8036: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 8036: get(tuple<_Elements...>&& __t) noexcept 8036: { 8036: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8036: return std::forward<__element_type&&>(std::get<__i>(__t)); 8036: } 8036: 8036: 8036: template 8036: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 8036: get(const tuple<_Elements...>&& __t) noexcept 8036: { 8036: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8036: return std::forward(std::get<__i>(__t)); 8036: } 8036: # 1382 "/usr/include/c++/8/tuple" 3 8036: template 8036: struct __tuple_compare 8036: { 8036: static constexpr bool 8036: __eq(const _Tp& __t, const _Up& __u) 8036: { 8036: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 8036: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 8036: } 8036: 8036: static constexpr bool 8036: __less(const _Tp& __t, const _Up& __u) 8036: { 8036: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 8036: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 8036: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 8036: } 8036: }; 8036: 8036: template 8036: struct __tuple_compare<_Tp, _Up, __size, __size> 8036: { 8036: static constexpr bool 8036: __eq(const _Tp&, const _Up&) { return true; } 8036: 8036: static constexpr bool 8036: __less(const _Tp&, const _Up&) { return false; } 8036: }; 8036: 8036: template 8036: constexpr bool 8036: operator==(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { 8036: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8036: "tuple objects can only be compared if they have equal sizes."); 8036: using __compare = __tuple_compare, 8036: tuple<_UElements...>, 8036: 0, sizeof...(_TElements)>; 8036: return __compare::__eq(__t, __u); 8036: } 8036: 8036: template 8036: constexpr bool 8036: operator<(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { 8036: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8036: "tuple objects can only be compared if they have equal sizes."); 8036: using __compare = __tuple_compare, 8036: tuple<_UElements...>, 8036: 0, sizeof...(_TElements)>; 8036: return __compare::__less(__t, __u); 8036: } 8036: 8036: template 8036: constexpr bool 8036: operator!=(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { return !(__t == __u); } 8036: 8036: template 8036: constexpr bool 8036: operator>(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { return __u < __t; } 8036: 8036: template 8036: constexpr bool 8036: operator<=(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { return !(__u < __t); } 8036: 8036: template 8036: constexpr bool 8036: operator>=(const tuple<_TElements...>& __t, 8036: const tuple<_UElements...>& __u) 8036: { return !(__t < __u); } 8036: 8036: 8036: template 8036: constexpr tuple::__type...> 8036: make_tuple(_Elements&&... __args) 8036: { 8036: typedef tuple::__type...> 8036: __result_type; 8036: return __result_type(std::forward<_Elements>(__args)...); 8036: } 8036: 8036: 8036: 8036: template 8036: constexpr tuple<_Elements&&...> 8036: forward_as_tuple(_Elements&&... __args) noexcept 8036: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 8036: 8036: template 8036: struct __make_tuple_impl; 8036: 8036: template 8036: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 8036: : __make_tuple_impl<_Idx + 1, 8036: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 8036: _Tuple, _Nm> 8036: { }; 8036: 8036: template 8036: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 8036: { 8036: typedef tuple<_Tp...> __type; 8036: }; 8036: 8036: template 8036: struct __do_make_tuple 8036: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 8036: { }; 8036: 8036: 8036: template 8036: struct __make_tuple 8036: : public __do_make_tuple::type>::type> 8036: { }; 8036: 8036: 8036: template 8036: struct __combine_tuples; 8036: 8036: template<> 8036: struct __combine_tuples<> 8036: { 8036: typedef tuple<> __type; 8036: }; 8036: 8036: template 8036: struct __combine_tuples> 8036: { 8036: typedef tuple<_Ts...> __type; 8036: }; 8036: 8036: template 8036: struct __combine_tuples, tuple<_T2s...>, _Rem...> 8036: { 8036: typedef typename __combine_tuples, 8036: _Rem...>::__type __type; 8036: }; 8036: 8036: 8036: template 8036: struct __tuple_cat_result 8036: { 8036: typedef typename __combine_tuples 8036: ::__type...>::__type __type; 8036: }; 8036: 8036: 8036: 8036: template 8036: struct __make_1st_indices; 8036: 8036: template<> 8036: struct __make_1st_indices<> 8036: { 8036: typedef std::_Index_tuple<> __type; 8036: }; 8036: 8036: template 8036: struct __make_1st_indices<_Tp, _Tpls...> 8036: { 8036: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct __tuple_concater; 8036: 8036: template 8036: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 8036: { 8036: template 8036: static constexpr _Ret 8036: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 8036: { 8036: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8036: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 8036: return __next::_S_do(std::forward<_Tpls>(__tps)..., 8036: std::forward<_Us>(__us)..., 8036: std::get<_Is>(std::forward<_Tp>(__tp))...); 8036: } 8036: }; 8036: 8036: template 8036: struct __tuple_concater<_Ret, std::_Index_tuple<>> 8036: { 8036: template 8036: static constexpr _Ret 8036: _S_do(_Us&&... __us) 8036: { 8036: return _Ret(std::forward<_Us>(__us)...); 8036: } 8036: }; 8036: 8036: 8036: template...>::value>::type> 8036: constexpr auto 8036: tuple_cat(_Tpls&&... __tpls) 8036: -> typename __tuple_cat_result<_Tpls...>::__type 8036: { 8036: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 8036: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8036: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 8036: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: constexpr tuple<_Elements&...> 8036: tie(_Elements&... __args) noexcept 8036: { return tuple<_Elements&...>(__args...); } 8036: 8036: 8036: template 8036: inline 8036: 8036: 8036: typename enable_if<__and_<__is_swappable<_Elements>...>::value 8036: >::type 8036: 8036: 8036: 8036: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: template 8036: typename enable_if...>::value>::type 8036: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct _Swallow_assign 8036: { 8036: template 8036: const _Swallow_assign& 8036: operator=(const _Tp&) const 8036: { return *this; } 8036: }; 8036: 8036: 8036: 8036: constexpr _Swallow_assign ignore{}; 8036: 8036: 8036: template 8036: struct uses_allocator, _Alloc> : true_type { }; 8036: 8036: 8036: template 8036: template 8036: inline 8036: pair<_T1, _T2>:: 8036: pair(piecewise_construct_t, 8036: tuple<_Args1...> __first, tuple<_Args2...> __second) 8036: : pair(__first, __second, 8036: typename _Build_index_tuple::__type(), 8036: typename _Build_index_tuple::__type()) 8036: { } 8036: 8036: template 8036: template 8036: inline 8036: pair<_T1, _T2>:: 8036: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 8036: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 8036: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 8036: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 8036: { } 8036: # 1711 "/usr/include/c++/8/tuple" 3 8036: 8036: } 8036: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: class multimap; 8036: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template , 8036: typename _Alloc = std::allocator > > 8036: class map 8036: { 8036: public: 8036: typedef _Key key_type; 8036: typedef _Tp mapped_type; 8036: typedef std::pair value_type; 8036: typedef _Compare key_compare; 8036: typedef _Alloc allocator_type; 8036: 8036: private: 8036: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 8036: public: 8036: class value_compare 8036: : public std::binary_function 8036: { 8036: friend class map<_Key, _Tp, _Compare, _Alloc>; 8036: protected: 8036: _Compare comp; 8036: 8036: value_compare(_Compare __c) 8036: : comp(__c) { } 8036: 8036: public: 8036: bool operator()(const value_type& __x, const value_type& __y) const 8036: { return comp(__x.first, __y.first); } 8036: }; 8036: 8036: private: 8036: 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind::other _Pair_alloc_type; 8036: 8036: typedef _Rb_tree, 8036: key_compare, _Pair_alloc_type> _Rep_type; 8036: 8036: 8036: _Rep_type _M_t; 8036: 8036: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8036: 8036: public: 8036: 8036: 8036: typedef typename _Alloc_traits::pointer pointer; 8036: typedef typename _Alloc_traits::const_pointer const_pointer; 8036: typedef typename _Alloc_traits::reference reference; 8036: typedef typename _Alloc_traits::const_reference const_reference; 8036: typedef typename _Rep_type::iterator iterator; 8036: typedef typename _Rep_type::const_iterator const_iterator; 8036: typedef typename _Rep_type::size_type size_type; 8036: typedef typename _Rep_type::difference_type difference_type; 8036: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8036: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8036: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 8036: map() = default; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: map(const _Compare& __comp, 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8036: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 8036: map(const map&) = default; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: map(map&&) = default; 8036: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 8036: map(initializer_list __l, 8036: const _Compare& __comp = _Compare(), 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8036: 8036: 8036: explicit 8036: map(const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8036: 8036: 8036: map(const map& __m, const allocator_type& __a) 8036: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8036: 8036: 8036: map(map&& __m, const allocator_type& __a) 8036: noexcept(is_nothrow_copy_constructible<_Compare>::value 8036: && _Alloc_traits::_S_always_equal()) 8036: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8036: 8036: 8036: map(initializer_list __l, const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8036: 8036: 8036: template 8036: map(_InputIterator __first, _InputIterator __last, 8036: const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_unique(__first, __last); } 8036: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: map(_InputIterator __first, _InputIterator __last) 8036: : _M_t() 8036: { _M_t._M_insert_unique(__first, __last); } 8036: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: map(_InputIterator __first, _InputIterator __last, 8036: const _Compare& __comp, 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_unique(__first, __last); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ~map() = default; 8036: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 8036: map& 8036: operator=(const map&) = default; 8036: 8036: 8036: map& 8036: operator=(map&&) = default; 8036: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 8036: map& 8036: operator=(initializer_list __l) 8036: { 8036: _M_t._M_assign_unique(__l.begin(), __l.end()); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_M_t.get_allocator()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: end() noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: bool 8036: empty() const noexcept 8036: { return _M_t.empty(); } 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return _M_t.size(); } 8036: 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return _M_t.max_size(); } 8036: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 8036: mapped_type& 8036: operator[](const key_type& __k) 8036: { 8036: 8036: 8036: 8036: iterator __i = lower_bound(__k); 8036: 8036: if (__i == end() || key_comp()(__k, (*__i).first)) 8036: 8036: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8036: std::tuple(__k), 8036: std::tuple<>()); 8036: 8036: 8036: 8036: return (*__i).second; 8036: } 8036: 8036: 8036: mapped_type& 8036: operator[](key_type&& __k) 8036: { 8036: 8036: 8036: 8036: iterator __i = lower_bound(__k); 8036: 8036: if (__i == end() || key_comp()(__k, (*__i).first)) 8036: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8036: std::forward_as_tuple(std::move(__k)), 8036: std::tuple<>()); 8036: return (*__i).second; 8036: } 8036: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 8036: mapped_type& 8036: at(const key_type& __k) 8036: { 8036: iterator __i = lower_bound(__k); 8036: if (__i == end() || key_comp()(__k, (*__i).first)) 8036: __throw_out_of_range(("map::at")); 8036: return (*__i).second; 8036: } 8036: 8036: const mapped_type& 8036: at(const key_type& __k) const 8036: { 8036: const_iterator __i = lower_bound(__k); 8036: if (__i == end() || key_comp()(__k, (*__i).first)) 8036: __throw_out_of_range(("map::at")); 8036: return (*__i).second; 8036: } 8036: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: std::pair 8036: emplace(_Args&&... __args) 8036: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8036: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: iterator 8036: emplace_hint(const_iterator __pos, _Args&&... __args) 8036: { 8036: return _M_t._M_emplace_hint_unique(__pos, 8036: std::forward<_Args>(__args)...); 8036: } 8036: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 8036: std::pair 8036: insert(const value_type& __x) 8036: { return _M_t._M_insert_unique(__x); } 8036: 8036: 8036: 8036: 8036: std::pair 8036: insert(value_type&& __x) 8036: { return _M_t._M_insert_unique(std::move(__x)); } 8036: 8036: template::value>::type> 8036: std::pair 8036: insert(_Pair&& __x) 8036: { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } 8036: # 828 "/usr/include/c++/8/bits/stl_map.h" 3 8036: void 8036: insert(std::initializer_list __list) 8036: { insert(__list.begin(), __list.end()); } 8036: # 857 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: 8036: insert(const_iterator __position, const value_type& __x) 8036: 8036: 8036: 8036: { return _M_t._M_insert_unique_(__position, __x); } 8036: 8036: 8036: 8036: 8036: iterator 8036: insert(const_iterator __position, value_type&& __x) 8036: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8036: 8036: template::value>::type> 8036: iterator 8036: insert(const_iterator __position, _Pair&& __x) 8036: { return _M_t._M_insert_unique_(__position, 8036: std::forward<_Pair>(__x)); } 8036: # 890 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: void 8036: insert(_InputIterator __first, _InputIterator __last) 8036: { _M_t._M_insert_unique(__first, __last); } 8036: # 1030 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: erase(const_iterator __position) 8036: { return _M_t.erase(__position); } 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iterator 8036: erase(iterator __position) 8036: { return _M_t.erase(__position); } 8036: # 1067 "/usr/include/c++/8/bits/stl_map.h" 3 8036: size_type 8036: erase(const key_type& __x) 8036: { return _M_t.erase(__x); } 8036: # 1087 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: erase(const_iterator __first, const_iterator __last) 8036: { return _M_t.erase(__first, __last); } 8036: # 1121 "/usr/include/c++/8/bits/stl_map.h" 3 8036: void 8036: swap(map& __x) 8036: noexcept(__is_nothrow_swappable<_Compare>::value) 8036: { _M_t.swap(__x._M_t); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: clear() noexcept 8036: { _M_t.clear(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: key_compare 8036: key_comp() const 8036: { return _M_t.key_comp(); } 8036: 8036: 8036: 8036: 8036: 8036: value_compare 8036: value_comp() const 8036: { return value_compare(_M_t.key_comp()); } 8036: # 1168 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: find(const key_type& __x) 8036: { return _M_t.find(__x); } 8036: # 1193 "/usr/include/c++/8/bits/stl_map.h" 3 8036: const_iterator 8036: find(const key_type& __x) const 8036: { return _M_t.find(__x); } 8036: # 1214 "/usr/include/c++/8/bits/stl_map.h" 3 8036: size_type 8036: count(const key_type& __x) const 8036: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8036: # 1238 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: lower_bound(const key_type& __x) 8036: { return _M_t.lower_bound(__x); } 8036: # 1263 "/usr/include/c++/8/bits/stl_map.h" 3 8036: const_iterator 8036: lower_bound(const key_type& __x) const 8036: { return _M_t.lower_bound(__x); } 8036: # 1283 "/usr/include/c++/8/bits/stl_map.h" 3 8036: iterator 8036: upper_bound(const key_type& __x) 8036: { return _M_t.upper_bound(__x); } 8036: # 1303 "/usr/include/c++/8/bits/stl_map.h" 3 8036: const_iterator 8036: upper_bound(const key_type& __x) const 8036: { return _M_t.upper_bound(__x); } 8036: # 1332 "/usr/include/c++/8/bits/stl_map.h" 3 8036: std::pair 8036: equal_range(const key_type& __x) 8036: { return _M_t.equal_range(__x); } 8036: # 1361 "/usr/include/c++/8/bits/stl_map.h" 3 8036: std::pair 8036: equal_range(const key_type& __x) const 8036: { return _M_t.equal_range(__x); } 8036: # 1378 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: friend bool 8036: operator==(const map<_K1, _T1, _C1, _A1>&, 8036: const map<_K1, _T1, _C1, _A1>&); 8036: 8036: template 8036: friend bool 8036: operator<(const map<_K1, _T1, _C1, _A1>&, 8036: const map<_K1, _T1, _C1, _A1>&); 8036: }; 8036: # 1433 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: inline bool 8036: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __x._M_t == __y._M_t; } 8036: # 1450 "/usr/include/c++/8/bits/stl_map.h" 3 8036: template 8036: inline bool 8036: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __x._M_t < __y._M_t; } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__x == __y); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __y < __x; } 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__y < __x); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: template 8036: inline void 8036: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 8036: map<_Key, _Tp, _Compare, _Alloc>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: # 1515 "/usr/include/c++/8/bits/stl_map.h" 3 8036: 8036: } 8036: # 62 "/usr/include/c++/8/map" 2 3 8036: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 8036: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: template 8036: class map; 8036: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template , 8036: typename _Alloc = std::allocator > > 8036: class multimap 8036: { 8036: public: 8036: typedef _Key key_type; 8036: typedef _Tp mapped_type; 8036: typedef std::pair value_type; 8036: typedef _Compare key_compare; 8036: typedef _Alloc allocator_type; 8036: 8036: private: 8036: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: public: 8036: class value_compare 8036: : public std::binary_function 8036: { 8036: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 8036: protected: 8036: _Compare comp; 8036: 8036: value_compare(_Compare __c) 8036: : comp(__c) { } 8036: 8036: public: 8036: bool operator()(const value_type& __x, const value_type& __y) const 8036: { return comp(__x.first, __y.first); } 8036: }; 8036: 8036: private: 8036: 8036: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8036: rebind::other _Pair_alloc_type; 8036: 8036: typedef _Rb_tree, 8036: key_compare, _Pair_alloc_type> _Rep_type; 8036: 8036: _Rep_type _M_t; 8036: 8036: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8036: 8036: public: 8036: 8036: 8036: typedef typename _Alloc_traits::pointer pointer; 8036: typedef typename _Alloc_traits::const_pointer const_pointer; 8036: typedef typename _Alloc_traits::reference reference; 8036: typedef typename _Alloc_traits::const_reference const_reference; 8036: typedef typename _Rep_type::iterator iterator; 8036: typedef typename _Rep_type::const_iterator const_iterator; 8036: typedef typename _Rep_type::size_type size_type; 8036: typedef typename _Rep_type::difference_type difference_type; 8036: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8036: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8036: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap() = default; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: explicit 8036: multimap(const _Compare& __comp, 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8036: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap(const multimap&) = default; 8036: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap(multimap&&) = default; 8036: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap(initializer_list __l, 8036: const _Compare& __comp = _Compare(), 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8036: 8036: 8036: explicit 8036: multimap(const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8036: 8036: 8036: multimap(const multimap& __m, const allocator_type& __a) 8036: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8036: 8036: 8036: multimap(multimap&& __m, const allocator_type& __a) 8036: noexcept(is_nothrow_copy_constructible<_Compare>::value 8036: && _Alloc_traits::_S_always_equal()) 8036: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8036: 8036: 8036: multimap(initializer_list __l, const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8036: 8036: 8036: template 8036: multimap(_InputIterator __first, _InputIterator __last, 8036: const allocator_type& __a) 8036: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_equal(__first, __last); } 8036: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: multimap(_InputIterator __first, _InputIterator __last) 8036: : _M_t() 8036: { _M_t._M_insert_equal(__first, __last); } 8036: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: multimap(_InputIterator __first, _InputIterator __last, 8036: const _Compare& __comp, 8036: const allocator_type& __a = allocator_type()) 8036: : _M_t(__comp, _Pair_alloc_type(__a)) 8036: { _M_t._M_insert_equal(__first, __last); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: ~multimap() = default; 8036: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap& 8036: operator=(const multimap&) = default; 8036: 8036: 8036: multimap& 8036: operator=(multimap&&) = default; 8036: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: multimap& 8036: operator=(initializer_list __l) 8036: { 8036: _M_t._M_assign_equal(__l.begin(), __l.end()); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: allocator_type 8036: get_allocator() const noexcept 8036: { return allocator_type(_M_t.get_allocator()); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: begin() noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: begin() const noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: iterator 8036: end() noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: end() const noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rbegin() noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rbegin() const noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: reverse_iterator 8036: rend() noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: rend() const noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cbegin() const noexcept 8036: { return _M_t.begin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_iterator 8036: cend() const noexcept 8036: { return _M_t.end(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crbegin() const noexcept 8036: { return _M_t.rbegin(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const_reverse_iterator 8036: crend() const noexcept 8036: { return _M_t.rend(); } 8036: 8036: 8036: 8036: 8036: bool 8036: empty() const noexcept 8036: { return _M_t.empty(); } 8036: 8036: 8036: size_type 8036: size() const noexcept 8036: { return _M_t.size(); } 8036: 8036: 8036: size_type 8036: max_size() const noexcept 8036: { return _M_t.max_size(); } 8036: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: iterator 8036: emplace(_Args&&... __args) 8036: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8036: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: iterator 8036: emplace_hint(const_iterator __pos, _Args&&... __args) 8036: { 8036: return _M_t._M_emplace_hint_equal(__pos, 8036: std::forward<_Args>(__args)...); 8036: } 8036: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: insert(const value_type& __x) 8036: { return _M_t._M_insert_equal(__x); } 8036: 8036: 8036: 8036: 8036: iterator 8036: insert(value_type&& __x) 8036: { return _M_t._M_insert_equal(std::move(__x)); } 8036: 8036: template::value>::type> 8036: iterator 8036: insert(_Pair&& __x) 8036: { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } 8036: # 577 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: 8036: insert(const_iterator __position, const value_type& __x) 8036: 8036: 8036: 8036: { return _M_t._M_insert_equal_(__position, __x); } 8036: 8036: 8036: 8036: 8036: iterator 8036: insert(const_iterator __position, value_type&& __x) 8036: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8036: 8036: template::value>::type> 8036: iterator 8036: insert(const_iterator __position, _Pair&& __x) 8036: { return _M_t._M_insert_equal_(__position, 8036: std::forward<_Pair>(__x)); } 8036: # 611 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: void 8036: insert(_InputIterator __first, _InputIterator __last) 8036: { _M_t._M_insert_equal(__first, __last); } 8036: # 624 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: void 8036: insert(initializer_list __l) 8036: { this->insert(__l.begin(), __l.end()); } 8036: # 701 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: erase(const_iterator __position) 8036: { return _M_t.erase(__position); } 8036: 8036: 8036: __attribute ((__abi_tag__ ("cxx11"))) 8036: iterator 8036: erase(iterator __position) 8036: { return _M_t.erase(__position); } 8036: # 738 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: size_type 8036: erase(const key_type& __x) 8036: { return _M_t.erase(__x); } 8036: # 759 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: erase(const_iterator __first, const_iterator __last) 8036: { return _M_t.erase(__first, __last); } 8036: # 796 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: void 8036: swap(multimap& __x) 8036: noexcept(__is_nothrow_swappable<_Compare>::value) 8036: { _M_t.swap(__x._M_t); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: void 8036: clear() noexcept 8036: { _M_t.clear(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: key_compare 8036: key_comp() const 8036: { return _M_t.key_comp(); } 8036: 8036: 8036: 8036: 8036: 8036: value_compare 8036: value_comp() const 8036: { return value_compare(_M_t.key_comp()); } 8036: # 842 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: find(const key_type& __x) 8036: { return _M_t.find(__x); } 8036: # 866 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: const_iterator 8036: find(const key_type& __x) const 8036: { return _M_t.find(__x); } 8036: # 884 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: size_type 8036: count(const key_type& __x) const 8036: { return _M_t.count(__x); } 8036: # 908 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: lower_bound(const key_type& __x) 8036: { return _M_t.lower_bound(__x); } 8036: # 933 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: const_iterator 8036: lower_bound(const key_type& __x) const 8036: { return _M_t.lower_bound(__x); } 8036: # 953 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: iterator 8036: upper_bound(const key_type& __x) 8036: { return _M_t.upper_bound(__x); } 8036: # 973 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: const_iterator 8036: upper_bound(const key_type& __x) const 8036: { return _M_t.upper_bound(__x); } 8036: # 1000 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: std::pair 8036: equal_range(const key_type& __x) 8036: { return _M_t.equal_range(__x); } 8036: # 1027 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: std::pair 8036: equal_range(const key_type& __x) const 8036: { return _M_t.equal_range(__x); } 8036: # 1044 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: friend bool 8036: operator==(const multimap<_K1, _T1, _C1, _A1>&, 8036: const multimap<_K1, _T1, _C1, _A1>&); 8036: 8036: template 8036: friend bool 8036: operator<(const multimap<_K1, _T1, _C1, _A1>&, 8036: const multimap<_K1, _T1, _C1, _A1>&); 8036: }; 8036: # 1098 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: inline bool 8036: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __x._M_t == __y._M_t; } 8036: # 1115 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: template 8036: inline bool 8036: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __x._M_t < __y._M_t; } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__x == __y); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return __y < __x; } 8036: 8036: 8036: template 8036: inline bool 8036: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__y < __x); } 8036: 8036: 8036: template 8036: inline bool 8036: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: { return !(__x < __y); } 8036: 8036: 8036: template 8036: inline void 8036: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8036: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8036: noexcept(noexcept(__x.swap(__y))) 8036: { __x.swap(__y); } 8036: 8036: 8036: # 1180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8036: 8036: } 8036: # 63 "/usr/include/c++/8/map" 2 3 8036: # 56 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct QMetaTypeId2; 8036: 8036: template 8036: inline constexpr int qMetaTypeId(); 8036: # 216 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: class QDataStream; 8036: class QMetaTypeInterface; 8036: struct QMetaObject; 8036: 8036: namespace QtPrivate 8036: { 8036: 8036: 8036: 8036: 8036: template 8036: To convertImplicit(const From& from) 8036: { 8036: return from; 8036: } 8036: 8036: 8036: struct AbstractDebugStreamFunction 8036: { 8036: typedef void (*Stream)(const AbstractDebugStreamFunction *, QDebug&, const void *); 8036: typedef void (*Destroy)(AbstractDebugStreamFunction *); 8036: explicit AbstractDebugStreamFunction(Stream s = nullptr, Destroy d = nullptr) 8036: : stream(s), destroy(d) {} 8036: AbstractDebugStreamFunction(const AbstractDebugStreamFunction &) = delete; AbstractDebugStreamFunction &operator=(const AbstractDebugStreamFunction &) = delete; 8036: Stream stream; 8036: Destroy destroy; 8036: }; 8036: 8036: template 8036: struct BuiltInDebugStreamFunction : public AbstractDebugStreamFunction 8036: { 8036: BuiltInDebugStreamFunction() 8036: : AbstractDebugStreamFunction(stream, destroy) {} 8036: static void stream(const AbstractDebugStreamFunction *, QDebug& dbg, const void *r) 8036: { 8036: const T *rhs = static_cast(r); 8036: operator<<(dbg, *rhs); 8036: } 8036: 8036: static void destroy(AbstractDebugStreamFunction *_this) 8036: { 8036: delete static_cast(_this); 8036: } 8036: }; 8036: 8036: 8036: struct AbstractComparatorFunction 8036: { 8036: typedef bool (*LessThan)(const AbstractComparatorFunction *, const void *, const void *); 8036: typedef bool (*Equals)(const AbstractComparatorFunction *, const void *, const void *); 8036: typedef void (*Destroy)(AbstractComparatorFunction *); 8036: explicit AbstractComparatorFunction(LessThan lt = nullptr, Equals e = nullptr, Destroy d = nullptr) 8036: : lessThan(lt), equals(e), destroy(d) {} 8036: AbstractComparatorFunction(const AbstractComparatorFunction &) = delete; AbstractComparatorFunction &operator=(const AbstractComparatorFunction &) = delete; 8036: LessThan lessThan; 8036: Equals equals; 8036: Destroy destroy; 8036: }; 8036: 8036: template 8036: struct BuiltInComparatorFunction : public AbstractComparatorFunction 8036: { 8036: BuiltInComparatorFunction() 8036: : AbstractComparatorFunction(lessThan, equals, destroy) {} 8036: static bool lessThan(const AbstractComparatorFunction *, const void *l, const void *r) 8036: { 8036: const T *lhs = static_cast(l); 8036: const T *rhs = static_cast(r); 8036: return *lhs < *rhs; 8036: } 8036: 8036: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8036: { 8036: const T *lhs = static_cast(l); 8036: const T *rhs = static_cast(r); 8036: return *lhs == *rhs; 8036: } 8036: 8036: static void destroy(AbstractComparatorFunction *_this) 8036: { 8036: delete static_cast(_this); 8036: } 8036: }; 8036: 8036: template 8036: struct BuiltInEqualsComparatorFunction : public AbstractComparatorFunction 8036: { 8036: BuiltInEqualsComparatorFunction() 8036: : AbstractComparatorFunction(nullptr, equals, destroy) {} 8036: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8036: { 8036: const T *lhs = static_cast(l); 8036: const T *rhs = static_cast(r); 8036: return *lhs == *rhs; 8036: } 8036: 8036: static void destroy(AbstractComparatorFunction *_this) 8036: { 8036: delete static_cast(_this); 8036: } 8036: }; 8036: 8036: struct AbstractConverterFunction 8036: { 8036: typedef bool (*Converter)(const AbstractConverterFunction *, const void *, void*); 8036: explicit AbstractConverterFunction(Converter c = nullptr) 8036: : convert(c) {} 8036: AbstractConverterFunction(const AbstractConverterFunction &) = delete; AbstractConverterFunction &operator=(const AbstractConverterFunction &) = delete; 8036: Converter convert; 8036: }; 8036: 8036: template 8036: struct ConverterMemberFunction : public AbstractConverterFunction 8036: { 8036: explicit ConverterMemberFunction(To(From::*function)() const) 8036: : AbstractConverterFunction(convert), 8036: m_function(function) {} 8036: ~ConverterMemberFunction(); 8036: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8036: { 8036: const From *f = static_cast(in); 8036: To *t = static_cast(out); 8036: const ConverterMemberFunction *_typedThis = 8036: static_cast(_this); 8036: *t = (f->*_typedThis->m_function)(); 8036: return true; 8036: } 8036: 8036: To(From::* const m_function)() const; 8036: }; 8036: 8036: template 8036: struct ConverterMemberFunctionOk : public AbstractConverterFunction 8036: { 8036: explicit ConverterMemberFunctionOk(To(From::*function)(bool *) const) 8036: : AbstractConverterFunction(convert), 8036: m_function(function) {} 8036: ~ConverterMemberFunctionOk(); 8036: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8036: { 8036: const From *f = static_cast(in); 8036: To *t = static_cast(out); 8036: bool ok = false; 8036: const ConverterMemberFunctionOk *_typedThis = 8036: static_cast(_this); 8036: *t = (f->*_typedThis->m_function)(&ok); 8036: if (!ok) 8036: *t = To(); 8036: return ok; 8036: } 8036: 8036: To(From::* const m_function)(bool*) const; 8036: }; 8036: 8036: template 8036: struct ConverterFunctor : public AbstractConverterFunction 8036: { 8036: explicit ConverterFunctor(UnaryFunction function) 8036: : AbstractConverterFunction(convert), 8036: m_function(function) {} 8036: ~ConverterFunctor(); 8036: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8036: { 8036: const From *f = static_cast(in); 8036: To *t = static_cast(out); 8036: const ConverterFunctor *_typedThis = 8036: static_cast(_this); 8036: *t = _typedThis->m_function(*f); 8036: return true; 8036: } 8036: 8036: UnaryFunction m_function; 8036: }; 8036: 8036: template 8036: struct ValueTypeIsMetaType; 8036: template 8036: struct AssociativeValueTypeIsMetaType; 8036: template 8036: struct IsMetaTypePair; 8036: template 8036: struct MetaTypeSmartPointerHelper; 8036: } 8036: 8036: class __attribute__((visibility("default"))) QMetaType { 8036: enum ExtensionFlag { NoExtensionFlags, 8036: CreateEx = 0x1, DestroyEx = 0x2, 8036: ConstructEx = 0x4, DestructEx = 0x8, 8036: NameEx = 0x10, SizeEx = 0x20, 8036: CtorEx = 0x40, DtorEx = 0x80, 8036: FlagsEx = 0x100, MetaObjectEx = 0x200 8036: }; 8036: public: 8036: 8036: 8036: enum Type { 8036: 8036: Void = 43, Bool = 1, Int = 2, UInt = 3, LongLong = 4, ULongLong = 5, Double = 6, Long = 32, Short = 33, Char = 34, ULong = 35, UShort = 36, UChar = 37, Float = 38, SChar = 40, Nullptr = 51, VoidStar = 31, QChar = 7, QString = 10, QStringList = 11, QByteArray = 12, QBitArray = 13, QDate = 14, QTime = 15, QDateTime = 16, QUrl = 17, QLocale = 18, QRect = 19, QRectF = 20, QSize = 21, QSizeF = 22, QLine = 23, QLineF = 24, QPoint = 25, QPointF = 26, QRegExp = 27, QEasingCurve = 29, QUuid = 30, QVariant = 41, QModelIndex = 42, QRegularExpression = 44, QJsonValue = 45, QJsonObject = 46, QJsonArray = 47, QJsonDocument = 48, QPersistentModelIndex = 50, QObjectStar = 39, QVariantMap = 8, QVariantList = 9, QVariantHash = 28, QByteArrayList = 49, QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, QIcon = 69, QImage = 70, QPolygon = 71, QRegion = 72, QBitmap = 73, QCursor = 74, QKeySequence = 75, QPen = 76, QTextLength = 77, QTextFormat = 78, QMatrix = 79, QTransform = 80, QMatrix4x4 = 81, QVector2D = 82, QVector3D = 83, QVector4D = 84, QQuaternion = 85, QPolygonF = 86, QSizePolicy = 121, 8036: 8036: FirstCoreType = Bool, 8036: LastCoreType = Nullptr, 8036: FirstGuiType = QFont, 8036: LastGuiType = QPolygonF, 8036: FirstWidgetsType = QSizePolicy, 8036: LastWidgetsType = QSizePolicy, 8036: HighestInternalId = LastWidgetsType, 8036: 8036: QReal = sizeof(qreal) == sizeof(double) ? Double : Float, 8036: 8036: UnknownType = 0, 8036: User = 1024 8036: }; 8036: # 455 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: enum TypeFlag { 8036: NeedsConstruction = 0x1, 8036: NeedsDestruction = 0x2, 8036: MovableType = 0x4, 8036: PointerToQObject = 0x8, 8036: IsEnumeration = 0x10, 8036: SharedPointerToQObject = 0x20, 8036: WeakPointerToQObject = 0x40, 8036: TrackingPointerToQObject = 0x80, 8036: WasDeclaredAsMetaType = 0x100, 8036: IsGadget = 0x200 8036: }; 8036: typedef QFlags TypeFlags; 8036: 8036: typedef void (*Deleter)(void *); 8036: typedef void *(*Creator)(const void *); 8036: 8036: typedef void (*Destructor)(void *); 8036: typedef void *(*Constructor)(void *, const void *); 8036: 8036: typedef void (*SaveOperator)(QDataStream &, const void *); 8036: typedef void (*LoadOperator)(QDataStream &, void *); 8036: 8036: static void registerStreamOperators(const char *typeName, SaveOperator saveOp, 8036: LoadOperator loadOp); 8036: static void registerStreamOperators(int type, SaveOperator saveOp, 8036: LoadOperator loadOp); 8036: 8036: static int registerType(const char *typeName, Deleter deleter, 8036: Creator creator); 8036: static int registerType(const char *typeName, Deleter deleter, 8036: Creator creator, 8036: Destructor destructor, 8036: Constructor constructor, 8036: int size, 8036: QMetaType::TypeFlags flags, 8036: const QMetaObject *metaObject); 8036: static bool unregisterType(int type); 8036: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Deleter deleter, 8036: Creator creator, 8036: Destructor destructor, 8036: Constructor constructor, 8036: int size, 8036: QMetaType::TypeFlags flags, 8036: const QMetaObject *metaObject); 8036: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Destructor destructor, 8036: Constructor constructor, 8036: int size, 8036: QMetaType::TypeFlags flags, 8036: const QMetaObject *metaObject); 8036: static int registerTypedef(const char *typeName, int aliasId); 8036: static int registerNormalizedTypedef(const ::QByteArray &normalizedTypeName, int aliasId); 8036: static int type(const char *typeName); 8036: 8036: static int type(const ::QByteArray &typeName); 8036: static const char *typeName(int type); 8036: static int sizeOf(int type); 8036: static TypeFlags typeFlags(int type); 8036: static const QMetaObject *metaObjectForType(int type); 8036: static bool isRegistered(int type); 8036: static void *create(int type, const void *copy = nullptr); 8036: 8036: 8036: 8036: 8036: static void destroy(int type, void *data); 8036: static void *construct(int type, void *where, const void *copy); 8036: static void destruct(int type, void *where); 8036: 8036: 8036: static bool save(QDataStream &stream, int type, const void *data); 8036: static bool load(QDataStream &stream, int type, void *data); 8036: 8036: 8036: explicit QMetaType(const int type); 8036: inline ~QMetaType(); 8036: 8036: inline bool isValid() const; 8036: inline bool isRegistered() const; 8036: inline int sizeOf() const; 8036: inline TypeFlags flags() const; 8036: inline const QMetaObject *metaObject() const; 8036: 8036: inline void *create(const void *copy = nullptr) const; 8036: inline void destroy(void *data) const; 8036: inline void *construct(void *where, const void *copy = nullptr) const; 8036: inline void destruct(void *data) const; 8036: 8036: public: 8036: template 8036: static bool registerComparators() 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerComparators: The type must be a custom type.") 8036: ; 8036: 8036: const int typeId = qMetaTypeId(); 8036: static const QtPrivate::BuiltInComparatorFunction f; 8036: return registerComparatorFunction( &f, typeId); 8036: } 8036: template 8036: static bool registerEqualsComparator() 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerEqualsComparator: The type must be a custom type.") 8036: ; 8036: const int typeId = qMetaTypeId(); 8036: static const QtPrivate::BuiltInEqualsComparatorFunction f; 8036: return registerComparatorFunction( &f, typeId); 8036: } 8036: 8036: template 8036: static bool hasRegisteredComparators() 8036: { 8036: return hasRegisteredComparators(qMetaTypeId()); 8036: } 8036: static bool hasRegisteredComparators(int typeId); 8036: 8036: 8036: 8036: template 8036: static bool registerDebugStreamOperator() 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerDebugStreamOperator: The type must be a custom type.") 8036: ; 8036: 8036: const int typeId = qMetaTypeId(); 8036: static const QtPrivate::BuiltInDebugStreamFunction f; 8036: return registerDebugStreamOperatorFunction(&f, typeId); 8036: } 8036: template 8036: static bool hasRegisteredDebugStreamOperator() 8036: { 8036: return hasRegisteredDebugStreamOperator(qMetaTypeId()); 8036: } 8036: static bool hasRegisteredDebugStreamOperator(int typeId); 8036: 8036: 8036: 8036: template 8036: static bool registerConverter() 8036: { 8036: return registerConverter(QtPrivate::convertImplicit); 8036: } 8036: # 607 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: template 8036: static bool registerConverter(To(From::*function)() const) 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8036: ; 8036: 8036: const int fromTypeId = qMetaTypeId(); 8036: const int toTypeId = qMetaTypeId(); 8036: static const QtPrivate::ConverterMemberFunction f(function); 8036: return registerConverterFunction(&f, fromTypeId, toTypeId); 8036: } 8036: 8036: 8036: template 8036: static bool registerConverter(To(From::*function)(bool*) const) 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8036: ; 8036: 8036: const int fromTypeId = qMetaTypeId(); 8036: const int toTypeId = qMetaTypeId(); 8036: static const QtPrivate::ConverterMemberFunctionOk f(function); 8036: return registerConverterFunction(&f, fromTypeId, toTypeId); 8036: } 8036: 8036: 8036: template 8036: static bool registerConverter(UnaryFunction function) 8036: { 8036: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8036: ; 8036: 8036: const int fromTypeId = qMetaTypeId(); 8036: const int toTypeId = qMetaTypeId(); 8036: static const QtPrivate::ConverterFunctor f(function); 8036: return registerConverterFunction(&f, fromTypeId, toTypeId); 8036: } 8036: 8036: 8036: static bool convert(const void *from, int fromTypeId, void *to, int toTypeId); 8036: static bool compare(const void *lhs, const void *rhs, int typeId, int* result); 8036: static bool equals(const void *lhs, const void *rhs, int typeId, int* result); 8036: static bool debugStream(QDebug& dbg, const void *rhs, int typeId); 8036: 8036: template 8036: static bool hasRegisteredConverterFunction() 8036: { 8036: return hasRegisteredConverterFunction(qMetaTypeId(), qMetaTypeId()); 8036: } 8036: 8036: static bool hasRegisteredConverterFunction(int fromTypeId, int toTypeId); 8036: 8036: private: 8036: static QMetaType typeInfo(const int type); 8036: inline QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8036: Creator creator, 8036: Deleter deleter, 8036: SaveOperator saveOp, 8036: LoadOperator loadOp, 8036: Constructor constructor, 8036: Destructor destructor, 8036: uint sizeOf, 8036: uint theTypeFlags, 8036: int typeId, 8036: const QMetaObject *metaObject); 8036: QMetaType(const QMetaType &other); 8036: QMetaType &operator =(const QMetaType &); 8036: inline bool isExtended(const ExtensionFlag flag) const { return m_extensionFlags & flag; } 8036: 8036: 8036: void ctor(const QMetaTypeInterface *info); 8036: void dtor(); 8036: uint sizeExtended() const; 8036: QMetaType::TypeFlags flagsExtended() const; 8036: const QMetaObject *metaObjectExtended() const; 8036: void *createExtended(const void *copy = nullptr) const; 8036: void destroyExtended(void *data) const; 8036: void *constructExtended(void *where, const void *copy = nullptr) const; 8036: void destructExtended(void *data) const; 8036: 8036: static bool registerComparatorFunction(const QtPrivate::AbstractComparatorFunction *f, int type); 8036: 8036: static bool registerDebugStreamOperatorFunction(const QtPrivate::AbstractDebugStreamFunction *f, int type); 8036: 8036: 8036: 8036: 8036: 8036: template friend struct QtPrivate::ValueTypeIsMetaType; 8036: template friend struct QtPrivate::ConverterMemberFunction; 8036: template friend struct QtPrivate::ConverterMemberFunctionOk; 8036: template friend struct QtPrivate::ConverterFunctor; 8036: template friend struct QtPrivate::AssociativeValueTypeIsMetaType; 8036: template friend struct QtPrivate::IsMetaTypePair; 8036: template friend struct QtPrivate::MetaTypeSmartPointerHelper; 8036: 8036: 8036: 8036: 8036: static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); 8036: static void unregisterConverterFunction(int from, int to); 8036: private: 8036: 8036: Creator m_creator_unused; 8036: Deleter m_deleter_unused; 8036: SaveOperator m_saveOp; 8036: LoadOperator m_loadOp; 8036: Constructor m_constructor; 8036: Destructor m_destructor; 8036: void *m_extension; 8036: uint m_size; 8036: uint m_typeFlags; 8036: uint m_extensionFlags; 8036: int m_typeId; 8036: const QMetaObject *m_metaObject; 8036: }; 8036: 8036: 8036: 8036: constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QMetaType::TypeFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QMetaType::TypeFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: namespace QtPrivate { 8036: 8036: template 8036: ConverterMemberFunction::~ConverterMemberFunction() 8036: { 8036: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8036: } 8036: template 8036: ConverterMemberFunctionOk::~ConverterMemberFunctionOk() 8036: { 8036: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8036: } 8036: template 8036: ConverterFunctor::~ConverterFunctor() 8036: { 8036: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8036: } 8036: 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: namespace QtMetaTypePrivate { 8036: template 8036: struct QMetaTypeFunctionHelper { 8036: static void Destruct(void *t) 8036: { 8036: (void)t; 8036: static_cast(t)->~T(); 8036: } 8036: 8036: static void *Construct(void *where, const void *t) 8036: { 8036: if (t) 8036: return new (where) T(*static_cast(t)); 8036: return new (where) T; 8036: } 8036: 8036: static void Save(QDataStream &stream, const void *t) 8036: { 8036: stream << *static_cast(t); 8036: } 8036: 8036: static void Load(QDataStream &stream, void *t) 8036: { 8036: stream >> *static_cast(t); 8036: } 8036: 8036: }; 8036: 8036: template 8036: struct QMetaTypeFunctionHelper { 8036: static void Destruct(void *) {} 8036: static void *Construct(void *, const void *) { return nullptr; } 8036: 8036: static void Save(QDataStream &, const void *) {} 8036: static void Load(QDataStream &, void *) {} 8036: 8036: }; 8036: template <> 8036: struct QMetaTypeFunctionHelper 8036: : public QMetaTypeFunctionHelper 8036: {}; 8036: 8036: struct VariantData 8036: { 8036: VariantData(const int metaTypeId_, 8036: const void *data_, 8036: const uint flags_) 8036: : metaTypeId(metaTypeId_) 8036: , data(data_) 8036: , flags(flags_) 8036: { 8036: } 8036: VariantData(const VariantData &other) 8036: : metaTypeId(other.metaTypeId), data(other.data), flags(other.flags){} 8036: const int metaTypeId; 8036: const void *data; 8036: const uint flags; 8036: private: 8036: 8036: VariantData &operator=(const VariantData &) = delete; 8036: }; 8036: 8036: template 8036: struct IteratorOwnerCommon 8036: { 8036: static void assign(void **ptr, const_iterator iterator) 8036: { 8036: *ptr = new const_iterator(iterator); 8036: } 8036: static void assign(void **ptr, void * const * src) 8036: { 8036: *ptr = new const_iterator(*static_cast(*src)); 8036: } 8036: 8036: static void advance(void **iterator, int step) 8036: { 8036: const_iterator &it = *static_cast(*iterator); 8036: std::advance(it, step); 8036: } 8036: 8036: static void destroy(void **ptr) 8036: { 8036: delete static_cast(*ptr); 8036: } 8036: 8036: static bool equal(void * const *it, void * const *other) 8036: { 8036: return *static_cast(*it) == *static_cast(*other); 8036: } 8036: }; 8036: 8036: template 8036: struct IteratorOwner : IteratorOwnerCommon 8036: { 8036: static const void *getData(void * const *iterator) 8036: { 8036: return &**static_cast(*iterator); 8036: } 8036: 8036: static const void *getData(const_iterator it) 8036: { 8036: return &*it; 8036: } 8036: }; 8036: 8036: struct __attribute__((visibility("default"))) VectorBoolElements 8036: { 8036: static const bool true_element; 8036: static const bool false_element; 8036: }; 8036: 8036: template<> 8036: struct IteratorOwner::const_iterator> : IteratorOwnerCommon::const_iterator> 8036: { 8036: public: 8036: static const void *getData(void * const *iterator) 8036: { 8036: return **static_cast::const_iterator*>(*iterator) ? 8036: &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8036: } 8036: 8036: static const void *getData(const std::vector::const_iterator& it) 8036: { 8036: return *it ? &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8036: } 8036: }; 8036: 8036: template 8036: struct IteratorOwner 8036: { 8036: private: 8036: 8036: 8036: 8036: struct Dummy {}; 8036: typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; 8036: public: 8036: static void assign(void **ptr, const value_type_OR_Dummy *iterator ) 8036: { 8036: *ptr = const_cast(iterator); 8036: } 8036: static void assign(void **ptr, void * const * src) 8036: { 8036: *ptr = static_cast(*src); 8036: } 8036: 8036: static void advance(void **iterator, int step) 8036: { 8036: value_type *it = static_cast(*iterator); 8036: std::advance(it, step); 8036: *iterator = it; 8036: } 8036: 8036: static void destroy(void **) 8036: { 8036: } 8036: 8036: static const void *getData(void * const *iterator) 8036: { 8036: return *iterator; 8036: } 8036: 8036: static const void *getData(const value_type_OR_Dummy *it) 8036: { 8036: return it; 8036: } 8036: 8036: static bool equal(void * const *it, void * const *other) 8036: { 8036: return static_cast(*it) == static_cast(*other); 8036: } 8036: }; 8036: 8036: enum IteratorCapability 8036: { 8036: ForwardCapability = 1, 8036: BiDirectionalCapability = 2, 8036: RandomAccessCapability = 4 8036: }; 8036: 8036: template::iterator_category> 8036: struct CapabilitiesImpl; 8036: 8036: template 8036: struct CapabilitiesImpl 8036: { enum { IteratorCapabilities = ForwardCapability }; }; 8036: template 8036: struct CapabilitiesImpl 8036: { enum { IteratorCapabilities = BiDirectionalCapability | ForwardCapability }; }; 8036: template 8036: struct CapabilitiesImpl 8036: { enum { IteratorCapabilities = RandomAccessCapability | BiDirectionalCapability | ForwardCapability }; }; 8036: 8036: template 8036: struct ContainerAPI : CapabilitiesImpl 8036: { 8036: static int size(const T *t) { return int(std::distance(t->begin(), t->end())); } 8036: }; 8036: 8036: template 8036: struct ContainerAPI > : CapabilitiesImpl > 8036: { static int size(const QList *t) { return t->size(); } }; 8036: 8036: template 8036: struct ContainerAPI > : CapabilitiesImpl > 8036: { static int size(const QVector *t) { return t->size(); } }; 8036: 8036: template 8036: struct ContainerAPI > : CapabilitiesImpl > 8036: { static int size(const std::vector *t) { return int(t->size()); } }; 8036: 8036: template 8036: struct ContainerAPI > : CapabilitiesImpl > 8036: { static int size(const std::list *t) { return int(t->size()); } }; 8036: 8036: class QSequentialIterableImpl 8036: { 8036: public: 8036: const void * _iterable; 8036: void *_iterator; 8036: int _metaType_id; 8036: uint _metaType_flags; 8036: uint _iteratorCapabilities; 8036: typedef int(*sizeFunc)(const void *p); 8036: typedef const void * (*atFunc)(const void *p, int); 8036: typedef void (*moveIteratorFunc)(const void *p, void **); 8036: typedef void (*advanceFunc)(void **p, int); 8036: typedef VariantData (*getFunc)( void * const *p, int metaTypeId, uint flags); 8036: typedef void (*destroyIterFunc)(void **p); 8036: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8036: typedef void (*copyIterFunc)(void **, void * const *); 8036: 8036: sizeFunc _size; 8036: atFunc _at; 8036: moveIteratorFunc _moveToBegin; 8036: moveIteratorFunc _moveToEnd; 8036: advanceFunc _advance; 8036: getFunc _get; 8036: destroyIterFunc _destroyIter; 8036: equalIterFunc _equalIter; 8036: copyIterFunc _copyIter; 8036: 8036: template 8036: static int sizeImpl(const void *p) 8036: { return ContainerAPI::size(static_cast(p)); } 8036: 8036: template 8036: static const void* atImpl(const void *p, int idx) 8036: { 8036: typename T::const_iterator i = static_cast(p)->begin(); 8036: std::advance(i, idx); 8036: return IteratorOwner::getData(i); 8036: } 8036: 8036: template 8036: static void moveToBeginImpl(const void *container, void **iterator) 8036: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8036: 8036: template 8036: static void moveToEndImpl(const void *container, void **iterator) 8036: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8036: 8036: template 8036: static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) 8036: { return VariantData(metaTypeId, IteratorOwner::getData(iterator), flags); } 8036: 8036: public: 8036: template QSequentialIterableImpl(const T*p) 8036: : _iterable(p) 8036: , _iterator(nullptr) 8036: , _metaType_id(qMetaTypeId()) 8036: , _metaType_flags(QTypeInfo::isPointer) 8036: , _iteratorCapabilities(ContainerAPI::IteratorCapabilities) 8036: , _size(sizeImpl) 8036: , _at(atImpl) 8036: , _moveToBegin(moveToBeginImpl) 8036: , _moveToEnd(moveToEndImpl) 8036: , _advance(IteratorOwner::advance) 8036: , _get(getImpl) 8036: , _destroyIter(IteratorOwner::destroy) 8036: , _equalIter(IteratorOwner::equal) 8036: , _copyIter(IteratorOwner::assign) 8036: { 8036: } 8036: 8036: QSequentialIterableImpl() 8036: : _iterable(nullptr) 8036: , _iterator(nullptr) 8036: , _metaType_id(QMetaType::UnknownType) 8036: , _metaType_flags(0) 8036: , _iteratorCapabilities(0) 8036: , _size(nullptr) 8036: , _at(nullptr) 8036: , _moveToBegin(nullptr) 8036: , _moveToEnd(nullptr) 8036: , _advance(nullptr) 8036: , _get(nullptr) 8036: , _destroyIter(nullptr) 8036: , _equalIter(nullptr) 8036: , _copyIter(nullptr) 8036: { 8036: } 8036: 8036: inline void moveToBegin() { _moveToBegin(_iterable, &_iterator); } 8036: inline void moveToEnd() { _moveToEnd(_iterable, &_iterator); } 8036: inline bool equal(const QSequentialIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8036: inline QSequentialIterableImpl &advance(int i) { 8036: do { } while ((false) && (i > 0 || _iteratorCapabilities & BiDirectionalCapability)); 8036: _advance(&_iterator, i); 8036: return *this; 8036: } 8036: 8036: inline VariantData getCurrent() const { return _get(&_iterator, _metaType_id, _metaType_flags); } 8036: 8036: VariantData at(int idx) const 8036: { return VariantData(_metaType_id, _at(_iterable, idx), _metaType_flags); } 8036: 8036: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8036: 8036: inline void destroyIter() { _destroyIter(&_iterator); } 8036: 8036: void copy(const QSequentialIterableImpl &other) 8036: { 8036: *this = other; 8036: _copyIter(&_iterator, &other._iterator); 8036: } 8036: }; 8036: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QSequentialIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QSequentialIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QSequentialIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QSequentialIterableImpl"; } }; namespace QtMetaTypePrivate { 8036: 8036: template 8036: struct QSequentialIterableConvertFunctor 8036: { 8036: QSequentialIterableImpl operator()(const From &f) const 8036: { 8036: return QSequentialIterableImpl(&f); 8036: } 8036: }; 8036: } 8036: 8036: namespace QtMetaTypePrivate { 8036: template::value> 8036: struct AssociativeContainerAccessor 8036: { 8036: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8036: { 8036: return it.key(); 8036: } 8036: 8036: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8036: { 8036: return it.value(); 8036: } 8036: }; 8036: 8036: template >::value> 8036: struct StlStyleAssociativeContainerAccessor; 8036: 8036: template 8036: struct StlStyleAssociativeContainerAccessor 8036: { 8036: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8036: { 8036: return it->first; 8036: } 8036: 8036: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8036: { 8036: return it->second; 8036: } 8036: }; 8036: 8036: template 8036: struct AssociativeContainerAccessor : public StlStyleAssociativeContainerAccessor 8036: { 8036: }; 8036: 8036: class QAssociativeIterableImpl 8036: { 8036: public: 8036: const void *_iterable; 8036: void *_iterator; 8036: int _metaType_id_key; 8036: uint _metaType_flags_key; 8036: int _metaType_id_value; 8036: uint _metaType_flags_value; 8036: typedef int(*sizeFunc)(const void *p); 8036: typedef void (*findFunc)(const void *container, const void *p, void **iterator); 8036: typedef void (*beginFunc)(const void *p, void **); 8036: typedef void (*advanceFunc)(void **p, int); 8036: typedef VariantData (*getFunc)(void * const *p, int metaTypeId, uint flags); 8036: typedef void (*destroyIterFunc)(void **p); 8036: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8036: typedef void (*copyIterFunc)(void **, void * const *); 8036: 8036: sizeFunc _size; 8036: findFunc _find; 8036: beginFunc _begin; 8036: beginFunc _end; 8036: advanceFunc _advance; 8036: getFunc _getKey; 8036: getFunc _getValue; 8036: destroyIterFunc _destroyIter; 8036: equalIterFunc _equalIter; 8036: copyIterFunc _copyIter; 8036: 8036: template 8036: static int sizeImpl(const void *p) 8036: { return int(std::distance(static_cast(p)->begin(), 8036: static_cast(p)->end())); } 8036: 8036: template 8036: static void findImpl(const void *container, const void *p, void **iterator) 8036: { IteratorOwner::assign(iterator, 8036: static_cast(container)->find(*static_cast(p))); } 8036: 8036: template 8036: static void advanceImpl(void **p, int step) 8036: { std::advance(*static_cast(*p), step); } 8036: 8036: template 8036: static void beginImpl(const void *container, void **iterator) 8036: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8036: 8036: template 8036: static void endImpl(const void *container, void **iterator) 8036: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8036: 8036: template 8036: static VariantData getKeyImpl(void * const *iterator, int metaTypeId, uint flags) 8036: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getKey(*static_cast(*iterator)), flags); } 8036: 8036: template 8036: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) 8036: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getValue(*static_cast(*iterator)), flags); } 8036: 8036: public: 8036: template QAssociativeIterableImpl(const T*p) 8036: : _iterable(p) 8036: , _iterator(nullptr) 8036: , _metaType_id_key(qMetaTypeId()) 8036: , _metaType_flags_key(QTypeInfo::isPointer) 8036: , _metaType_id_value(qMetaTypeId()) 8036: , _metaType_flags_value(QTypeInfo::isPointer) 8036: , _size(sizeImpl) 8036: , _find(findImpl) 8036: , _begin(beginImpl) 8036: , _end(endImpl) 8036: , _advance(advanceImpl) 8036: , _getKey(getKeyImpl) 8036: , _getValue(getValueImpl) 8036: , _destroyIter(IteratorOwner::destroy) 8036: , _equalIter(IteratorOwner::equal) 8036: , _copyIter(IteratorOwner::assign) 8036: { 8036: } 8036: 8036: QAssociativeIterableImpl() 8036: : _iterable(nullptr) 8036: , _iterator(nullptr) 8036: , _metaType_id_key(QMetaType::UnknownType) 8036: , _metaType_flags_key(0) 8036: , _metaType_id_value(QMetaType::UnknownType) 8036: , _metaType_flags_value(0) 8036: , _size(nullptr) 8036: , _find(nullptr) 8036: , _begin(nullptr) 8036: , _end(nullptr) 8036: , _advance(nullptr) 8036: , _getKey(nullptr) 8036: , _getValue(nullptr) 8036: , _destroyIter(nullptr) 8036: , _equalIter(nullptr) 8036: , _copyIter(nullptr) 8036: { 8036: } 8036: 8036: inline void begin() { _begin(_iterable, &_iterator); } 8036: inline void end() { _end(_iterable, &_iterator); } 8036: inline bool equal(const QAssociativeIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8036: inline QAssociativeIterableImpl &advance(int i) { _advance(&_iterator, i); return *this; } 8036: 8036: inline void destroyIter() { _destroyIter(&_iterator); } 8036: 8036: inline VariantData getCurrentKey() const { return _getKey(&_iterator, _metaType_id_key, _metaType_flags_key); } 8036: inline VariantData getCurrentValue() const { return _getValue(&_iterator, _metaType_id_value, _metaType_flags_value); } 8036: 8036: inline void find(const VariantData &key) 8036: { _find(_iterable, key.data, &_iterator); } 8036: 8036: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8036: 8036: void copy(const QAssociativeIterableImpl &other) 8036: { 8036: *this = other; 8036: _copyIter(&_iterator, &other._iterator); 8036: } 8036: }; 8036: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QAssociativeIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QAssociativeIterableImpl"; } }; namespace QtMetaTypePrivate { 8036: 8036: template 8036: struct QAssociativeIterableConvertFunctor 8036: { 8036: QAssociativeIterableImpl operator()(const From& f) const 8036: { 8036: return QAssociativeIterableImpl(&f); 8036: } 8036: }; 8036: 8036: class QPairVariantInterfaceImpl 8036: { 8036: const void *_pair; 8036: int _metaType_id_first; 8036: uint _metaType_flags_first; 8036: int _metaType_id_second; 8036: uint _metaType_flags_second; 8036: 8036: typedef VariantData (*getFunc)(const void * const *p, int metaTypeId, uint flags); 8036: 8036: getFunc _getFirst; 8036: getFunc _getSecond; 8036: 8036: template 8036: static VariantData getFirstImpl(const void * const *pair, int metaTypeId, uint flags) 8036: { return VariantData(metaTypeId, &static_cast(*pair)->first, flags); } 8036: template 8036: static VariantData getSecondImpl(const void * const *pair, int metaTypeId, uint flags) 8036: { return VariantData(metaTypeId, &static_cast(*pair)->second, flags); } 8036: 8036: public: 8036: template QPairVariantInterfaceImpl(const T*p) 8036: : _pair(p) 8036: , _metaType_id_first(qMetaTypeId()) 8036: , _metaType_flags_first(QTypeInfo::isPointer) 8036: , _metaType_id_second(qMetaTypeId()) 8036: , _metaType_flags_second(QTypeInfo::isPointer) 8036: , _getFirst(getFirstImpl) 8036: , _getSecond(getSecondImpl) 8036: { 8036: } 8036: 8036: QPairVariantInterfaceImpl() 8036: : _pair(nullptr) 8036: , _metaType_id_first(QMetaType::UnknownType) 8036: , _metaType_flags_first(0) 8036: , _metaType_id_second(QMetaType::UnknownType) 8036: , _metaType_flags_second(0) 8036: , _getFirst(nullptr) 8036: , _getSecond(nullptr) 8036: { 8036: } 8036: 8036: inline VariantData first() const { return _getFirst(&_pair, _metaType_id_first, _metaType_flags_first); } 8036: inline VariantData second() const { return _getSecond(&_pair, _metaType_id_second, _metaType_flags_second); } 8036: }; 8036: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QPairVariantInterfaceImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QPairVariantInterfaceImpl"; } }; namespace QtMetaTypePrivate { 8036: 8036: template 8036: struct QPairVariantInterfaceConvertFunctor; 8036: 8036: template 8036: struct QPairVariantInterfaceConvertFunctor > 8036: { 8036: QPairVariantInterfaceImpl operator()(const QPair& f) const 8036: { 8036: return QPairVariantInterfaceImpl(&f); 8036: } 8036: }; 8036: 8036: template 8036: struct QPairVariantInterfaceConvertFunctor > 8036: { 8036: QPairVariantInterfaceImpl operator()(const std::pair& f) const 8036: { 8036: return QPairVariantInterfaceImpl(&f); 8036: } 8036: }; 8036: 8036: } 8036: 8036: class QObject; 8036: class QWidget; 8036: 8036: 8036: 8036: 8036: template class QSharedPointer; template class QWeakPointer; template class QPointer; 8036: 8036: namespace QtPrivate 8036: { 8036: template 8036: struct IsPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: 8036: template<> 8036: struct IsPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: template<> 8036: struct IsPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: template<> 8036: struct IsPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = true }; 8036: }; 8036: 8036: template 8036: struct IsPointerToTypeDerivedFromQObject 8036: { 8036: typedef qint8 yes_type; 8036: typedef qint64 no_type; 8036: 8036: 8036: static yes_type checkType(QObject* ); 8036: 8036: static no_type checkType(...); 8036: static_assert(bool(sizeof(T)), "Type argument of Q_DECLARE_METATYPE(T*) must be fully defined"); 8036: enum { Value = sizeof(checkType(static_cast(nullptr))) == sizeof(yes_type) }; 8036: }; 8036: 8036: template 8036: struct IsGadgetHelper { enum { Value = false }; }; 8036: 8036: template 8036: struct IsGadgetHelper 8036: { 8036: template 8036: static char checkType(void (X::*)()); 8036: static void *checkType(void (T::*)()); 8036: enum { Value = sizeof(checkType(&T::qt_check_for_QGADGET_macro)) == sizeof(void *) }; 8036: }; 8036: 8036: 8036: template char qt_getEnumMetaObject(const T&); 8036: 8036: template 8036: struct IsQEnumHelper { 8036: static const T &declval(); 8036: 8036: 8036: 8036: 8036: enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; 8036: }; 8036: template<> struct IsQEnumHelper { enum { Value = false }; }; 8036: 8036: template 8036: struct MetaObjectForType 8036: { 8036: static inline const QMetaObject *value() { return nullptr; } 8036: }; 8036: template<> 8036: struct MetaObjectForType 8036: { 8036: static inline const QMetaObject *value() { return nullptr; } 8036: }; 8036: template 8036: struct MetaObjectForType::Value>::type> 8036: { 8036: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8036: }; 8036: template 8036: struct MetaObjectForType::Value>::type> 8036: { 8036: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8036: }; 8036: template 8036: struct MetaObjectForType::Value>::type > 8036: { 8036: static inline const QMetaObject *value() { return qt_getEnumMetaObject(T()); } 8036: }; 8036: 8036: template 8036: struct IsSharedPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: template 8036: struct IsSharedPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8036: { 8036: }; 8036: 8036: template 8036: struct IsWeakPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: template 8036: struct IsWeakPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8036: { 8036: }; 8036: 8036: template 8036: struct IsTrackingPointerToTypeDerivedFromQObject 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: template 8036: struct IsTrackingPointerToTypeDerivedFromQObject > 8036: { 8036: enum { Value = true }; 8036: }; 8036: 8036: template 8036: struct IsSequentialContainer 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: template 8036: struct IsAssociativeContainer 8036: { 8036: enum { Value = false }; 8036: }; 8036: 8036: template::Value> 8036: struct SequentialContainerConverterHelper 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template::Defined> 8036: struct ValueTypeIsMetaType 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template 8036: struct SequentialContainerConverterHelper : ValueTypeIsMetaType 8036: { 8036: }; 8036: 8036: template::Value> 8036: struct AssociativeContainerConverterHelper 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template::Defined> 8036: struct AssociativeValueTypeIsMetaType 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template::Defined> 8036: struct KeyAndValueTypeIsMetaType 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template 8036: struct KeyAndValueTypeIsMetaType : AssociativeValueTypeIsMetaType 8036: { 8036: }; 8036: 8036: template 8036: struct AssociativeContainerConverterHelper : KeyAndValueTypeIsMetaType 8036: { 8036: }; 8036: 8036: template::Defined 8036: && QMetaTypeId2::Defined> 8036: struct IsMetaTypePair 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: 8036: template 8036: struct IsMetaTypePair 8036: { 8036: inline static bool registerConverter(int id); 8036: }; 8036: 8036: template 8036: struct IsPair 8036: { 8036: static bool registerConverter(int) 8036: { 8036: return false; 8036: } 8036: }; 8036: template 8036: struct IsPair > : IsMetaTypePair > {}; 8036: template 8036: struct IsPair > : IsMetaTypePair > {}; 8036: 8036: template 8036: struct MetaTypePairHelper : IsPair {}; 8036: 8036: template 8036: struct MetaTypeSmartPointerHelper 8036: { 8036: static bool registerConverter(int) { return false; } 8036: }; 8036: 8036: __attribute__((visibility("default"))) bool isBuiltinType(const QByteArray &type); 8036: } 8036: 8036: template ::Value ? QMetaType::PointerToQObject : 8036: QtPrivate::IsGadgetHelper::Value ? QMetaType::IsGadget : 8036: QtPrivate::IsQEnumHelper::Value ? QMetaType::IsEnumeration : 0> 8036: struct QMetaTypeIdQObject 8036: { 8036: enum { 8036: Defined = 0 8036: }; 8036: }; 8036: 8036: template 8036: struct QMetaTypeId : public QMetaTypeIdQObject 8036: { 8036: }; 8036: 8036: template 8036: struct QMetaTypeId2 8036: { 8036: enum { Defined = QMetaTypeId::Defined, IsBuiltIn=false }; 8036: static inline constexpr int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } 8036: }; 8036: 8036: template 8036: struct QMetaTypeId2 : QMetaTypeId2 {}; 8036: 8036: template 8036: struct QMetaTypeId2 { enum {Defined = false }; }; 8036: 8036: namespace QtPrivate { 8036: template ::Defined> 8036: struct QMetaTypeIdHelper { 8036: static inline constexpr int qt_metatype_id() 8036: { return QMetaTypeId2::qt_metatype_id(); } 8036: }; 8036: template struct QMetaTypeIdHelper { 8036: static inline constexpr int qt_metatype_id() 8036: { return -1; } 8036: }; 8036: 8036: 8036: template 8036: struct IsPointerToTypeDerivedFromQObject { enum { Value = false }; }; 8036: 8036: template 8036: struct QMetaTypeTypeFlags 8036: { 8036: enum { Flags = (QTypeInfoQuery::isRelocatable ? QMetaType::MovableType : 0) 8036: | (QTypeInfo::isComplex ? QMetaType::NeedsConstruction : 0) 8036: | (QTypeInfo::isComplex ? QMetaType::NeedsDestruction : 0) 8036: | (IsPointerToTypeDerivedFromQObject::Value ? QMetaType::PointerToQObject : 0) 8036: | (IsSharedPointerToTypeDerivedFromQObject::Value ? QMetaType::SharedPointerToQObject : 0) 8036: | (IsWeakPointerToTypeDerivedFromQObject::Value ? QMetaType::WeakPointerToQObject : 0) 8036: | (IsTrackingPointerToTypeDerivedFromQObject::Value ? QMetaType::TrackingPointerToQObject : 0) 8036: | (std::is_enum::value ? QMetaType::IsEnumeration : 0) 8036: | (IsGadgetHelper::Value ? QMetaType::IsGadget : 0) 8036: }; 8036: }; 8036: 8036: template 8036: struct MetaTypeDefinedHelper 8036: { 8036: enum DefinedType { Defined = defined }; 8036: }; 8036: 8036: template 8036: struct QSmartPointerConvertFunctor 8036: { 8036: QObject* operator()(const SmartPointer &p) const 8036: { 8036: return p.operator->(); 8036: } 8036: }; 8036: 8036: template 8036: struct QSmartPointerConvertFunctor > 8036: { 8036: QObject* operator()(const QWeakPointer &p) const 8036: { 8036: return p.data(); 8036: } 8036: }; 8036: } 8036: 8036: template 8036: int qRegisterNormalizedMetaType(const ::QByteArray &normalizedTypeName 8036: 8036: , T * dummy = 0 8036: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8036: 8036: ) 8036: { 8036: 8036: do { } while ((false) && (normalizedTypeName == QMetaObject::normalizedType(normalizedTypeName.constData()))); 8036: 8036: const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); 8036: if (typedefOf != -1) 8036: return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf); 8036: 8036: QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags::Flags); 8036: 8036: if (defined) 8036: flags |= QMetaType::WasDeclaredAsMetaType; 8036: 8036: const int id = QMetaType::registerNormalizedType(normalizedTypeName, 8036: QtMetaTypePrivate::QMetaTypeFunctionHelper::Destruct, 8036: QtMetaTypePrivate::QMetaTypeFunctionHelper::Construct, 8036: int(sizeof(T)), 8036: flags, 8036: QtPrivate::MetaObjectForType::value()); 8036: 8036: if (id > 0) { 8036: QtPrivate::SequentialContainerConverterHelper::registerConverter(id); 8036: QtPrivate::AssociativeContainerConverterHelper::registerConverter(id); 8036: QtPrivate::MetaTypePairHelper::registerConverter(id); 8036: QtPrivate::MetaTypeSmartPointerHelper::registerConverter(id); 8036: } 8036: 8036: return id; 8036: } 8036: 8036: template 8036: int qRegisterMetaType(const char *typeName 8036: 8036: , T * dummy = nullptr 8036: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8036: 8036: ) 8036: { 8036: 8036: 8036: 8036: ::QByteArray normalizedTypeName = QMetaObject::normalizedType(typeName); 8036: 8036: return qRegisterNormalizedMetaType(normalizedTypeName, dummy, defined); 8036: } 8036: 8036: 8036: template 8036: void qRegisterMetaTypeStreamOperators(const char *typeName 8036: 8036: , T * = nullptr 8036: 8036: ) 8036: { 8036: qRegisterMetaType(typeName); 8036: QMetaType::registerStreamOperators(typeName, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8036: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8036: } 8036: 8036: 8036: template 8036: inline constexpr int qMetaTypeId() 8036: { 8036: static_assert(bool(QMetaTypeId2::Defined), "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system"); 8036: return QMetaTypeId2::qt_metatype_id(); 8036: } 8036: 8036: template 8036: inline constexpr int qRegisterMetaType() 8036: { 8036: return qMetaTypeId(); 8036: } 8036: 8036: 8036: 8036: template 8036: inline constexpr int qMetaTypeId(T *) 8036: { return qMetaTypeId(); } 8036: 8036: template 8036: inline constexpr int qRegisterMetaType(T *) 8036: { return qRegisterMetaType(); } 8036: 8036: 8036: 8036: 8036: template 8036: struct QMetaTypeIdQObject 8036: { 8036: enum { 8036: Defined = 1 8036: }; 8036: 8036: static int qt_metatype_id() 8036: { 8036: static QBasicAtomicInt metatype_id = { 0 }; 8036: if (const int id = metatype_id.loadAcquire()) 8036: return id; 8036: const char * const cName = T::staticMetaObject.className(); 8036: QByteArray typeName; 8036: typeName.reserve(int(strlen(cName)) + 1); 8036: typeName.append(cName).append('*'); 8036: const int newId = qRegisterNormalizedMetaType( 8036: typeName, 8036: reinterpret_cast(quintptr(-1))); 8036: metatype_id.storeRelease(newId); 8036: return newId; 8036: } 8036: }; 8036: 8036: template 8036: struct QMetaTypeIdQObject 8036: { 8036: enum { 8036: Defined = std::is_default_constructible::value 8036: }; 8036: 8036: static int qt_metatype_id() 8036: { 8036: static QBasicAtomicInt metatype_id = { 0 }; 8036: if (const int id = metatype_id.loadAcquire()) 8036: return id; 8036: const char * const cName = T::staticMetaObject.className(); 8036: const int newId = qRegisterNormalizedMetaType( 8036: cName, 8036: reinterpret_cast(quintptr(-1))); 8036: metatype_id.storeRelease(newId); 8036: return newId; 8036: } 8036: }; 8036: 8036: template 8036: struct QMetaTypeIdQObject 8036: { 8036: enum { 8036: Defined = 1 8036: }; 8036: 8036: static int qt_metatype_id() 8036: { 8036: static QBasicAtomicInt metatype_id = { 0 }; 8036: if (const int id = metatype_id.loadAcquire()) 8036: return id; 8036: const char *eName = qt_getEnumName(T()); 8036: const char *cName = qt_getEnumMetaObject(T())->className(); 8036: QByteArray typeName; 8036: typeName.reserve(int(strlen(cName) + 2 + strlen(eName))); 8036: typeName.append(cName).append("::").append(eName); 8036: const int newId = qRegisterNormalizedMetaType( 8036: typeName, 8036: reinterpret_cast(quintptr(-1))); 8036: metatype_id.storeRelease(newId); 8036: return newId; 8036: } 8036: }; 8036: 8036: 8036: 8036: template 8036: inline int qRegisterMetaTypeStreamOperators() 8036: { 8036: int id = qMetaTypeId(); 8036: QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8036: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8036: return id; 8036: } 8036: # 1881 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: class QChar; class QString; class QStringList; class QByteArray; class QBitArray; class QDate; class QTime; class QDateTime; class QUrl; class QLocale; class QRect; class QRectF; class QSize; class QSizeF; class QLine; class QLineF; class QPoint; class QPointF; class QRegExp; class QEasingCurve; class QUuid; class QVariant; class QModelIndex; class QRegularExpression; class QJsonValue; class QJsonObject; class QJsonArray; class QJsonDocument; class QPersistentModelIndex; 8036: class QFont; class QPixmap; class QBrush; class QColor; class QPalette; class QIcon; class QImage; class QPolygon; class QRegion; class QBitmap; class QCursor; class QKeySequence; class QPen; class QTextLength; class QTextFormat; class QMatrix; class QTransform; class QMatrix4x4; class QVector2D; class QVector3D; class QVector4D; class QQuaternion; class QPolygonF; 8036: class QSizePolicy; 8036: 8036: 8036: 8036: typedef QList QVariantList; 8036: typedef QMap QVariantMap; 8036: typedef QHash QVariantHash; 8036: 8036: typedef QList QByteArrayList; 8036: # 1968 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: namespace QtPrivate { 8036: 8036: template 8036: struct SharedPointerMetaTypeIdHelper 8036: { 8036: enum { 8036: Defined = 0 8036: }; 8036: static int qt_metatype_id() 8036: { 8036: return -1; 8036: } 8036: }; 8036: 8036: } 8036: # 2042 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: 8036: 8036: template class QList; template struct QMetaTypeId< QList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QList")) + 1 + tNameLen + 1 + 1); typeName.append("QList", int(sizeof("QList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QList >( typeName, reinterpret_cast< QList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QVector; template struct QMetaTypeId< QVector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QVector")) + 1 + tNameLen + 1 + 1); typeName.append("QVector", int(sizeof("QVector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QVector >( typeName, reinterpret_cast< QVector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QQueue; template struct QMetaTypeId< QQueue > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QQueue")) + 1 + tNameLen + 1 + 1); typeName.append("QQueue", int(sizeof("QQueue")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QQueue >( typeName, reinterpret_cast< QQueue *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QStack; template struct QMetaTypeId< QStack > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QStack")) + 1 + tNameLen + 1 + 1); typeName.append("QStack", int(sizeof("QStack")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QStack >( typeName, reinterpret_cast< QStack *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QSet; template struct QMetaTypeId< QSet > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QSet")) + 1 + tNameLen + 1 + 1); typeName.append("QSet", int(sizeof("QSet")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QSet >( typeName, reinterpret_cast< QSet *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QLinkedList; template struct QMetaTypeId< QLinkedList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QLinkedList")) + 1 + tNameLen + 1 + 1); typeName.append("QLinkedList", int(sizeof("QLinkedList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QLinkedList >( typeName, reinterpret_cast< QLinkedList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8036: 8036: 8036: 8036: 8036: 8036: template struct QMetaTypeId< std::vector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::vector")) + 1 + tNameLen + 1 + 1); typeName.append("std::vector", int(sizeof("std::vector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::vector >( typeName, reinterpret_cast< std::vector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8036: template struct QMetaTypeId< std::list > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::list")) + 1 + tNameLen + 1 + 1); typeName.append("std::list", int(sizeof("std::list")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::list >( typeName, reinterpret_cast< std::list *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template class QHash; template class QMap; template struct QPair; 8036: # 2074 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8036: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QHash > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QHash")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QHash", int(sizeof("QHash")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QHash >( typeName, reinterpret_cast< QHash *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QMap > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QMap")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QMap", int(sizeof("QMap")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QMap >( typeName, reinterpret_cast< QMap *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< std::map > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::map")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::map", int(sizeof("std::map")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::map >( typeName, reinterpret_cast< std::map *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: 8036: template struct QMetaTypeId< QPair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QPair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QPair", int(sizeof("QPair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QPair >( typeName, reinterpret_cast< QPair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: template struct QMetaTypeId< std::pair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::pair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::pair", int(sizeof("std::pair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::pair >( typeName, reinterpret_cast< std::pair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: 8036: 8036: 8036: 8036: 8036: namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QSharedPointer") + 1 + strlen(cName) + 1)); typeName.append("QSharedPointer", int(sizeof("QSharedPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QSharedPointer >( typeName, reinterpret_cast< QSharedPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QSharedPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QSharedPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QWeakPointer") + 1 + strlen(cName) + 1)); typeName.append("QWeakPointer", int(sizeof("QWeakPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QWeakPointer >( typeName, reinterpret_cast< QWeakPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QWeakPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QWeakPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QPointer") + 1 + strlen(cName) + 1)); typeName.append("QPointer", int(sizeof("QPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QPointer >( typeName, reinterpret_cast< QPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; 8036: 8036: 8036: 8036: 8036: 8036: inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8036: Creator creator, 8036: Deleter deleter, 8036: SaveOperator saveOp, 8036: LoadOperator loadOp, 8036: Constructor constructor, 8036: Destructor destructor, 8036: uint size, 8036: uint theTypeFlags, 8036: int typeId, 8036: const QMetaObject *_metaObject) 8036: : m_creator_unused(creator) 8036: , m_deleter_unused(deleter) 8036: , m_saveOp(saveOp) 8036: , m_loadOp(loadOp) 8036: , m_constructor(constructor) 8036: , m_destructor(destructor) 8036: , m_extension(nullptr) 8036: , m_size(size) 8036: , m_typeFlags(theTypeFlags) 8036: , m_extensionFlags(extensionFlags) 8036: , m_typeId(typeId) 8036: , m_metaObject(_metaObject) 8036: { 8036: if (__builtin_expect(!!(isExtended(CtorEx) || typeId == QMetaType::Void), false)) 8036: ctor(info); 8036: } 8036: 8036: inline QMetaType::~QMetaType() 8036: { 8036: if (__builtin_expect(!!(isExtended(DtorEx)), false)) 8036: dtor(); 8036: } 8036: 8036: inline bool QMetaType::isValid() const 8036: { 8036: return m_typeId != UnknownType; 8036: } 8036: 8036: inline bool QMetaType::isRegistered() const 8036: { 8036: return isValid(); 8036: } 8036: 8036: inline void *QMetaType::create(const void *copy) const 8036: { 8036: 8036: return createExtended(copy); 8036: } 8036: 8036: inline void QMetaType::destroy(void *data) const 8036: { 8036: 8036: destroyExtended(data); 8036: } 8036: 8036: inline void *QMetaType::construct(void *where, const void *copy) const 8036: { 8036: if (__builtin_expect(!!(isExtended(ConstructEx)), false)) 8036: return constructExtended(where, copy); 8036: return m_constructor(where, copy); 8036: } 8036: 8036: inline void QMetaType::destruct(void *data) const 8036: { 8036: if (__builtin_expect(!!(isExtended(DestructEx)), false)) 8036: return destructExtended(data); 8036: if (__builtin_expect(!!(!data), false)) 8036: return; 8036: m_destructor(data); 8036: } 8036: 8036: inline int QMetaType::sizeOf() const 8036: { 8036: if (__builtin_expect(!!(isExtended(SizeEx)), false)) 8036: return sizeExtended(); 8036: return m_size; 8036: } 8036: 8036: inline QMetaType::TypeFlags QMetaType::flags() const 8036: { 8036: if (__builtin_expect(!!(isExtended(FlagsEx)), false)) 8036: return flagsExtended(); 8036: return QMetaType::TypeFlags(m_typeFlags); 8036: } 8036: 8036: inline const QMetaObject *QMetaType::metaObject() const 8036: { 8036: if (__builtin_expect(!!(isExtended(MetaObjectEx)), false)) 8036: return metaObjectExtended(); 8036: return m_metaObject; 8036: } 8036: 8036: 8036: 8036: 8036: template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 43 }; static inline constexpr int qt_metatype_id() { return 43; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 1 }; static inline constexpr int qt_metatype_id() { return 1; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 2 }; static inline constexpr int qt_metatype_id() { return 2; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 3 }; static inline constexpr int qt_metatype_id() { return 3; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 4 }; static inline constexpr int qt_metatype_id() { return 4; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 5 }; static inline constexpr int qt_metatype_id() { return 5; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 6 }; static inline constexpr int qt_metatype_id() { return 6; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 32 }; static inline constexpr int qt_metatype_id() { return 32; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 33 }; static inline constexpr int qt_metatype_id() { return 33; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 34 }; static inline constexpr int qt_metatype_id() { return 34; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 35 }; static inline constexpr int qt_metatype_id() { return 35; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 36 }; static inline constexpr int qt_metatype_id() { return 36; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 37 }; static inline constexpr int qt_metatype_id() { return 37; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 38 }; static inline constexpr int qt_metatype_id() { return 38; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 40 }; static inline constexpr int qt_metatype_id() { return 40; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 51 }; static inline constexpr int qt_metatype_id() { return 51; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 31 }; static inline constexpr int qt_metatype_id() { return 31; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 7 }; static inline constexpr int qt_metatype_id() { return 7; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 10 }; static inline constexpr int qt_metatype_id() { return 10; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 11 }; static inline constexpr int qt_metatype_id() { return 11; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 12 }; static inline constexpr int qt_metatype_id() { return 12; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 13 }; static inline constexpr int qt_metatype_id() { return 13; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 14 }; static inline constexpr int qt_metatype_id() { return 14; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 15 }; static inline constexpr int qt_metatype_id() { return 15; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 16 }; static inline constexpr int qt_metatype_id() { return 16; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 17 }; static inline constexpr int qt_metatype_id() { return 17; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 18 }; static inline constexpr int qt_metatype_id() { return 18; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 19 }; static inline constexpr int qt_metatype_id() { return 19; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 20 }; static inline constexpr int qt_metatype_id() { return 20; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 21 }; static inline constexpr int qt_metatype_id() { return 21; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 22 }; static inline constexpr int qt_metatype_id() { return 22; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 23 }; static inline constexpr int qt_metatype_id() { return 23; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 24 }; static inline constexpr int qt_metatype_id() { return 24; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 25 }; static inline constexpr int qt_metatype_id() { return 25; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 26 }; static inline constexpr int qt_metatype_id() { return 26; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 27 }; static inline constexpr int qt_metatype_id() { return 27; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 29 }; static inline constexpr int qt_metatype_id() { return 29; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 30 }; static inline constexpr int qt_metatype_id() { return 30; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 41 }; static inline constexpr int qt_metatype_id() { return 41; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 42 }; static inline constexpr int qt_metatype_id() { return 42; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 44 }; static inline constexpr int qt_metatype_id() { return 44; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 45 }; static inline constexpr int qt_metatype_id() { return 45; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 46 }; static inline constexpr int qt_metatype_id() { return 46; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 47 }; static inline constexpr int qt_metatype_id() { return 47; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 48 }; static inline constexpr int qt_metatype_id() { return 48; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 50 }; static inline constexpr int qt_metatype_id() { return 50; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 39 }; static inline constexpr int qt_metatype_id() { return 39; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 8 }; static inline constexpr int qt_metatype_id() { return 8; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 9 }; static inline constexpr int qt_metatype_id() { return 9; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 28 }; static inline constexpr int qt_metatype_id() { return 28; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 49 }; static inline constexpr int qt_metatype_id() { return 49; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 64 }; static inline constexpr int qt_metatype_id() { return 64; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 65 }; static inline constexpr int qt_metatype_id() { return 65; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 66 }; static inline constexpr int qt_metatype_id() { return 66; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 67 }; static inline constexpr int qt_metatype_id() { return 67; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 68 }; static inline constexpr int qt_metatype_id() { return 68; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 69 }; static inline constexpr int qt_metatype_id() { return 69; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 70 }; static inline constexpr int qt_metatype_id() { return 70; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 71 }; static inline constexpr int qt_metatype_id() { return 71; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 72 }; static inline constexpr int qt_metatype_id() { return 72; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 73 }; static inline constexpr int qt_metatype_id() { return 73; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 74 }; static inline constexpr int qt_metatype_id() { return 74; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 75 }; static inline constexpr int qt_metatype_id() { return 75; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 76 }; static inline constexpr int qt_metatype_id() { return 76; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 77 }; static inline constexpr int qt_metatype_id() { return 77; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 78 }; static inline constexpr int qt_metatype_id() { return 78; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 79 }; static inline constexpr int qt_metatype_id() { return 79; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 80 }; static inline constexpr int qt_metatype_id() { return 80; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 81 }; static inline constexpr int qt_metatype_id() { return 81; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 82 }; static inline constexpr int qt_metatype_id() { return 82; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 83 }; static inline constexpr int qt_metatype_id() { return 83; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 84 }; static inline constexpr int qt_metatype_id() { return 84; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 85 }; static inline constexpr int qt_metatype_id() { return 85; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 86 }; static inline constexpr int qt_metatype_id() { return 86; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 121 }; static inline constexpr int qt_metatype_id() { return 121; } }; 8036: 8036: template <> struct QMetaTypeId< QtMetaTypePrivate::QSequentialIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QSequentialIterableImpl >("QtMetaTypePrivate::QSequentialIterableImpl", reinterpret_cast< QtMetaTypePrivate::QSequentialIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: template <> struct QMetaTypeId< QtMetaTypePrivate::QAssociativeIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QAssociativeIterableImpl >("QtMetaTypePrivate::QAssociativeIterableImpl", reinterpret_cast< QtMetaTypePrivate::QAssociativeIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: template <> struct QMetaTypeId< QtMetaTypePrivate::QPairVariantInterfaceImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QPairVariantInterfaceImpl >("QtMetaTypePrivate::QPairVariantInterfaceImpl", reinterpret_cast< QtMetaTypePrivate::QPairVariantInterfaceImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: 8036: 8036: 8036: template 8036: inline bool QtPrivate::IsMetaTypePair::registerConverter(int id) 8036: { 8036: const int toId = qMetaTypeId(); 8036: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8036: QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor o; 8036: static const QtPrivate::ConverterFunctor > f(o); 8036: return QMetaType::registerConverterFunction(&f, id, toId); 8036: } 8036: return true; 8036: } 8036: 8036: namespace QtPrivate { 8036: template 8036: struct ValueTypeIsMetaType 8036: { 8036: static bool registerConverter(int id) 8036: { 8036: const int toId = qMetaTypeId(); 8036: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8036: QtMetaTypePrivate::QSequentialIterableConvertFunctor o; 8036: static const QtPrivate::ConverterFunctor > f(o); 8036: return QMetaType::registerConverterFunction(&f, id, toId); 8036: } 8036: return true; 8036: } 8036: }; 8036: 8036: template 8036: struct AssociativeValueTypeIsMetaType 8036: { 8036: static bool registerConverter(int id) 8036: { 8036: const int toId = qMetaTypeId(); 8036: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8036: QtMetaTypePrivate::QAssociativeIterableConvertFunctor o; 8036: static const QtPrivate::ConverterFunctor > f(o); 8036: return QMetaType::registerConverterFunction(&f, id, toId); 8036: } 8036: return true; 8036: } 8036: }; 8036: } 8036: 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 1 3 4 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: # 1 "/usr/include/c++/8/functional" 1 3 4 8036: # 46 "/usr/include/c++/8/functional" 3 4 8036: 8036: # 47 "/usr/include/c++/8/functional" 3 8036: # 58 "/usr/include/c++/8/functional" 3 8036: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 8036: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _Maybe_unary_or_binary_function { }; 8036: 8036: 8036: template 8036: struct _Maybe_unary_or_binary_function<_Res, _T1> 8036: : std::unary_function<_T1, _Res> { }; 8036: 8036: 8036: template 8036: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 8036: : std::binary_function<_T1, _T2, _Res> { }; 8036: 8036: template 8036: struct _Mem_fn_traits; 8036: 8036: template 8036: struct _Mem_fn_traits_base 8036: { 8036: using __result_type = _Res; 8036: using __maybe_type 8036: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 8036: using __arity = integral_constant; 8036: }; 8036: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 8036: 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; }; 8036: 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; }; 8036: 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; }; 8036: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 8036: template> 8036: struct _Maybe_get_result_type 8036: { }; 8036: 8036: template 8036: struct _Maybe_get_result_type<_Functor, 8036: __void_t> 8036: { typedef typename _Functor::result_type result_type; }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _Weak_result_type_impl 8036: : _Maybe_get_result_type<_Functor> 8036: { }; 8036: 8036: 8036: template 8036: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 8036: { typedef _Res result_type; }; 8036: 8036: 8036: template 8036: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 8036: { typedef _Res result_type; }; 8036: 8036: 8036: template 8036: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 8036: { typedef _Res result_type; }; 8036: 8036: 8036: template 8036: struct 8036: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 8036: { typedef _Res result_type; }; 8036: 8036: 8036: template::value> 8036: struct _Weak_result_type_memfun 8036: : _Weak_result_type_impl<_Functor> 8036: { }; 8036: 8036: 8036: template 8036: struct _Weak_result_type_memfun<_MemFunPtr, true> 8036: { 8036: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8036: }; 8036: 8036: 8036: template 8036: struct _Weak_result_type_memfun<_Func _Class::*, false> 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _Weak_result_type 8036: : _Weak_result_type_memfun::type> 8036: { }; 8036: 8036: 8036: template> 8036: struct _Refwrap_base_arg1 8036: { }; 8036: 8036: 8036: template 8036: struct _Refwrap_base_arg1<_Tp, 8036: __void_t> 8036: { 8036: typedef typename _Tp::argument_type argument_type; 8036: }; 8036: 8036: 8036: template> 8036: struct _Refwrap_base_arg2 8036: { }; 8036: 8036: 8036: template 8036: struct _Refwrap_base_arg2<_Tp, 8036: __void_t> 8036: { 8036: typedef typename _Tp::first_argument_type first_argument_type; 8036: typedef typename _Tp::second_argument_type second_argument_type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct _Reference_wrapper_base 8036: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 8036: { }; 8036: 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1) > 8036: : unary_function<_T1, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1) const> 8036: : unary_function<_T1, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1) volatile> 8036: : unary_function<_T1, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1) const volatile> 8036: : unary_function<_T1, _Res> 8036: { }; 8036: 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1, _T2) > 8036: : binary_function<_T1, _T2, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 8036: : binary_function<_T1, _T2, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 8036: : binary_function<_T1, _T2, _Res> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 8036: : binary_function<_T1, _T2, _Res> 8036: { }; 8036: 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(*)(_T1) > 8036: : unary_function<_T1, _Res> 8036: { }; 8036: 8036: 8036: template 8036: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 8036: : binary_function<_T1, _T2, _Res> 8036: { }; 8036: 8036: template::value> 8036: struct _Reference_wrapper_base_memfun 8036: : _Reference_wrapper_base<_Tp> 8036: { }; 8036: 8036: template 8036: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 8036: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 8036: { 8036: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class reference_wrapper 8036: : public _Reference_wrapper_base_memfun::type> 8036: { 8036: _Tp* _M_data; 8036: 8036: public: 8036: typedef _Tp type; 8036: 8036: reference_wrapper(_Tp& __indata) noexcept 8036: : _M_data(std::__addressof(__indata)) 8036: { } 8036: 8036: reference_wrapper(_Tp&&) = delete; 8036: 8036: reference_wrapper(const reference_wrapper&) = default; 8036: 8036: reference_wrapper& 8036: operator=(const reference_wrapper&) = default; 8036: 8036: operator _Tp&() const noexcept 8036: { return this->get(); } 8036: 8036: _Tp& 8036: get() const noexcept 8036: { return *_M_data; } 8036: 8036: template 8036: typename result_of<_Tp&(_Args&&...)>::type 8036: operator()(_Args&&... __args) const 8036: { 8036: return std::__invoke(get(), std::forward<_Args>(__args)...); 8036: } 8036: }; 8036: 8036: 8036: 8036: template 8036: inline reference_wrapper<_Tp> 8036: ref(_Tp& __t) noexcept 8036: { return reference_wrapper<_Tp>(__t); } 8036: 8036: 8036: template 8036: inline reference_wrapper 8036: cref(const _Tp& __t) noexcept 8036: { return reference_wrapper(__t); } 8036: 8036: template 8036: void ref(const _Tp&&) = delete; 8036: 8036: template 8036: void cref(const _Tp&&) = delete; 8036: 8036: 8036: template 8036: inline reference_wrapper<_Tp> 8036: ref(reference_wrapper<_Tp> __t) noexcept 8036: { return __t; } 8036: 8036: 8036: template 8036: inline reference_wrapper 8036: cref(reference_wrapper<_Tp> __t) noexcept 8036: { return { __t.get() }; } 8036: 8036: 8036: 8036: 8036: } 8036: # 59 "/usr/include/c++/8/functional" 2 3 8036: # 1 "/usr/include/c++/8/bits/std_function.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/std_function.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/std_function.h" 3 8036: # 47 "/usr/include/c++/8/bits/std_function.h" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class bad_function_call : public std::exception 8036: { 8036: public: 8036: virtual ~bad_function_call() noexcept; 8036: 8036: const char* what() const noexcept; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __is_location_invariant 8036: : is_trivially_copyable<_Tp>::type 8036: { }; 8036: 8036: class _Undefined_class; 8036: 8036: union _Nocopy_types 8036: { 8036: void* _M_object; 8036: const void* _M_const_object; 8036: void (*_M_function_pointer)(); 8036: void (_Undefined_class::*_M_member_pointer)(); 8036: }; 8036: 8036: union [[gnu::may_alias]] _Any_data 8036: { 8036: void* _M_access() { return &_M_pod_data[0]; } 8036: const void* _M_access() const { return &_M_pod_data[0]; } 8036: 8036: template 8036: _Tp& 8036: _M_access() 8036: { return *static_cast<_Tp*>(_M_access()); } 8036: 8036: template 8036: const _Tp& 8036: _M_access() const 8036: { return *static_cast(_M_access()); } 8036: 8036: _Nocopy_types _M_unused; 8036: char _M_pod_data[sizeof(_Nocopy_types)]; 8036: }; 8036: 8036: enum _Manager_operation 8036: { 8036: __get_type_info, 8036: __get_functor_ptr, 8036: __clone_functor, 8036: __destroy_functor 8036: }; 8036: 8036: 8036: 8036: template 8036: struct _Simple_type_wrapper 8036: { 8036: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 8036: 8036: _Tp __value; 8036: }; 8036: 8036: template 8036: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 8036: : __is_location_invariant<_Tp> 8036: { }; 8036: 8036: template 8036: class function; 8036: 8036: 8036: class _Function_base 8036: { 8036: public: 8036: static const std::size_t _M_max_size = sizeof(_Nocopy_types); 8036: static const std::size_t _M_max_align = __alignof__(_Nocopy_types); 8036: 8036: template 8036: class _Base_manager 8036: { 8036: protected: 8036: static const bool __stored_locally = 8036: (__is_location_invariant<_Functor>::value 8036: && sizeof(_Functor) <= _M_max_size 8036: && __alignof__(_Functor) <= _M_max_align 8036: && (_M_max_align % __alignof__(_Functor) == 0)); 8036: 8036: typedef integral_constant _Local_storage; 8036: 8036: 8036: static _Functor* 8036: _M_get_pointer(const _Any_data& __source) 8036: { 8036: const _Functor* __ptr = 8036: __stored_locally? std::__addressof(__source._M_access<_Functor>()) 8036: : __source._M_access<_Functor*>(); 8036: return const_cast<_Functor*>(__ptr); 8036: } 8036: 8036: 8036: 8036: static void 8036: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 8036: { 8036: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 8036: } 8036: 8036: 8036: 8036: static void 8036: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 8036: { 8036: __dest._M_access<_Functor*>() = 8036: new _Functor(*__source._M_access<_Functor*>()); 8036: } 8036: 8036: 8036: 8036: static void 8036: _M_destroy(_Any_data& __victim, true_type) 8036: { 8036: __victim._M_access<_Functor>().~_Functor(); 8036: } 8036: 8036: 8036: static void 8036: _M_destroy(_Any_data& __victim, false_type) 8036: { 8036: delete __victim._M_access<_Functor*>(); 8036: } 8036: 8036: public: 8036: static bool 8036: _M_manager(_Any_data& __dest, const _Any_data& __source, 8036: _Manager_operation __op) 8036: { 8036: switch (__op) 8036: { 8036: 8036: case __get_type_info: 8036: __dest._M_access() = &typeid(_Functor); 8036: break; 8036: 8036: case __get_functor_ptr: 8036: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 8036: break; 8036: 8036: case __clone_functor: 8036: _M_clone(__dest, __source, _Local_storage()); 8036: break; 8036: 8036: case __destroy_functor: 8036: _M_destroy(__dest, _Local_storage()); 8036: break; 8036: } 8036: return false; 8036: } 8036: 8036: static void 8036: _M_init_functor(_Any_data& __functor, _Functor&& __f) 8036: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 8036: 8036: template 8036: static bool 8036: _M_not_empty_function(const function<_Signature>& __f) 8036: { return static_cast(__f); } 8036: 8036: template 8036: static bool 8036: _M_not_empty_function(_Tp* __fp) 8036: { return __fp != nullptr; } 8036: 8036: template 8036: static bool 8036: _M_not_empty_function(_Tp _Class::* __mp) 8036: { return __mp != nullptr; } 8036: 8036: template 8036: static bool 8036: _M_not_empty_function(const _Tp&) 8036: { return true; } 8036: 8036: private: 8036: static void 8036: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 8036: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 8036: 8036: static void 8036: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 8036: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 8036: }; 8036: 8036: _Function_base() : _M_manager(nullptr) { } 8036: 8036: ~_Function_base() 8036: { 8036: if (_M_manager) 8036: _M_manager(_M_functor, _M_functor, __destroy_functor); 8036: } 8036: 8036: bool _M_empty() const { return !_M_manager; } 8036: 8036: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 8036: _Manager_operation); 8036: 8036: _Any_data _M_functor; 8036: _Manager_type _M_manager; 8036: }; 8036: 8036: template 8036: class _Function_handler; 8036: 8036: template 8036: class _Function_handler<_Res(_ArgTypes...), _Functor> 8036: : public _Function_base::_Base_manager<_Functor> 8036: { 8036: typedef _Function_base::_Base_manager<_Functor> _Base; 8036: 8036: public: 8036: static _Res 8036: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8036: { 8036: return (*_Base::_M_get_pointer(__functor))( 8036: std::forward<_ArgTypes>(__args)...); 8036: } 8036: }; 8036: 8036: template 8036: class _Function_handler 8036: : public _Function_base::_Base_manager<_Functor> 8036: { 8036: typedef _Function_base::_Base_manager<_Functor> _Base; 8036: 8036: public: 8036: static void 8036: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8036: { 8036: (*_Base::_M_get_pointer(__functor))( 8036: std::forward<_ArgTypes>(__args)...); 8036: } 8036: }; 8036: 8036: template 8036: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 8036: : public _Function_handler 8036: { 8036: typedef _Function_handler 8036: _Base; 8036: 8036: public: 8036: static _Res 8036: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8036: { 8036: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8036: std::forward<_ArgTypes>(__args)...); 8036: } 8036: }; 8036: 8036: template 8036: class _Function_handler 8036: : public _Function_base::_Base_manager< 8036: _Simple_type_wrapper< _Member _Class::* > > 8036: { 8036: typedef _Member _Class::* _Functor; 8036: typedef _Simple_type_wrapper<_Functor> _Wrapper; 8036: typedef _Function_base::_Base_manager<_Wrapper> _Base; 8036: 8036: public: 8036: static bool 8036: _M_manager(_Any_data& __dest, const _Any_data& __source, 8036: _Manager_operation __op) 8036: { 8036: switch (__op) 8036: { 8036: 8036: case __get_type_info: 8036: __dest._M_access() = &typeid(_Functor); 8036: break; 8036: 8036: case __get_functor_ptr: 8036: __dest._M_access<_Functor*>() = 8036: &_Base::_M_get_pointer(__source)->__value; 8036: break; 8036: 8036: default: 8036: _Base::_M_manager(__dest, __source, __op); 8036: } 8036: return false; 8036: } 8036: 8036: static void 8036: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8036: { 8036: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8036: std::forward<_ArgTypes>(__args)...); 8036: } 8036: }; 8036: 8036: template 8036: using __check_func_return_type 8036: = __or_, is_same<_From, _To>, is_convertible<_From, _To>>; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class function<_Res(_ArgTypes...)> 8036: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 8036: private _Function_base 8036: { 8036: template::type> 8036: struct _Callable : __check_func_return_type<_Res2, _Res> { }; 8036: 8036: 8036: 8036: template 8036: struct _Callable : false_type { }; 8036: 8036: template 8036: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 8036: 8036: public: 8036: typedef _Res result_type; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: function() noexcept 8036: : _Function_base() { } 8036: 8036: 8036: 8036: 8036: 8036: function(nullptr_t) noexcept 8036: : _Function_base() { } 8036: # 413 "/usr/include/c++/8/bits/std_function.h" 3 8036: function(const function& __x); 8036: # 422 "/usr/include/c++/8/bits/std_function.h" 3 8036: function(function&& __x) noexcept : _Function_base() 8036: { 8036: __x.swap(*this); 8036: } 8036: # 443 "/usr/include/c++/8/bits/std_function.h" 3 8036: template>, void>, 8036: typename = _Requires<_Callable<_Functor>, void>> 8036: function(_Functor); 8036: # 460 "/usr/include/c++/8/bits/std_function.h" 3 8036: function& 8036: operator=(const function& __x) 8036: { 8036: function(__x).swap(*this); 8036: return *this; 8036: } 8036: # 478 "/usr/include/c++/8/bits/std_function.h" 3 8036: function& 8036: operator=(function&& __x) noexcept 8036: { 8036: function(std::move(__x)).swap(*this); 8036: return *this; 8036: } 8036: # 492 "/usr/include/c++/8/bits/std_function.h" 3 8036: function& 8036: operator=(nullptr_t) noexcept 8036: { 8036: if (_M_manager) 8036: { 8036: _M_manager(_M_functor, _M_functor, __destroy_functor); 8036: _M_manager = nullptr; 8036: _M_invoker = nullptr; 8036: } 8036: return *this; 8036: } 8036: # 520 "/usr/include/c++/8/bits/std_function.h" 3 8036: template 8036: _Requires<_Callable::type>, function&> 8036: operator=(_Functor&& __f) 8036: { 8036: function(std::forward<_Functor>(__f)).swap(*this); 8036: return *this; 8036: } 8036: 8036: 8036: template 8036: function& 8036: operator=(reference_wrapper<_Functor> __f) noexcept 8036: { 8036: function(__f).swap(*this); 8036: return *this; 8036: } 8036: # 546 "/usr/include/c++/8/bits/std_function.h" 3 8036: void swap(function& __x) noexcept 8036: { 8036: std::swap(_M_functor, __x._M_functor); 8036: std::swap(_M_manager, __x._M_manager); 8036: std::swap(_M_invoker, __x._M_invoker); 8036: } 8036: # 563 "/usr/include/c++/8/bits/std_function.h" 3 8036: explicit operator bool() const noexcept 8036: { return !_M_empty(); } 8036: # 576 "/usr/include/c++/8/bits/std_function.h" 3 8036: _Res operator()(_ArgTypes... __args) const; 8036: # 589 "/usr/include/c++/8/bits/std_function.h" 3 8036: const type_info& target_type() const noexcept; 8036: # 602 "/usr/include/c++/8/bits/std_function.h" 3 8036: template _Functor* target() noexcept; 8036: 8036: template const _Functor* target() const noexcept; 8036: 8036: 8036: 8036: private: 8036: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 8036: _Invoker_type _M_invoker; 8036: }; 8036: # 651 "/usr/include/c++/8/bits/std_function.h" 3 8036: template 8036: function<_Res(_ArgTypes...)>:: 8036: function(const function& __x) 8036: : _Function_base() 8036: { 8036: if (static_cast(__x)) 8036: { 8036: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 8036: _M_invoker = __x._M_invoker; 8036: _M_manager = __x._M_manager; 8036: } 8036: } 8036: 8036: template 8036: template 8036: function<_Res(_ArgTypes...)>:: 8036: function(_Functor __f) 8036: : _Function_base() 8036: { 8036: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 8036: 8036: if (_My_handler::_M_not_empty_function(__f)) 8036: { 8036: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 8036: _M_invoker = &_My_handler::_M_invoke; 8036: _M_manager = &_My_handler::_M_manager; 8036: } 8036: } 8036: 8036: template 8036: _Res 8036: function<_Res(_ArgTypes...)>:: 8036: operator()(_ArgTypes... __args) const 8036: { 8036: if (_M_empty()) 8036: __throw_bad_function_call(); 8036: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 8036: } 8036: 8036: 8036: template 8036: const type_info& 8036: function<_Res(_ArgTypes...)>:: 8036: target_type() const noexcept 8036: { 8036: if (_M_manager) 8036: { 8036: _Any_data __typeinfo_result; 8036: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 8036: return *__typeinfo_result._M_access(); 8036: } 8036: else 8036: return typeid(void); 8036: } 8036: 8036: template 8036: template 8036: _Functor* 8036: function<_Res(_ArgTypes...)>:: 8036: target() noexcept 8036: { 8036: const function* __const_this = this; 8036: const _Functor* __func = __const_this->template target<_Functor>(); 8036: return const_cast<_Functor*>(__func); 8036: } 8036: 8036: template 8036: template 8036: const _Functor* 8036: function<_Res(_ArgTypes...)>:: 8036: target() const noexcept 8036: { 8036: if (typeid(_Functor) == target_type() && _M_manager) 8036: { 8036: _Any_data __ptr; 8036: _M_manager(__ptr, _M_functor, __get_functor_ptr); 8036: return __ptr._M_access(); 8036: } 8036: else 8036: return nullptr; 8036: } 8036: # 743 "/usr/include/c++/8/bits/std_function.h" 3 8036: template 8036: inline bool 8036: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8036: { return !static_cast(__f); } 8036: 8036: 8036: template 8036: inline bool 8036: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8036: { return !static_cast(__f); } 8036: # 761 "/usr/include/c++/8/bits/std_function.h" 3 8036: template 8036: inline bool 8036: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8036: { return static_cast(__f); } 8036: 8036: 8036: template 8036: inline bool 8036: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8036: { return static_cast(__f); } 8036: # 782 "/usr/include/c++/8/bits/std_function.h" 3 8036: template 8036: inline void 8036: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 8036: { __x.swap(__y); } 8036: 8036: 8036: } 8036: # 60 "/usr/include/c++/8/functional" 2 3 8036: # 68 "/usr/include/c++/8/functional" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 86 "/usr/include/c++/8/functional" 3 8036: template::value> 8036: class _Mem_fn_base 8036: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 8036: { 8036: using _Traits = _Mem_fn_traits<_MemFunPtr>; 8036: 8036: using _Arity = typename _Traits::__arity; 8036: using _Varargs = typename _Traits::__vararg; 8036: 8036: template 8036: friend struct _Bind_check_arity; 8036: 8036: _MemFunPtr _M_pmf; 8036: 8036: public: 8036: 8036: using result_type = typename _Traits::__result_type; 8036: 8036: explicit constexpr 8036: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 8036: 8036: template 8036: auto 8036: operator()(_Args&&... __args) const 8036: noexcept(noexcept( 8036: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 8036: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 8036: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 8036: }; 8036: 8036: 8036: template 8036: class _Mem_fn_base<_MemObjPtr, false> 8036: { 8036: using _Arity = integral_constant; 8036: using _Varargs = false_type; 8036: 8036: template 8036: friend struct _Bind_check_arity; 8036: 8036: _MemObjPtr _M_pm; 8036: 8036: public: 8036: explicit constexpr 8036: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 8036: 8036: template 8036: auto 8036: operator()(_Tp&& __obj) const 8036: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 8036: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 8036: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 8036: }; 8036: 8036: template 8036: struct _Mem_fn; 8036: 8036: template 8036: struct _Mem_fn<_Res _Class::*> 8036: : _Mem_fn_base<_Res _Class::*> 8036: { 8036: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 8036: }; 8036: # 158 "/usr/include/c++/8/functional" 3 8036: template 8036: inline _Mem_fn<_Tp _Class::*> 8036: mem_fn(_Tp _Class::* __pm) noexcept 8036: { 8036: return _Mem_fn<_Tp _Class::*>(__pm); 8036: } 8036: # 173 "/usr/include/c++/8/functional" 3 8036: template 8036: struct is_bind_expression 8036: : public false_type { }; 8036: # 184 "/usr/include/c++/8/functional" 3 8036: template 8036: struct is_placeholder 8036: : public integral_constant 8036: { }; 8036: # 199 "/usr/include/c++/8/functional" 3 8036: template struct _Placeholder { }; 8036: 8036: 8036: 8036: 8036: 8036: namespace placeholders 8036: { 8036: 8036: 8036: 8036: 8036: extern const _Placeholder<1> _1; 8036: extern const _Placeholder<2> _2; 8036: extern const _Placeholder<3> _3; 8036: extern const _Placeholder<4> _4; 8036: extern const _Placeholder<5> _5; 8036: extern const _Placeholder<6> _6; 8036: extern const _Placeholder<7> _7; 8036: extern const _Placeholder<8> _8; 8036: extern const _Placeholder<9> _9; 8036: extern const _Placeholder<10> _10; 8036: extern const _Placeholder<11> _11; 8036: extern const _Placeholder<12> _12; 8036: extern const _Placeholder<13> _13; 8036: extern const _Placeholder<14> _14; 8036: extern const _Placeholder<15> _15; 8036: extern const _Placeholder<16> _16; 8036: extern const _Placeholder<17> _17; 8036: extern const _Placeholder<18> _18; 8036: extern const _Placeholder<19> _19; 8036: extern const _Placeholder<20> _20; 8036: extern const _Placeholder<21> _21; 8036: extern const _Placeholder<22> _22; 8036: extern const _Placeholder<23> _23; 8036: extern const _Placeholder<24> _24; 8036: extern const _Placeholder<25> _25; 8036: extern const _Placeholder<26> _26; 8036: extern const _Placeholder<27> _27; 8036: extern const _Placeholder<28> _28; 8036: extern const _Placeholder<29> _29; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_placeholder<_Placeholder<_Num> > 8036: : public integral_constant 8036: { }; 8036: 8036: template 8036: struct is_placeholder > 8036: : public integral_constant 8036: { }; 8036: 8036: 8036: 8036: template 8036: using _Safe_tuple_element_t 8036: = typename enable_if<(__i < tuple_size<_Tuple>::value), 8036: tuple_element<__i, _Tuple>>::type::type; 8036: # 275 "/usr/include/c++/8/functional" 3 8036: template::value, 8036: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 8036: class _Mu; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class _Mu, false, false> 8036: { 8036: public: 8036: 8036: 8036: 8036: 8036: template 8036: _Tp& 8036: operator()(_CVRef& __arg, _Tuple&) const volatile 8036: { return __arg.get(); } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class _Mu<_Arg, true, false> 8036: { 8036: public: 8036: template 8036: auto 8036: operator()(_CVArg& __arg, 8036: tuple<_Args...>& __tuple) const volatile 8036: -> decltype(__arg(declval<_Args>()...)) 8036: { 8036: 8036: typedef typename _Build_index_tuple::__type 8036: _Indexes; 8036: return this->__call(__arg, __tuple, _Indexes()); 8036: } 8036: 8036: private: 8036: 8036: 8036: template 8036: auto 8036: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 8036: const _Index_tuple<_Indexes...>&) const volatile 8036: -> decltype(__arg(declval<_Args>()...)) 8036: { 8036: return __arg(std::get<_Indexes>(std::move(__tuple))...); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class _Mu<_Arg, false, true> 8036: { 8036: public: 8036: template 8036: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 8036: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 8036: { 8036: return 8036: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: class _Mu<_Arg, false, false> 8036: { 8036: public: 8036: template 8036: _CVArg&& 8036: operator()(_CVArg&& __arg, _Tuple&) const volatile 8036: { return std::forward<_CVArg>(__arg); } 8036: }; 8036: 8036: 8036: template 8036: inline auto 8036: __volget(volatile tuple<_Tp...>& __tuple) 8036: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 8036: { return std::get<_Ind>(const_cast&>(__tuple)); } 8036: 8036: 8036: template 8036: inline auto 8036: __volget(const volatile tuple<_Tp...>& __tuple) 8036: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 8036: { return std::get<_Ind>(const_cast&>(__tuple)); } 8036: 8036: 8036: template 8036: struct _Bind; 8036: 8036: template 8036: class _Bind<_Functor(_Bound_args...)> 8036: : public _Weak_result_type<_Functor> 8036: { 8036: typedef typename _Build_index_tuple::__type 8036: _Bound_indexes; 8036: 8036: _Functor _M_f; 8036: tuple<_Bound_args...> _M_bound_args; 8036: 8036: 8036: template 8036: _Result 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8036: { 8036: return std::__invoke(_M_f, 8036: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8036: ); 8036: } 8036: 8036: 8036: template 8036: _Result 8036: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8036: { 8036: return std::__invoke(_M_f, 8036: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8036: ); 8036: } 8036: 8036: 8036: template 8036: _Result 8036: __call_v(tuple<_Args...>&& __args, 8036: _Index_tuple<_Indexes...>) volatile 8036: { 8036: return std::__invoke(_M_f, 8036: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8036: ); 8036: } 8036: 8036: 8036: template 8036: _Result 8036: __call_c_v(tuple<_Args...>&& __args, 8036: _Index_tuple<_Indexes...>) const volatile 8036: { 8036: return std::__invoke(_M_f, 8036: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8036: ); 8036: } 8036: 8036: template 8036: using _Mu_type = decltype( 8036: _Mu::type>()( 8036: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 8036: 8036: template 8036: using _Res_type_impl 8036: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 8036: 8036: template 8036: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 8036: 8036: template 8036: using __dependent = typename 8036: enable_if::value+1), _Functor>::type; 8036: 8036: template class __cv_quals> 8036: using _Res_type_cv = _Res_type_impl< 8036: typename __cv_quals<__dependent<_CallArgs>>::type, 8036: _CallArgs, 8036: typename __cv_quals<_Bound_args>::type...>; 8036: 8036: public: 8036: template 8036: explicit _Bind(const _Functor& __f, _Args&&... __args) 8036: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8036: { } 8036: 8036: template 8036: explicit _Bind(_Functor&& __f, _Args&&... __args) 8036: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8036: { } 8036: 8036: _Bind(const _Bind&) = default; 8036: 8036: _Bind(_Bind&& __b) 8036: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8036: { } 8036: 8036: 8036: template>> 8036: _Result 8036: operator()(_Args&&... __args) 8036: { 8036: return this->__call<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: 8036: 8036: template, add_const>> 8036: _Result 8036: operator()(_Args&&... __args) const 8036: { 8036: return this->__call_c<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: # 505 "/usr/include/c++/8/functional" 3 8036: template, add_volatile>> 8036: 8036: _Result 8036: operator()(_Args&&... __args) volatile 8036: { 8036: return this->__call_v<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: 8036: 8036: template, add_cv>> 8036: 8036: _Result 8036: operator()(_Args&&... __args) const volatile 8036: { 8036: return this->__call_c_v<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct _Bind_result; 8036: 8036: template 8036: class _Bind_result<_Result, _Functor(_Bound_args...)> 8036: { 8036: typedef typename _Build_index_tuple::__type 8036: _Bound_indexes; 8036: 8036: _Functor _M_f; 8036: tuple<_Bound_args...> _M_bound_args; 8036: 8036: 8036: template 8036: using __enable_if_void 8036: = typename enable_if{}>::type; 8036: 8036: template 8036: using __disable_if_void 8036: = typename enable_if{}, _Result>::type; 8036: 8036: 8036: template 8036: __disable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8036: { 8036: return std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (std::get<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __enable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8036: { 8036: std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (std::get<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __disable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8036: { 8036: return std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (std::get<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __enable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8036: { 8036: std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (std::get<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __disable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8036: { 8036: return std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (__volget<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __enable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8036: { 8036: std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (__volget<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __disable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, 8036: _Index_tuple<_Indexes...>) const volatile 8036: { 8036: return std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (__volget<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: 8036: template 8036: __enable_if_void<_Res> 8036: __call(tuple<_Args...>&& __args, 8036: _Index_tuple<_Indexes...>) const volatile 8036: { 8036: std::__invoke(_M_f, _Mu<_Bound_args>() 8036: (__volget<_Indexes>(_M_bound_args), __args)...); 8036: } 8036: 8036: public: 8036: typedef _Result result_type; 8036: 8036: template 8036: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 8036: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8036: { } 8036: 8036: template 8036: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 8036: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8036: { } 8036: 8036: _Bind_result(const _Bind_result&) = default; 8036: 8036: _Bind_result(_Bind_result&& __b) 8036: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8036: { } 8036: 8036: 8036: template 8036: result_type 8036: operator()(_Args&&... __args) 8036: { 8036: return this->__call<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: 8036: 8036: template 8036: result_type 8036: operator()(_Args&&... __args) const 8036: { 8036: return this->__call<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: 8036: 8036: template 8036: 8036: result_type 8036: operator()(_Args&&... __args) volatile 8036: { 8036: return this->__call<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: 8036: 8036: template 8036: 8036: result_type 8036: operator()(_Args&&... __args) const volatile 8036: { 8036: return this->__call<_Result>( 8036: std::forward_as_tuple(std::forward<_Args>(__args)...), 8036: _Bound_indexes()); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression<_Bind<_Signature> > 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression > 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression > 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression> 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression<_Bind_result<_Result, _Signature>> 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression> 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression> 8036: : public true_type { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct is_bind_expression> 8036: : public true_type { }; 8036: 8036: template 8036: struct _Bind_check_arity { }; 8036: 8036: template 8036: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 8036: { 8036: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 8036: "Wrong number of arguments for function"); 8036: }; 8036: 8036: template 8036: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 8036: { 8036: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 8036: "Wrong number of arguments for function"); 8036: }; 8036: 8036: template 8036: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 8036: { 8036: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 8036: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 8036: static_assert(_Varargs::value 8036: ? sizeof...(_BoundArgs) >= _Arity::value + 1 8036: : sizeof...(_BoundArgs) == _Arity::value + 1, 8036: "Wrong number of arguments for pointer-to-member"); 8036: }; 8036: 8036: 8036: 8036: 8036: template::type> 8036: using __is_socketlike = __or_, is_enum<_Tp2>>; 8036: 8036: template 8036: struct _Bind_helper 8036: : _Bind_check_arity::type, _BoundArgs...> 8036: { 8036: typedef typename decay<_Func>::type __func_type; 8036: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: struct _Bind_helper 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline typename 8036: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 8036: bind(_Func&& __f, _BoundArgs&&... __args) 8036: { 8036: typedef _Bind_helper __helper_type; 8036: return typename __helper_type::type(std::forward<_Func>(__f), 8036: std::forward<_BoundArgs>(__args)...); 8036: } 8036: 8036: template 8036: struct _Bindres_helper 8036: : _Bind_check_arity::type, _BoundArgs...> 8036: { 8036: typedef typename decay<_Func>::type __functor_type; 8036: typedef _Bind_result<_Result, 8036: __functor_type(typename decay<_BoundArgs>::type...)> 8036: type; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: inline 8036: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 8036: bind(_Func&& __f, _BoundArgs&&... __args) 8036: { 8036: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 8036: return typename __helper_type::type(std::forward<_Func>(__f), 8036: std::forward<_BoundArgs>(__args)...); 8036: } 8036: # 1192 "/usr/include/c++/8/functional" 3 8036: 8036: } 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 69 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: template inline bool qMapLessThanKey(const Key &key1, const Key &key2) 8036: { 8036: return key1 < key2; 8036: } 8036: 8036: template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) 8036: { 8036: return std::less()(key1, key2); 8036: } 8036: 8036: struct QMapDataBase; 8036: template struct QMapData; 8036: 8036: struct __attribute__((visibility("default"))) QMapNodeBase 8036: { 8036: quintptr p; 8036: QMapNodeBase *left; 8036: QMapNodeBase *right; 8036: 8036: enum Color { Red = 0, Black = 1 }; 8036: enum { Mask = 3 }; 8036: 8036: const QMapNodeBase *nextNode() const; 8036: QMapNodeBase *nextNode() { return const_cast(const_cast(this)->nextNode()); } 8036: const QMapNodeBase *previousNode() const; 8036: QMapNodeBase *previousNode() { return const_cast(const_cast(this)->previousNode()); } 8036: 8036: Color color() const { return Color(p & 1); } 8036: void setColor(Color c) { if (c == Black) p |= Black; else p &= ~Black; } 8036: QMapNodeBase *parent() const { return reinterpret_cast(p & ~Mask); } 8036: void setParent(QMapNodeBase *pp) { p = (p & Mask) | quintptr(pp); } 8036: 8036: template 8036: static typename std::enable_if::isComplex>::type 8036: callDestructorIfNecessary(T &t) noexcept { (void)t;; t.~T(); } 8036: template 8036: static typename std::enable_if::isComplex>::type 8036: callDestructorIfNecessary(T &) noexcept {} 8036: }; 8036: 8036: template 8036: struct QMapNode : public QMapNodeBase 8036: { 8036: Key key; 8036: T value; 8036: 8036: inline QMapNode *leftNode() const { return static_cast(left); } 8036: inline QMapNode *rightNode() const { return static_cast(right); } 8036: 8036: inline const QMapNode *nextNode() const { return static_cast(QMapNodeBase::nextNode()); } 8036: inline const QMapNode *previousNode() const { return static_cast(QMapNodeBase::previousNode()); } 8036: inline QMapNode *nextNode() { return static_cast(QMapNodeBase::nextNode()); } 8036: inline QMapNode *previousNode() { return static_cast(QMapNodeBase::previousNode()); } 8036: 8036: QMapNode *copy(QMapData *d) const; 8036: 8036: void destroySubTree() 8036: { 8036: callDestructorIfNecessary(key); 8036: callDestructorIfNecessary(value); 8036: doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); 8036: } 8036: 8036: QMapNode *lowerBound(const Key &key); 8036: QMapNode *upperBound(const Key &key); 8036: 8036: private: 8036: void doDestroySubTree(std::false_type) {} 8036: void doDestroySubTree(std::true_type) 8036: { 8036: if (left) 8036: leftNode()->destroySubTree(); 8036: if (right) 8036: rightNode()->destroySubTree(); 8036: } 8036: 8036: QMapNode() = delete; 8036: QMapNode(const QMapNode &) = delete; QMapNode &operator=(const QMapNode &) = delete; 8036: }; 8036: 8036: template 8036: inline QMapNode *QMapNode::lowerBound(const Key &akey) 8036: { 8036: QMapNode *n = this; 8036: QMapNode *lastNode = nullptr; 8036: while (n) { 8036: if (!qMapLessThanKey(n->key, akey)) { 8036: lastNode = n; 8036: n = n->leftNode(); 8036: } else { 8036: n = n->rightNode(); 8036: } 8036: } 8036: return lastNode; 8036: } 8036: 8036: template 8036: inline QMapNode *QMapNode::upperBound(const Key &akey) 8036: { 8036: QMapNode *n = this; 8036: QMapNode *lastNode = nullptr; 8036: while (n) { 8036: if (qMapLessThanKey(akey, n->key)) { 8036: lastNode = n; 8036: n = n->leftNode(); 8036: } else { 8036: n = n->rightNode(); 8036: } 8036: } 8036: return lastNode; 8036: } 8036: 8036: 8036: 8036: struct __attribute__((visibility("default"))) QMapDataBase 8036: { 8036: QtPrivate::RefCount ref; 8036: int size; 8036: QMapNodeBase header; 8036: QMapNodeBase *mostLeftNode; 8036: 8036: void rotateLeft(QMapNodeBase *x); 8036: void rotateRight(QMapNodeBase *x); 8036: void rebalance(QMapNodeBase *x); 8036: void freeNodeAndRebalance(QMapNodeBase *z); 8036: void recalcMostLeftNode(); 8036: 8036: QMapNodeBase *createNode(int size, int alignment, QMapNodeBase *parent, bool left); 8036: void freeTree(QMapNodeBase *root, int alignment); 8036: 8036: static const QMapDataBase shared_null; 8036: 8036: static QMapDataBase *createData(); 8036: static void freeData(QMapDataBase *d); 8036: }; 8036: 8036: template 8036: struct QMapData : public QMapDataBase 8036: { 8036: typedef QMapNode Node; 8036: 8036: Node *root() const { return static_cast(header.left); } 8036: 8036: 8036: 8036: const Node *end() const { return reinterpret_cast(&header); } 8036: Node *end() { return reinterpret_cast(&header); } 8036: const Node *begin() const { if (root()) return static_cast(mostLeftNode); return end(); } 8036: Node *begin() { if (root()) return static_cast(mostLeftNode); return end(); } 8036: 8036: void deleteNode(Node *z); 8036: Node *findNode(const Key &akey) const; 8036: void nodeRange(const Key &akey, Node **firstNode, Node **lastNode); 8036: 8036: Node *createNode(const Key &k, const T &v, Node *parent = nullptr, bool left = false) 8036: { 8036: Node *n = static_cast(QMapDataBase::createNode(sizeof(Node), alignof(Node), 8036: parent, left)); 8036: if (true) { 8036: new (&n->key) Key(k); 8036: if (true) { 8036: new (&n->value) T(v); 8036: } else { 8036: n->key.~Key(); 8036: qt_noop(); 8036: } 8036: } else { 8036: QMapDataBase::freeNodeAndRebalance(n); 8036: qt_noop(); 8036: } 8036: return n; 8036: } 8036: 8036: static QMapData *create() { 8036: return static_cast(createData()); 8036: } 8036: 8036: void destroy() { 8036: if (root()) { 8036: root()->destroySubTree(); 8036: freeTree(header.left, alignof(Node)); 8036: } 8036: freeData(this); 8036: } 8036: }; 8036: 8036: template 8036: QMapNode *QMapNode::copy(QMapData *d) const 8036: { 8036: QMapNode *n = d->createNode(key, value); 8036: n->setColor(color()); 8036: if (left) { 8036: n->left = leftNode()->copy(d); 8036: n->left->setParent(n); 8036: } else { 8036: n->left = nullptr; 8036: } 8036: if (right) { 8036: n->right = rightNode()->copy(d); 8036: n->right->setParent(n); 8036: } else { 8036: n->right = nullptr; 8036: } 8036: return n; 8036: } 8036: 8036: template 8036: void QMapData::deleteNode(QMapNode *z) 8036: { 8036: QMapNodeBase::callDestructorIfNecessary(z->key); 8036: QMapNodeBase::callDestructorIfNecessary(z->value); 8036: freeNodeAndRebalance(z); 8036: } 8036: 8036: template 8036: QMapNode *QMapData::findNode(const Key &akey) const 8036: { 8036: if (Node *r = root()) { 8036: Node *lb = r->lowerBound(akey); 8036: if (lb && !qMapLessThanKey(akey, lb->key)) 8036: return lb; 8036: } 8036: return nullptr; 8036: } 8036: 8036: 8036: template 8036: void QMapData::nodeRange(const Key &akey, QMapNode **firstNode, QMapNode **lastNode) 8036: { 8036: Node *n = root(); 8036: Node *l = end(); 8036: while (n) { 8036: if (qMapLessThanKey(akey, n->key)) { 8036: l = n; 8036: n = n->leftNode(); 8036: } else if (qMapLessThanKey(n->key, akey)) { 8036: n = n->rightNode(); 8036: } else { 8036: *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : nullptr; 8036: if (!*firstNode) 8036: *firstNode = n; 8036: *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : nullptr; 8036: if (!*lastNode) 8036: *lastNode = l; 8036: return; 8036: } 8036: } 8036: *firstNode = *lastNode = l; 8036: } 8036: 8036: 8036: template 8036: class QMap 8036: { 8036: typedef QMapNode Node; 8036: 8036: QMapData *d; 8036: 8036: public: 8036: inline QMap() noexcept : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } 8036: 8036: inline QMap(std::initializer_list > list) 8036: : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) 8036: { 8036: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8036: insert(it->first, it->second); 8036: } 8036: 8036: QMap(const QMap &other); 8036: 8036: inline ~QMap() { if (!d->ref.deref()) d->destroy(); } 8036: 8036: QMap &operator=(const QMap &other); 8036: 8036: inline QMap(QMap &&other) noexcept 8036: : d(other.d) 8036: { 8036: other.d = static_cast *>( 8036: const_cast(&QMapDataBase::shared_null)); 8036: } 8036: 8036: inline QMap &operator=(QMap &&other) noexcept 8036: { QMap moved(std::move(other)); swap(moved); return *this; } 8036: 8036: inline void swap(QMap &other) noexcept { qSwap(d, other.d); } 8036: explicit QMap(const typename std::map &other); 8036: std::map toStdMap() const; 8036: 8036: bool operator==(const QMap &other) const; 8036: inline bool operator!=(const QMap &other) const { return !(*this == other); } 8036: 8036: inline int size() const { return d->size; } 8036: 8036: inline bool isEmpty() const { return d->size == 0; } 8036: 8036: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8036: inline bool isDetached() const { return !d->ref.isShared(); } 8036: 8036: inline void setSharable(bool sharable) 8036: { 8036: if (sharable == d->ref.isSharable()) 8036: return; 8036: if (!sharable) 8036: detach(); 8036: 8036: d->ref.setSharable(sharable); 8036: } 8036: 8036: inline bool isSharedWith(const QMap &other) const { return d == other.d; } 8036: 8036: void clear(); 8036: 8036: int remove(const Key &key); 8036: T take(const Key &key); 8036: 8036: bool contains(const Key &key) const; 8036: const Key key(const T &value, const Key &defaultKey = Key()) const; 8036: const T value(const Key &key, const T &defaultValue = T()) const; 8036: T &operator[](const Key &key); 8036: const T operator[](const Key &key) const; 8036: 8036: QList uniqueKeys() const; 8036: QList keys() const; 8036: QList keys(const T &value) const; 8036: QList values() const; 8036: QList values(const Key &key) const; 8036: int count(const Key &key) const; 8036: 8036: inline const Key &firstKey() const { do { } while ((false) && (!isEmpty())); return constBegin().key(); } 8036: inline const Key &lastKey() const { do { } while ((false) && (!isEmpty())); return (constEnd() - 1).key(); } 8036: 8036: inline T &first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *constBegin(); } 8036: inline T &last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8036: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(constEnd() - 1); } 8036: 8036: class const_iterator; 8036: 8036: class iterator 8036: { 8036: friend class const_iterator; 8036: Node *i; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef T *pointer; 8036: typedef T &reference; 8036: 8036: inline iterator() : i(nullptr) { } 8036: inline iterator(Node *node) : i(node) { } 8036: 8036: inline const Key &key() const { return i->key; } 8036: inline T &value() const { return i->value; } 8036: inline T &operator*() const { return i->value; } 8036: inline T *operator->() const { return &i->value; } 8036: inline bool operator==(const iterator &o) const { return i == o.i; } 8036: inline bool operator!=(const iterator &o) const { return i != o.i; } 8036: 8036: inline iterator &operator++() { 8036: i = i->nextNode(); 8036: return *this; 8036: } 8036: inline iterator operator++(int) { 8036: iterator r = *this; 8036: i = i->nextNode(); 8036: return r; 8036: } 8036: inline iterator &operator--() { 8036: i = i->previousNode(); 8036: return *this; 8036: } 8036: inline iterator operator--(int) { 8036: iterator r = *this; 8036: i = i->previousNode(); 8036: return r; 8036: } 8036: inline iterator operator+(int j) const 8036: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8036: inline iterator operator-(int j) const { return operator+(-j); } 8036: inline iterator &operator+=(int j) { return *this = *this + j; } 8036: inline iterator &operator-=(int j) { return *this = *this - j; } 8036: 8036: 8036: public: 8036: inline bool operator==(const const_iterator &o) const 8036: { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const 8036: { return i != o.i; } 8036: 8036: friend class QMap; 8036: }; 8036: friend class iterator; 8036: 8036: class const_iterator 8036: { 8036: friend class iterator; 8036: const Node *i; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef const T *pointer; 8036: typedef const T &reference; 8036: 8036: constexpr inline const_iterator() : i(nullptr) { } 8036: inline const_iterator(const Node *node) : i(node) { } 8036: 8036: 8036: 8036: inline const_iterator(const iterator &o) 8036: 8036: { i = o.i; } 8036: 8036: inline const Key &key() const { return i->key; } 8036: inline const T &value() const { return i->value; } 8036: inline const T &operator*() const { return i->value; } 8036: inline const T *operator->() const { return &i->value; } 8036: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8036: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8036: 8036: inline const_iterator &operator++() { 8036: i = i->nextNode(); 8036: return *this; 8036: } 8036: inline const_iterator operator++(int) { 8036: const_iterator r = *this; 8036: i = i->nextNode(); 8036: return r; 8036: } 8036: inline const_iterator &operator--() { 8036: i = i->previousNode(); 8036: return *this; 8036: } 8036: inline const_iterator operator--(int) { 8036: const_iterator r = *this; 8036: i = i->previousNode(); 8036: return r; 8036: } 8036: inline const_iterator operator+(int j) const 8036: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8036: inline const_iterator operator-(int j) const { return operator+(-j); } 8036: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8036: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: friend class QMap; 8036: }; 8036: friend class const_iterator; 8036: 8036: class key_iterator 8036: { 8036: const_iterator i; 8036: 8036: public: 8036: typedef typename const_iterator::iterator_category iterator_category; 8036: typedef typename const_iterator::difference_type difference_type; 8036: typedef Key value_type; 8036: typedef const Key *pointer; 8036: typedef const Key &reference; 8036: 8036: key_iterator() = default; 8036: explicit key_iterator(const_iterator o) : i(o) { } 8036: 8036: const Key &operator*() const { return i.key(); } 8036: const Key *operator->() const { return &i.key(); } 8036: bool operator==(key_iterator o) const { return i == o.i; } 8036: bool operator!=(key_iterator o) const { return i != o.i; } 8036: 8036: inline key_iterator &operator++() { ++i; return *this; } 8036: inline key_iterator operator++(int) { return key_iterator(i++);} 8036: inline key_iterator &operator--() { --i; return *this; } 8036: inline key_iterator operator--(int) { return key_iterator(i--); } 8036: const_iterator base() const { return i; } 8036: }; 8036: 8036: 8036: 8036: inline iterator begin() { detach(); return iterator(d->begin()); } 8036: inline const_iterator begin() const { return const_iterator(d->begin()); } 8036: inline const_iterator constBegin() const { return const_iterator(d->begin()); } 8036: inline const_iterator cbegin() const { return const_iterator(d->begin()); } 8036: inline iterator end() { detach(); return iterator(d->end()); } 8036: inline const_iterator end() const { return const_iterator(d->end()); } 8036: inline const_iterator constEnd() const { return const_iterator(d->end()); } 8036: inline const_iterator cend() const { return const_iterator(d->end()); } 8036: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8036: inline key_iterator keyEnd() const { return key_iterator(end()); } 8036: iterator erase(iterator it); 8036: 8036: 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: inline int count() const { return d->size; } 8036: iterator find(const Key &key); 8036: const_iterator find(const Key &key) const; 8036: const_iterator constFind(const Key &key) const; 8036: iterator lowerBound(const Key &key); 8036: const_iterator lowerBound(const Key &key) const; 8036: iterator upperBound(const Key &key); 8036: const_iterator upperBound(const Key &key) const; 8036: iterator insert(const Key &key, const T &value); 8036: iterator insert(const_iterator pos, const Key &key, const T &value); 8036: iterator insertMulti(const Key &key, const T &value); 8036: iterator insertMulti(const_iterator pos, const Key &akey, const T &avalue); 8036: QMap &unite(const QMap &other); 8036: 8036: 8036: typedef Key key_type; 8036: typedef T mapped_type; 8036: typedef qptrdiff difference_type; 8036: typedef int size_type; 8036: inline bool empty() const { return isEmpty(); } 8036: QPair equal_range(const Key &akey); 8036: QPair equal_range(const Key &akey) const; 8036: 8036: 8036: 8036: 8036: 8036: private: 8036: void detach_helper(); 8036: bool isValidIterator(const const_iterator &ci) const 8036: { 8036: 8036: 8036: 8036: 8036: 8036: 8036: (void)ci;; 8036: return true; 8036: 8036: } 8036: }; 8036: 8036: template 8036: inline QMap::QMap(const QMap &other) 8036: { 8036: if (other.d->ref.ref()) { 8036: d = other.d; 8036: } else { 8036: d = QMapData::create(); 8036: if (other.d->header.left) { 8036: d->header.left = static_cast(other.d->header.left)->copy(d); 8036: d->header.left->setParent(&d->header); 8036: d->recalcMostLeftNode(); 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline QMap &QMap::operator=(const QMap &other) 8036: { 8036: if (d != other.d) { 8036: QMap tmp(other); 8036: tmp.swap(*this); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline void QMap::clear() 8036: { 8036: *this = QMap(); 8036: } 8036: 8036: 8036: # 642 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 642 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: 8036: 8036: 8036: template 8036: in[ 64%] Building CXX object src/CMakeFiles/debconf-kde.dir/debconf-kde_autogen/mocs_compilation.cpp.o cd /<>/obj-powerpc64le-linux-gnu/src && /usr/bin/c++ -DPROJECT_VERSION=\"1.0.2\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTRANSLATION_DOMAIN=\"libdebconf-kde\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Ddebconf_kde_EXPORTS -I/<>/obj-powerpc64le-linux-gnu/src -I/<>/src -I/<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/include -I/<> -I/<>/obj-powerpc64le-linux-gnu -isystem /usr/include/powerpc64le-linux-gnu/qt5 -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtWidgets -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtGui -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtCore -isystem /usr/lib/powerpc64le-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/powerpc64le-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5 -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/KWidgetsAddons -g -O3 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/debconf-kde.dir/debconf-kde_autogen/mocs_compilation.cpp.o -c /<>/obj-powerpc64le-linux-gnu/src/debconf-kde_autogen/mocs_compilation.cpp line const T QMap::value(const Key &akey, const T &adefaultValue) const 8036: { 8036: Node *n = d->findNode(akey); 8036: return n ? n->value : adefaultValue; 8036: } 8036: 8036: 8036: # 652 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 652 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: 8036: 8036: template 8036: inline const T QMap::operator[](const Key &akey) const 8036: { 8036: return value(akey); 8036: } 8036: 8036: template 8036: inline T &QMap::operator[](const Key &akey) 8036: { 8036: detach(); 8036: Node *n = d->findNode(akey); 8036: if (!n) 8036: return *insert(akey, T()); 8036: return n->value; 8036: } 8036: 8036: template 8036: inline int QMap::count(const Key &akey) const 8036: { 8036: Node *firstNode; 8036: Node *lastNode; 8036: d->nodeRange(akey, &firstNode, &lastNode); 8036: 8036: const_iterator ci_first(firstNode); 8036: const const_iterator ci_last(lastNode); 8036: int cnt = 0; 8036: while (ci_first != ci_last) { 8036: ++cnt; 8036: ++ci_first; 8036: } 8036: return cnt; 8036: } 8036: 8036: template 8036: inline bool QMap::contains(const Key &akey) const 8036: { 8036: return d->findNode(akey) != nullptr; 8036: } 8036: 8036: template 8036: inline typename QMap::iterator QMap::insert(const Key &akey, const T &avalue) 8036: { 8036: detach(); 8036: Node *n = d->root(); 8036: Node *y = d->end(); 8036: Node *lastNode = nullptr; 8036: bool left = true; 8036: while (n) { 8036: y = n; 8036: if (!qMapLessThanKey(n->key, akey)) { 8036: lastNode = n; 8036: left = true; 8036: n = n->leftNode(); 8036: } else { 8036: left = false; 8036: n = n->rightNode(); 8036: } 8036: } 8036: if (lastNode && !qMapLessThanKey(akey, lastNode->key)) { 8036: lastNode->value = avalue; 8036: return iterator(lastNode); 8036: } 8036: Node *z = d->createNode(akey, avalue, y, left); 8036: return iterator(z); 8036: } 8036: 8036: template 8036: typename QMap::iterator QMap::insert(const_iterator pos, const Key &akey, const T &avalue) 8036: { 8036: if (d->ref.isShared()) 8036: return this->insert(akey, avalue); 8036: 8036: do { } while ((false) && (isValidIterator(pos))); 8036: 8036: if (pos == constEnd()) { 8036: 8036: Node *n = static_cast(pos.i->left); 8036: if (n) { 8036: while (n->right) 8036: n = static_cast(n->right); 8036: 8036: if (!qMapLessThanKey(n->key, akey)) 8036: return this->insert(akey, avalue); 8036: 8036: 8036: 8036: 8036: Node *z = d->createNode(akey, avalue, n, false); 8036: return iterator(z); 8036: } 8036: return this->insert(akey, avalue); 8036: } else { 8036: 8036: 8036: Node *next = const_cast(pos.i); 8036: if (qMapLessThanKey(next->key, akey)) 8036: return this->insert(akey, avalue); 8036: 8036: if (pos == constBegin()) { 8036: 8036: 8036: if (!qMapLessThanKey(akey, next->key)) { 8036: next->value = avalue; 8036: return iterator(next); 8036: } 8036: 8036: Node *z = d->createNode(akey, avalue, begin().i, true); 8036: return iterator(z); 8036: } else { 8036: Node *prev = const_cast(pos.i->previousNode()); 8036: if (!qMapLessThanKey(prev->key, akey)) { 8036: return this->insert(akey, avalue); 8036: } 8036: 8036: if (!qMapLessThanKey(akey, next->key)) { 8036: next->value = avalue; 8036: return iterator(next); 8036: } 8036: 8036: 8036: if (prev->right == nullptr) { 8036: Node *z = d->createNode(akey, avalue, prev, false); 8036: return iterator(z); 8036: } 8036: if (next->left == nullptr) { 8036: Node *z = d->createNode(akey, avalue, next, true); 8036: return iterator(z); 8036: } 8036: do { } while ((false) && (false)); 8036: return this->insert(akey, avalue); 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline typename QMap::iterator QMap::insertMulti(const Key &akey, 8036: const T &avalue) 8036: { 8036: detach(); 8036: Node* y = d->end(); 8036: Node* x = static_cast(d->root()); 8036: bool left = true; 8036: while (x != nullptr) { 8036: left = !qMapLessThanKey(x->key, akey); 8036: y = x; 8036: x = left ? x->leftNode() : x->rightNode(); 8036: } 8036: Node *z = d->createNode(akey, avalue, y, left); 8036: return iterator(z); 8036: } 8036: 8036: template 8036: typename QMap::iterator QMap::insertMulti(const_iterator pos, const Key &akey, const T &avalue) 8036: { 8036: if (d->ref.isShared()) 8036: return this->insertMulti(akey, avalue); 8036: 8036: do { } while ((false) && (isValidIterator(pos))); 8036: 8036: if (pos == constEnd()) { 8036: 8036: Node *n = static_cast(pos.i->left); 8036: if (n) { 8036: while (n->right) 8036: n = static_cast(n->right); 8036: 8036: if (!qMapLessThanKey(n->key, akey)) 8036: return this->insertMulti(akey, avalue); 8036: Node *z = d->createNode(akey, avalue, n, false); 8036: return iterator(z); 8036: } 8036: return this->insertMulti(akey, avalue); 8036: } else { 8036: 8036: 8036: Node *next = const_cast(pos.i); 8036: if (qMapLessThanKey(next->key, akey)) 8036: return this->insertMulti(akey, avalue); 8036: 8036: if (pos == constBegin()) { 8036: 8036: Node *z = d->createNode(akey, avalue, begin().i, true); 8036: return iterator(z); 8036: } else { 8036: Node *prev = const_cast(pos.i->previousNode()); 8036: if (!qMapLessThanKey(prev->key, akey)) 8036: return this->insertMulti(akey, avalue); 8036: 8036: 8036: if (prev->right == nullptr) { 8036: Node *z = d->createNode(akey, avalue, prev, false); 8036: return iterator(z); 8036: } 8036: if (next->left == nullptr) { 8036: Node *z = d->createNode(akey, avalue, next, true); 8036: return iterator(z); 8036: } 8036: do { } while ((false) && (false)); 8036: return this->insertMulti(akey, avalue); 8036: } 8036: } 8036: } 8036: 8036: 8036: template 8036: inline typename QMap::const_iterator QMap::constFind(const Key &akey) const 8036: { 8036: Node *n = d->findNode(akey); 8036: return const_iterator(n ? n : d->end()); 8036: } 8036: 8036: template 8036: inline typename QMap::const_iterator QMap::find(const Key &akey) const 8036: { 8036: return constFind(akey); 8036: } 8036: 8036: template 8036: inline typename QMap::iterator QMap::find(const Key &akey) 8036: { 8036: detach(); 8036: Node *n = d->findNode(akey); 8036: return iterator(n ? n : d->end()); 8036: } 8036: 8036: template 8036: inline QMap &QMap::unite(const QMap &other) 8036: { 8036: QMap copy(other); 8036: const_iterator it = copy.constEnd(); 8036: const const_iterator b = copy.constBegin(); 8036: while (it != b) { 8036: --it; 8036: insertMulti(it.key(), it.value()); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: QPair::iterator, typename QMap::iterator> QMap::equal_range(const Key &akey) 8036: { 8036: detach(); 8036: Node *firstNode, *lastNode; 8036: d->nodeRange(akey, &firstNode, &lastNode); 8036: return QPair(iterator(firstNode), iterator(lastNode)); 8036: } 8036: 8036: template 8036: QPair::const_iterator, typename QMap::const_iterator> 8036: QMap::equal_range(const Key &akey) const 8036: { 8036: Node *firstNode, *lastNode; 8036: d->nodeRange(akey, &firstNode, &lastNode); 8036: return qMakePair(const_iterator(firstNode), const_iterator(lastNode)); 8036: } 8036: # 932 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmap.h" 3 4 8036: template 8036: int QMap::remove(const Key &akey) 8036: { 8036: detach(); 8036: int n = 0; 8036: while (Node *node = d->findNode(akey)) { 8036: d->deleteNode(node); 8036: ++n; 8036: } 8036: return n; 8036: } 8036: 8036: template 8036: T QMap::take(const Key &akey) 8036: { 8036: detach(); 8036: 8036: Node *node = d->findNode(akey); 8036: if (node) { 8036: T t = node->value; 8036: d->deleteNode(node); 8036: return t; 8036: } 8036: return T(); 8036: } 8036: 8036: template 8036: typename QMap::iterator QMap::erase(iterator it) 8036: { 8036: if (it == iterator(d->end())) 8036: return it; 8036: 8036: do { } while ((false) && (isValidIterator(const_iterator(it)))); 8036: 8036: if (d->ref.isShared()) { 8036: const_iterator oldBegin = constBegin(); 8036: const_iterator old = const_iterator(it); 8036: int backStepsWithSameKey = 0; 8036: 8036: while (old != oldBegin) { 8036: --old; 8036: if (qMapLessThanKey(old.key(), it.key())) 8036: break; 8036: ++backStepsWithSameKey; 8036: } 8036: 8036: it = find(old.key()); 8036: do { } while ((false) && (it != iterator(d->end()))); 8036: 8036: while (backStepsWithSameKey > 0) { 8036: ++it; 8036: --backStepsWithSameKey; 8036: } 8036: } 8036: 8036: Node *n = it.i; 8036: ++it; 8036: d->deleteNode(n); 8036: return it; 8036: } 8036: 8036: template 8036: void QMap::detach_helper() 8036: { 8036: QMapData *x = QMapData::create(); 8036: if (d->header.left) { 8036: x->header.left = static_cast(d->header.left)->copy(x); 8036: x->header.left->setParent(&x->header); 8036: } 8036: if (!d->ref.deref()) 8036: d->destroy(); 8036: d = x; 8036: d->recalcMostLeftNode(); 8036: } 8036: 8036: template 8036: QList QMap::uniqueKeys() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: if (i != end()) { 8036: for (;;) { 8036: const Key &aKey = i.key(); 8036: res.append(aKey); 8036: do { 8036: if (++i == end()) 8036: goto break_out_of_outer_loop; 8036: } while (!qMapLessThanKey(aKey, i.key())); 8036: } 8036: } 8036: break_out_of_outer_loop: 8036: return res; 8036: } 8036: 8036: template 8036: QList QMap::keys() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: res.append(i.key()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: QList QMap::keys(const T &avalue) const 8036: { 8036: QList res; 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: if (i.value() == avalue) 8036: res.append(i.key()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: const Key QMap::key(const T &avalue, const Key &defaultKey) const 8036: { 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: if (i.value() == avalue) 8036: return i.key(); 8036: ++i; 8036: } 8036: 8036: return defaultKey; 8036: } 8036: 8036: template 8036: QList QMap::values() const 8036: { 8036: QList res; 8036: res.reserve(size()); 8036: const_iterator i = begin(); 8036: while (i != end()) { 8036: res.append(i.value()); 8036: ++i; 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: QList QMap::values(const Key &akey) const 8036: { 8036: QList res; 8036: Node *n = d->findNode(akey); 8036: if (n) { 8036: const_iterator it(n); 8036: do { 8036: res.append(*it); 8036: ++it; 8036: } while (it != constEnd() && !qMapLessThanKey(akey, it.key())); 8036: } 8036: return res; 8036: } 8036: 8036: template 8036: inline typename QMap::const_iterator QMap::lowerBound(const Key &akey) const 8036: { 8036: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8036: if (!lb) 8036: lb = d->end(); 8036: return const_iterator(lb); 8036: } 8036: 8036: template 8036: inline typename QMap::iterator QMap::lowerBound(const Key &akey) 8036: { 8036: detach(); 8036: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8036: if (!lb) 8036: lb = d->end(); 8036: return iterator(lb); 8036: } 8036: 8036: template 8036: inline typename QMap::const_iterator 8036: QMap::upperBound(const Key &akey) const 8036: { 8036: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8036: if (!ub) 8036: ub = d->end(); 8036: return const_iterator(ub); 8036: } 8036: 8036: template 8036: inline typename QMap::iterator QMap::upperBound(const Key &akey) 8036: { 8036: detach(); 8036: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8036: if (!ub) 8036: ub = d->end(); 8036: return iterator(ub); 8036: } 8036: 8036: template 8036: bool QMap::operator==(const QMap &other) const 8036: { 8036: if (size() != other.size()) 8036: return false; 8036: if (d == other.d) 8036: return true; 8036: 8036: const_iterator it1 = begin(); 8036: const_iterator it2 = other.begin(); 8036: 8036: while (it1 != end()) { 8036: if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) 8036: return false; 8036: ++it2; 8036: ++it1; 8036: } 8036: return true; 8036: } 8036: 8036: template 8036: QMap::QMap(const std::map &other) 8036: { 8036: d = QMapData::create(); 8036: typename std::map::const_iterator it = other.end(); 8036: while (it != other.begin()) { 8036: --it; 8036: d->createNode((*it).first, (*it).second, d->begin(), true); 8036: } 8036: } 8036: 8036: template 8036: std::map QMap::toStdMap() const 8036: { 8036: std::map map; 8036: const_iterator it = end(); 8036: while (it != begin()) { 8036: --it; 8036: map.insert(map.begin(), std::pair(it.key(), it.value())); 8036: } 8036: return map; 8036: } 8036: 8036: template 8036: class QMultiMap : public QMap 8036: { 8036: public: 8036: QMultiMap() noexcept {} 8036: 8036: inline QMultiMap(std::initializer_list > list) 8036: { 8036: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8036: insert(it->first, it->second); 8036: } 8036: 8036: QMultiMap(const QMap &other) : QMap(other) {} 8036: 8036: QMultiMap(QMap &&other) noexcept : QMap(std::move(other)) {} 8036: 8036: void swap(QMultiMap &other) noexcept { QMap::swap(other); } 8036: 8036: inline typename QMap::iterator replace(const Key &key, const T &value) 8036: { return QMap::insert(key, value); } 8036: inline typename QMap::iterator insert(const Key &key, const T &value) 8036: { return QMap::insertMulti(key, value); } 8036: inline typename QMap::iterator insert(typename QMap::const_iterator pos, const Key &key, const T &value) 8036: { return QMap::insertMulti(pos, key, value); } 8036: 8036: inline QMultiMap &operator+=(const QMultiMap &other) 8036: { this->unite(other); return *this; } 8036: inline QMultiMap operator+(const QMultiMap &other) const 8036: { QMultiMap result = *this; result += other; return result; } 8036: 8036: using QMap::contains; 8036: using QMap::remove; 8036: using QMap::count; 8036: using QMap::find; 8036: using QMap::constFind; 8036: 8036: bool contains(const Key &key, const T &value) const; 8036: 8036: int remove(const Key &key, const T &value); 8036: 8036: int count(const Key &key, const T &value) const; 8036: 8036: typename QMap::iterator find(const Key &key, const T &value) { 8036: typename QMap::iterator i(find(key)); 8036: typename QMap::iterator end(this->end()); 8036: while (i != end && !qMapLessThanKey(key, i.key())) { 8036: if (i.value() == value) 8036: return i; 8036: ++i; 8036: } 8036: return end; 8036: } 8036: typename QMap::const_iterator find(const Key &key, const T &value) const { 8036: typename QMap::const_iterator i(constFind(key)); 8036: typename QMap::const_iterator end(QMap::constEnd()); 8036: while (i != end && !qMapLessThanKey(key, i.key())) { 8036: if (i.value() == value) 8036: return i; 8036: ++i; 8036: } 8036: return end; 8036: } 8036: typename QMap::const_iterator constFind(const Key &key, const T &value) const 8036: { return find(key, value); } 8036: private: 8036: T &operator[](const Key &key); 8036: const T operator[](const Key &key) const; 8036: }; 8036: 8036: template 8036: inline bool QMultiMap::contains(const Key &key, const T &value) const 8036: { 8036: return constFind(key, value) != QMap::constEnd(); 8036: } 8036: 8036: template 8036: inline int QMultiMap::remove(const Key &key, const T &value) 8036: { 8036: int n = 0; 8036: typename QMap::iterator i(find(key)); 8036: typename QMap::iterator end(QMap::end()); 8036: while (i != end && !qMapLessThanKey(key, i.key())) { 8036: if (i.value() == value) { 8036: i = this->erase(i); 8036: ++n; 8036: } else { 8036: ++i; 8036: } 8036: } 8036: return n; 8036: } 8036: 8036: template 8036: inline int QMultiMap::count(const Key &key, const T &value) const 8036: { 8036: int n = 0; 8036: typename QMap::const_iterator i(constFind(key)); 8036: typename QMap::const_iterator end(QMap::constEnd()); 8036: while (i != end && !qMapLessThanKey(key, i.key())) { 8036: if (i.value() == value) 8036: ++n; 8036: ++i; 8036: } 8036: return n; 8036: } 8036: 8036: template class QMapIterator { typedef typename QMap::const_iterator const_iterator; typedef const_iterator Item; QMap c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QMapIterator(const QMap &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QMapIterator &operator=(const QMap &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8036: template class QMutableMapIterator { typedef typename QMap::iterator iterator; typedef typename QMap::const_iterator const_iterator; typedef iterator Item; QMap *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableMapIterator(QMap &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableMapIterator &operator=(QMap &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8036: 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 1 3 4 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qscopedpointer.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8036: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qscopedpointer.h" 2 3 4 8036: 8036: 8036: 8036: template 8036: struct QScopedPointerDeleter 8036: { 8036: static inline void cleanup(T *pointer) 8036: { 8036: 8036: 8036: 8036: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8036: (void) sizeof(IsIncompleteType); 8036: 8036: delete pointer; 8036: } 8036: }; 8036: 8036: template 8036: struct QScopedPointerArrayDeleter 8036: { 8036: static inline void cleanup(T *pointer) 8036: { 8036: 8036: 8036: 8036: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8036: (void) sizeof(IsIncompleteType); 8036: 8036: delete [] pointer; 8036: } 8036: }; 8036: 8036: struct QScopedPointerPodDeleter 8036: { 8036: static inline void cleanup(void *pointer) { if (pointer) free(pointer); } 8036: }; 8036: 8036: 8036: template 8036: struct QScopedPointerObjectDeleteLater 8036: { 8036: static inline void cleanup(T *pointer) { if (pointer) pointer->deleteLater(); } 8036: }; 8036: 8036: class QObject; 8036: typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; 8036: 8036: 8036: template > 8036: class QScopedPointer 8036: { 8036: typedef T *QScopedPointer:: *RestrictedBool; 8036: public: 8036: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) 8036: { 8036: } 8036: 8036: inline ~QScopedPointer() 8036: { 8036: T *oldD = this->d; 8036: Cleanup::cleanup(oldD); 8036: } 8036: 8036: inline T &operator*() const 8036: { 8036: do { } while ((false) && (d)); 8036: return *d; 8036: } 8036: 8036: T *operator->() const noexcept 8036: { 8036: return d; 8036: } 8036: 8036: bool operator!() const noexcept 8036: { 8036: return !d; 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: operator RestrictedBool() const noexcept 8036: { 8036: return isNull() ? nullptr : &QScopedPointer::d; 8036: } 8036: 8036: 8036: T *data() const noexcept 8036: { 8036: return d; 8036: } 8036: 8036: bool isNull() const noexcept 8036: { 8036: return !d; 8036: } 8036: 8036: void reset(T *other = nullptr) noexcept(noexcept(Cleanup::cleanup(std::declval()))) 8036: { 8036: if (d == other) 8036: return; 8036: T *oldD = d; 8036: d = other; 8036: Cleanup::cleanup(oldD); 8036: } 8036: 8036: T *take() noexcept 8036: { 8036: T *oldD = d; 8036: d = nullptr; 8036: return oldD; 8036: } 8036: 8036: void swap(QScopedPointer &other) noexcept 8036: { 8036: qSwap(d, other.d); 8036: } 8036: 8036: typedef T *pointer; 8036: 8036: protected: 8036: T *d; 8036: 8036: private: 8036: QScopedPointer(const QScopedPointer &) = delete; QScopedPointer &operator=(const QScopedPointer &) = delete; 8036: }; 8036: 8036: template 8036: inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8036: { 8036: return lhs.data() == rhs.data(); 8036: } 8036: 8036: template 8036: inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8036: { 8036: return lhs.data() != rhs.data(); 8036: } 8036: 8036: template 8036: inline bool operator==(const QScopedPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator==(std::nullptr_t, const QScopedPointer &rhs) noexcept 8036: { 8036: return rhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(const QScopedPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return !lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(std::nullptr_t, const QScopedPointer &rhs) noexcept 8036: { 8036: return !rhs.isNull(); 8036: } 8036: 8036: template 8036: inline void swap(QScopedPointer &p1, QScopedPointer &p2) noexcept 8036: { p1.swap(p2); } 8036: 8036: 8036: namespace QtPrivate { 8036: template struct QScopedArrayEnsureSameType; 8036: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8036: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8036: } 8036: 8036: template > 8036: class QScopedArrayPointer : public QScopedPointer 8036: { 8036: public: 8036: inline QScopedArrayPointer() : QScopedPointer(nullptr) {} 8036: 8036: template 8036: explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = nullptr) 8036: : QScopedPointer(p) 8036: { 8036: } 8036: 8036: inline T &operator[](int i) 8036: { 8036: return this->d[i]; 8036: } 8036: 8036: inline const T &operator[](int i) const 8036: { 8036: return this->d[i]; 8036: } 8036: 8036: void swap(QScopedArrayPointer &other) noexcept 8036: { QScopedPointer::swap(other); } 8036: 8036: private: 8036: explicit inline QScopedArrayPointer(void *) { 8036: # 260 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8036: } 8036: 8036: QScopedArrayPointer(const QScopedArrayPointer &) = delete; QScopedArrayPointer &operator=(const QScopedArrayPointer &) = delete; 8036: }; 8036: 8036: template 8036: inline void swap(QScopedArrayPointer &lhs, QScopedArrayPointer &rhs) noexcept 8036: { lhs.swap(rhs); } 8036: 8036: 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject_impl.h" 1 3 4 8036: # 51 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8036: 8036: 8036: 8036: namespace QtPrivate { 8036: # 65 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8036: template struct TypesAreDeclaredMetaType { enum { Value = false }; }; 8036: template <> struct TypesAreDeclaredMetaType> { enum { Value = true }; }; 8036: template struct TypesAreDeclaredMetaType > 8036: { enum { Value = QMetaTypeId2::Defined && TypesAreDeclaredMetaType>::Value }; }; 8036: 8036: template ::Value > struct ConnectionTypes 8036: { static const int *types() { return nullptr; } }; 8036: template <> struct ConnectionTypes, true> 8036: { static const int *types() { return nullptr; } }; 8036: template struct ConnectionTypes, true> 8036: { static const int *types() { static const int t[sizeof...(Args) + 1] = { (QtPrivate::QMetaTypeIdHelper::qt_metatype_id())..., 0 }; return t; } }; 8036: 8036: 8036: class QSlotObjectBase { 8036: QAtomicInt m_ref; 8036: 8036: 8036: 8036: typedef void (*ImplFn)(int which, QSlotObjectBase* this_, QObject *receiver, void **args, bool *ret); 8036: const ImplFn m_impl; 8036: protected: 8036: enum Operation { 8036: Destroy, 8036: Call, 8036: Compare, 8036: 8036: NumOperations 8036: }; 8036: public: 8036: explicit QSlotObjectBase(ImplFn fn) : m_ref(1), m_impl(fn) {} 8036: 8036: inline int ref() noexcept { return m_ref.ref(); } 8036: inline void destroyIfLastRef() noexcept 8036: { if (!m_ref.deref()) m_impl(Destroy, this, nullptr, nullptr, nullptr); } 8036: 8036: inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, nullptr, a, &ret); return ret; } 8036: inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, nullptr); } 8036: protected: 8036: ~QSlotObjectBase() {} 8036: private: 8036: QSlotObjectBase(const QSlotObjectBase &) = delete; QSlotObjectBase &operator=(const QSlotObjectBase &) = delete; 8036: }; 8036: 8036: 8036: template class QSlotObject : public QSlotObjectBase 8036: { 8036: typedef QtPrivate::FunctionPointer FuncType; 8036: Func function; 8036: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8036: { 8036: switch (which) { 8036: case Destroy: 8036: delete static_cast(this_); 8036: break; 8036: case Call: 8036: FuncType::template call(static_cast(this_)->function, static_cast(r), a); 8036: break; 8036: case Compare: 8036: *ret = *reinterpret_cast(a) == static_cast(this_)->function; 8036: break; 8036: case NumOperations: ; 8036: } 8036: } 8036: public: 8036: explicit QSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8036: }; 8036: 8036: 8036: template class QStaticSlotObject : public QSlotObjectBase 8036: { 8036: typedef QtPrivate::FunctionPointer FuncType; 8036: Func function; 8036: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8036: { 8036: switch (which) { 8036: case Destroy: 8036: delete static_cast(this_); 8036: break; 8036: case Call: 8036: FuncType::template call(static_cast(this_)->function, r, a); 8036: break; 8036: case Compare: 8036: case NumOperations: 8036: (void)ret;; 8036: } 8036: } 8036: public: 8036: explicit QStaticSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8036: }; 8036: 8036: 8036: 8036: template class QFunctorSlotObject : public QSlotObjectBase 8036: { 8036: typedef QtPrivate::Functor FuncType; 8036: Func function; 8036: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8036: { 8036: switch (which) { 8036: case Destroy: 8036: delete static_cast(this_); 8036: break; 8036: case Call: 8036: FuncType::template call(static_cast(this_)->function, r, a); 8036: break; 8036: case Compare: 8036: case NumOperations: 8036: (void)ret;; 8036: } 8036: } 8036: public: 8036: explicit QFunctorSlotObject(const Func &f) : QSlotObjectBase(&impl), function(f) {} 8036: }; 8036: } 8036: 8036: 8036: 8036: # 57 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8036: 8036: 8036: # 1 "/usr/include/c++/8/chrono" 1 3 4 8036: # 32 "/usr/include/c++/8/chrono" 3 4 8036: 8036: # 33 "/usr/include/c++/8/chrono" 3 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/c++/8/ratio" 1 3 8036: # 32 "/usr/include/c++/8/ratio" 3 8036: 8036: # 33 "/usr/include/c++/8/ratio" 3 8036: # 43 "/usr/include/c++/8/ratio" 3 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 55 "/usr/include/c++/8/ratio" 3 8036: template 8036: struct __static_sign 8036: : integral_constant 8036: { }; 8036: 8036: template 8036: struct __static_abs 8036: : integral_constant::value> 8036: { }; 8036: 8036: template 8036: struct __static_gcd 8036: : __static_gcd<_Qn, (_Pn % _Qn)> 8036: { }; 8036: 8036: template 8036: struct __static_gcd<_Pn, 0> 8036: : integral_constant::value> 8036: { }; 8036: 8036: template 8036: struct __static_gcd<0, _Qn> 8036: : integral_constant::value> 8036: { }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct __safe_multiply 8036: { 8036: private: 8036: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8036: 8036: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 8036: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 8036: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 8036: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 8036: 8036: static_assert(__a1 == 0 || __b1 == 0, 8036: "overflow in multiplication"); 8036: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 8036: "overflow in multiplication"); 8036: static_assert(__b0 * __a0 <= 0x7fffffffffffffffL, 8036: "overflow in multiplication"); 8036: static_assert((__a0 * __b1 + __b0 * __a1) * __c 8036: <= 0x7fffffffffffffffL - __b0 * __a0, 8036: "overflow in multiplication"); 8036: 8036: public: 8036: static const intmax_t value = _Pn * _Qn; 8036: }; 8036: 8036: 8036: 8036: template 8036: struct __big_less 8036: : integral_constant 8036: { }; 8036: 8036: template 8036: struct __big_add 8036: { 8036: static constexpr uintmax_t __lo = __lo1 + __lo2; 8036: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 8036: (__lo1 + __lo2 < __lo1)); 8036: }; 8036: 8036: 8036: template 8036: struct __big_sub 8036: { 8036: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 8036: "Internal library error"); 8036: static constexpr uintmax_t __lo = __lo1 - __lo2; 8036: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 8036: (__lo1 < __lo2)); 8036: }; 8036: 8036: 8036: template 8036: struct __big_mul 8036: { 8036: private: 8036: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8036: static constexpr uintmax_t __x0 = __x % __c; 8036: static constexpr uintmax_t __x1 = __x / __c; 8036: static constexpr uintmax_t __y0 = __y % __c; 8036: static constexpr uintmax_t __y1 = __y / __c; 8036: static constexpr uintmax_t __x0y0 = __x0 * __y0; 8036: static constexpr uintmax_t __x0y1 = __x0 * __y1; 8036: static constexpr uintmax_t __x1y0 = __x1 * __y0; 8036: static constexpr uintmax_t __x1y1 = __x1 * __y1; 8036: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 8036: static constexpr uintmax_t __mix_lo = __mix * __c; 8036: static constexpr uintmax_t __mix_hi 8036: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 8036: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 8036: public: 8036: static constexpr uintmax_t __hi = _Res::__hi; 8036: static constexpr uintmax_t __lo = _Res::__lo; 8036: }; 8036: 8036: 8036: 8036: template 8036: struct __big_div_impl 8036: { 8036: private: 8036: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 8036: "Internal library error"); 8036: static_assert(__n1 < __d, "Internal library error"); 8036: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8036: static constexpr uintmax_t __d1 = __d / __c; 8036: static constexpr uintmax_t __d0 = __d % __c; 8036: 8036: static constexpr uintmax_t __q1x = __n1 / __d1; 8036: static constexpr uintmax_t __r1x = __n1 % __d1; 8036: static constexpr uintmax_t __m = __q1x * __d0; 8036: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 8036: static constexpr uintmax_t __r1z = __r1y + __d; 8036: static constexpr uintmax_t __r1 8036: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 8036: ? (__r1z + __d) : __r1z : __r1y) - __m; 8036: static constexpr uintmax_t __q1 8036: = __q1x - ((__r1y < __m) 8036: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 8036: static constexpr uintmax_t __q0x = __r1 / __d1; 8036: static constexpr uintmax_t __r0x = __r1 % __d1; 8036: static constexpr uintmax_t __n = __q0x * __d0; 8036: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 8036: static constexpr uintmax_t __r0z = __r0y + __d; 8036: static constexpr uintmax_t __r0 8036: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 8036: ? (__r0z + __d) : __r0z : __r0y) - __n; 8036: static constexpr uintmax_t __q0 8036: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 8036: && (__r0z < __n)) ? 2 : 1 : 0); 8036: 8036: public: 8036: static constexpr uintmax_t __quot = __q1 * __c + __q0; 8036: static constexpr uintmax_t __rem = __r0; 8036: 8036: private: 8036: typedef __big_mul<__quot, __d> _Prod; 8036: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 8036: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8036: "Internal library error"); 8036: }; 8036: 8036: template 8036: struct __big_div 8036: { 8036: private: 8036: static_assert(__d != 0, "Internal library error"); 8036: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 8036: "This library calls __builtin_clzll on uintmax_t, which " 8036: "is unsafe on your platform. Please complain to " 8036: "http://gcc.gnu.org/bugzilla/"); 8036: static constexpr int __shift = __builtin_clzll(__d); 8036: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 8036: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 8036: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 8036: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 8036: static constexpr uintmax_t __new_d = __d * __c1; 8036: static constexpr uintmax_t __new_n0 = __n0 * __c1; 8036: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 8036: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 8036: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 8036: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 8036: 8036: public: 8036: static constexpr uintmax_t __quot_hi = __n1 / __d; 8036: static constexpr uintmax_t __quot_lo = _Res::__quot; 8036: static constexpr uintmax_t __rem = _Res::__rem / __c1; 8036: 8036: private: 8036: typedef __big_mul<__quot_lo, __d> _P0; 8036: typedef __big_mul<__quot_hi, __d> _P1; 8036: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 8036: 8036: static_assert(_P1::__hi == 0, "Internal library error"); 8036: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 8036: 8036: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8036: "Internal library error"); 8036: static_assert(__rem < __d, "Internal library error"); 8036: }; 8036: # 262 "/usr/include/c++/8/ratio" 3 8036: template 8036: struct ratio 8036: { 8036: static_assert(_Den != 0, "denominator cannot be zero"); 8036: static_assert(_Num >= -0x7fffffffffffffffL && _Den >= -0x7fffffffffffffffL, 8036: "out of range"); 8036: 8036: 8036: static constexpr intmax_t num = 8036: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 8036: 8036: static constexpr intmax_t den = 8036: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 8036: 8036: typedef ratio type; 8036: }; 8036: 8036: template 8036: constexpr intmax_t ratio<_Num, _Den>::num; 8036: 8036: template 8036: constexpr intmax_t ratio<_Num, _Den>::den; 8036: 8036: template 8036: struct __ratio_multiply 8036: { 8036: private: 8036: static const intmax_t __gcd1 = 8036: __static_gcd<_R1::num, _R2::den>::value; 8036: static const intmax_t __gcd2 = 8036: __static_gcd<_R2::num, _R1::den>::value; 8036: 8036: public: 8036: typedef ratio< 8036: __safe_multiply<(_R1::num / __gcd1), 8036: (_R2::num / __gcd2)>::value, 8036: __safe_multiply<(_R1::den / __gcd2), 8036: (_R2::den / __gcd1)>::value> type; 8036: 8036: static constexpr intmax_t num = type::num; 8036: static constexpr intmax_t den = type::den; 8036: }; 8036: 8036: template 8036: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 8036: 8036: template 8036: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 8036: 8036: 8036: template 8036: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 8036: 8036: template 8036: struct __ratio_divide 8036: { 8036: static_assert(_R2::num != 0, "division by 0"); 8036: 8036: typedef typename __ratio_multiply< 8036: _R1, 8036: ratio<_R2::den, _R2::num>>::type type; 8036: 8036: static constexpr intmax_t num = type::num; 8036: static constexpr intmax_t den = type::den; 8036: }; 8036: 8036: template 8036: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 8036: 8036: template 8036: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 8036: 8036: 8036: template 8036: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 8036: 8036: 8036: template 8036: struct ratio_equal 8036: : integral_constant 8036: { }; 8036: 8036: 8036: template 8036: struct ratio_not_equal 8036: : integral_constant::value> 8036: { }; 8036: 8036: 8036: template, 8036: typename _Right = __big_mul<_R2::num,_R1::den> > 8036: struct __ratio_less_impl_1 8036: : integral_constant::value> 8036: { }; 8036: 8036: template::value 8036: != __static_sign<_R2::num>::value)), 8036: bool = (__static_sign<_R1::num>::value == -1 8036: && __static_sign<_R2::num>::value == -1)> 8036: struct __ratio_less_impl 8036: : __ratio_less_impl_1<_R1, _R2>::type 8036: { }; 8036: 8036: template 8036: struct __ratio_less_impl<_R1, _R2, true, false> 8036: : integral_constant 8036: { }; 8036: 8036: template 8036: struct __ratio_less_impl<_R1, _R2, false, true> 8036: : __ratio_less_impl_1, 8036: ratio<-_R1::num, _R1::den> >::type 8036: { }; 8036: 8036: 8036: template 8036: struct ratio_less 8036: : __ratio_less_impl<_R1, _R2>::type 8036: { }; 8036: 8036: 8036: template 8036: struct ratio_less_equal 8036: : integral_constant::value> 8036: { }; 8036: 8036: 8036: template 8036: struct ratio_greater 8036: : integral_constant::value> 8036: { }; 8036: 8036: 8036: template 8036: struct ratio_greater_equal 8036: : integral_constant::value> 8036: { }; 8036: # 421 "/usr/include/c++/8/ratio" 3 8036: template= 0), 8036: bool = (_R2::num >= 0), 8036: bool = ratio_less::value, _R1::den>, 8036: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 8036: struct __ratio_add_impl 8036: { 8036: private: 8036: typedef typename __ratio_add_impl< 8036: ratio<-_R1::num, _R1::den>, 8036: ratio<-_R2::num, _R2::den> >::type __t; 8036: public: 8036: typedef ratio<-__t::num, __t::den> type; 8036: }; 8036: 8036: 8036: template 8036: struct __ratio_add_impl<_R1, _R2, true, true, __b> 8036: { 8036: private: 8036: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8036: static constexpr uintmax_t __d2 = _R2::den / __g; 8036: typedef __big_mul<_R1::den, __d2> __d; 8036: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8036: typedef __big_mul<_R2::num, _R1::den / __g> __y; 8036: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8036: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 8036: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8036: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8036: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8036: static_assert(__n_final::__rem == 0, "Internal library error"); 8036: static_assert(__n_final::__quot_hi == 0 && 8036: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8036: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8036: static_assert(__d_final::__hi == 0 && 8036: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8036: public: 8036: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8036: }; 8036: 8036: template 8036: struct __ratio_add_impl<_R1, _R2, false, true, true> 8036: : __ratio_add_impl<_R2, _R1> 8036: { }; 8036: 8036: 8036: template 8036: struct __ratio_add_impl<_R1, _R2, true, false, false> 8036: { 8036: private: 8036: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8036: static constexpr uintmax_t __d2 = _R2::den / __g; 8036: typedef __big_mul<_R1::den, __d2> __d; 8036: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8036: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 8036: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8036: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8036: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8036: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8036: static_assert(__n_final::__rem == 0, "Internal library error"); 8036: static_assert(__n_final::__quot_hi == 0 && 8036: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8036: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8036: static_assert(__d_final::__hi == 0 && 8036: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8036: public: 8036: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8036: }; 8036: 8036: template 8036: struct __ratio_add 8036: { 8036: typedef typename __ratio_add_impl<_R1, _R2>::type type; 8036: static constexpr intmax_t num = type::num; 8036: static constexpr intmax_t den = type::den; 8036: }; 8036: 8036: template 8036: constexpr intmax_t __ratio_add<_R1, _R2>::num; 8036: 8036: template 8036: constexpr intmax_t __ratio_add<_R1, _R2>::den; 8036: 8036: 8036: template 8036: using ratio_add = typename __ratio_add<_R1, _R2>::type; 8036: 8036: template 8036: struct __ratio_subtract 8036: { 8036: typedef typename __ratio_add< 8036: _R1, 8036: ratio<-_R2::num, _R2::den>>::type type; 8036: 8036: static constexpr intmax_t num = type::num; 8036: static constexpr intmax_t den = type::den; 8036: }; 8036: 8036: template 8036: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 8036: 8036: template 8036: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 8036: 8036: 8036: template 8036: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 8036: 8036: 8036: typedef ratio<1, 1000000000000000000> atto; 8036: typedef ratio<1, 1000000000000000> femto; 8036: typedef ratio<1, 1000000000000> pico; 8036: typedef ratio<1, 1000000000> nano; 8036: typedef ratio<1, 1000000> micro; 8036: typedef ratio<1, 1000> milli; 8036: typedef ratio<1, 100> centi; 8036: typedef ratio<1, 10> deci; 8036: typedef ratio< 10, 1> deca; 8036: typedef ratio< 100, 1> hecto; 8036: typedef ratio< 1000, 1> kilo; 8036: typedef ratio< 1000000, 1> mega; 8036: typedef ratio< 1000000000, 1> giga; 8036: typedef ratio< 1000000000000, 1> tera; 8036: typedef ratio< 1000000000000000, 1> peta; 8036: typedef ratio< 1000000000000000000, 1> exa; 8036: 8036: 8036: 8036: } 8036: # 39 "/usr/include/c++/8/chrono" 2 3 8036: 8036: 8036: # 1 "/usr/include/c++/8/ctime" 1 3 8036: # 39 "/usr/include/c++/8/ctime" 3 8036: 8036: # 40 "/usr/include/c++/8/ctime" 3 8036: # 58 "/usr/include/c++/8/ctime" 3 8036: namespace std 8036: { 8036: using ::clock_t; 8036: using ::time_t; 8036: using ::tm; 8036: 8036: using ::clock; 8036: using ::difftime; 8036: using ::mktime; 8036: using ::time; 8036: using ::asctime; 8036: using ::ctime; 8036: using ::gmtime; 8036: using ::localtime; 8036: using ::strftime; 8036: } 8036: # 42 "/usr/include/c++/8/chrono" 2 3 8036: # 1 "/usr/include/c++/8/bits/parse_numbers.h" 1 3 8036: # 33 "/usr/include/c++/8/bits/parse_numbers.h" 3 8036: 8036: # 34 "/usr/include/c++/8/bits/parse_numbers.h" 3 8036: # 43 "/usr/include/c++/8/chrono" 2 3 8036: 8036: 8036: 8036: namespace std __attribute__ ((__visibility__ ("default"))) 8036: { 8036: 8036: # 61 "/usr/include/c++/8/chrono" 3 8036: namespace chrono 8036: { 8036: template> 8036: struct duration; 8036: 8036: template 8036: struct time_point; 8036: } 8036: 8036: 8036: 8036: template 8036: struct __duration_common_type_wrapper 8036: { 8036: private: 8036: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 8036: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 8036: typedef typename _CT::type __cr; 8036: typedef ratio<__gcd_num::value, 8036: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 8036: public: 8036: typedef __success_type> type; 8036: }; 8036: 8036: template 8036: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 8036: { typedef __failure_type type; }; 8036: 8036: template 8036: struct common_type, 8036: chrono::duration<_Rep2, _Period2>> 8036: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 8036: { }; 8036: 8036: 8036: 8036: template 8036: struct __timepoint_common_type_wrapper 8036: { 8036: typedef __success_type> 8036: type; 8036: }; 8036: 8036: template 8036: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 8036: { typedef __failure_type type; }; 8036: 8036: template 8036: struct common_type, 8036: chrono::time_point<_Clock, _Duration2>> 8036: : public __timepoint_common_type_wrapper>::type, _Clock>::type 8036: { }; 8036: 8036: namespace chrono 8036: { 8036: 8036: template 8036: struct __duration_cast_impl 8036: { 8036: template 8036: static constexpr _ToDur 8036: __cast(const duration<_Rep, _Period>& __d) 8036: { 8036: typedef typename _ToDur::rep __to_rep; 8036: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 8036: * static_cast<_CR>(_CF::num) 8036: / static_cast<_CR>(_CF::den))); 8036: } 8036: }; 8036: 8036: template 8036: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 8036: { 8036: template 8036: static constexpr _ToDur 8036: __cast(const duration<_Rep, _Period>& __d) 8036: { 8036: typedef typename _ToDur::rep __to_rep; 8036: return _ToDur(static_cast<__to_rep>(__d.count())); 8036: } 8036: }; 8036: 8036: template 8036: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 8036: { 8036: template 8036: static constexpr _ToDur 8036: __cast(const duration<_Rep, _Period>& __d) 8036: { 8036: typedef typename _ToDur::rep __to_rep; 8036: return _ToDur(static_cast<__to_rep>( 8036: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 8036: } 8036: }; 8036: 8036: template 8036: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 8036: { 8036: template 8036: static constexpr _ToDur 8036: __cast(const duration<_Rep, _Period>& __d) 8036: { 8036: typedef typename _ToDur::rep __to_rep; 8036: return _ToDur(static_cast<__to_rep>( 8036: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 8036: } 8036: }; 8036: 8036: template 8036: struct __is_duration 8036: : std::false_type 8036: { }; 8036: 8036: template 8036: struct __is_duration> 8036: : std::true_type 8036: { }; 8036: 8036: template 8036: using __enable_if_is_duration 8036: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 8036: 8036: template 8036: using __disable_if_is_duration 8036: = typename enable_if::value, _Tp>::type; 8036: 8036: 8036: template 8036: constexpr __enable_if_is_duration<_ToDur> 8036: duration_cast(const duration<_Rep, _Period>& __d) 8036: { 8036: typedef typename _ToDur::period __to_period; 8036: typedef typename _ToDur::rep __to_rep; 8036: typedef ratio_divide<_Period, __to_period> __cf; 8036: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 8036: __cr; 8036: typedef __duration_cast_impl<_ToDur, __cf, __cr, 8036: __cf::num == 1, __cf::den == 1> __dc; 8036: return __dc::__cast(__d); 8036: } 8036: 8036: 8036: template 8036: struct treat_as_floating_point 8036: : is_floating_point<_Rep> 8036: { }; 8036: # 274 "/usr/include/c++/8/chrono" 3 8036: template 8036: struct duration_values 8036: { 8036: static constexpr _Rep 8036: zero() 8036: { return _Rep(0); } 8036: 8036: static constexpr _Rep 8036: max() 8036: { return numeric_limits<_Rep>::max(); } 8036: 8036: static constexpr _Rep 8036: min() 8036: { return numeric_limits<_Rep>::lowest(); } 8036: }; 8036: 8036: template 8036: struct __is_ratio 8036: : std::false_type 8036: { }; 8036: 8036: template 8036: struct __is_ratio> 8036: : std::true_type 8036: { }; 8036: 8036: 8036: template 8036: struct duration 8036: { 8036: private: 8036: template 8036: using __is_float = treat_as_floating_point<_Rep2>; 8036: 8036: 8036: template 8036: using __is_harmonic 8036: = __bool_constant::den == 1>; 8036: 8036: public: 8036: 8036: typedef _Rep rep; 8036: typedef _Period period; 8036: 8036: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 8036: static_assert(__is_ratio<_Period>::value, 8036: "period must be a specialization of ratio"); 8036: static_assert(_Period::num > 0, "period must be positive"); 8036: 8036: 8036: constexpr duration() = default; 8036: 8036: duration(const duration&) = default; 8036: 8036: template, 8036: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 8036: constexpr explicit duration(const _Rep2& __rep) 8036: : __r(static_cast(__rep)) { } 8036: 8036: template, 8036: __and_<__is_harmonic<_Period2>, 8036: __not_<__is_float<_Rep2>>>>>> 8036: constexpr duration(const duration<_Rep2, _Period2>& __d) 8036: : __r(duration_cast(__d).count()) { } 8036: 8036: ~duration() = default; 8036: duration& operator=(const duration&) = default; 8036: 8036: 8036: constexpr rep 8036: count() const 8036: { return __r; } 8036: 8036: 8036: constexpr duration 8036: operator+() const 8036: { return *this; } 8036: 8036: constexpr duration 8036: operator-() const 8036: { return duration(-__r); } 8036: 8036: duration& 8036: operator++() 8036: { 8036: ++__r; 8036: return *this; 8036: } 8036: 8036: duration 8036: operator++(int) 8036: { return duration(__r++); } 8036: 8036: duration& 8036: operator--() 8036: { 8036: --__r; 8036: return *this; 8036: } 8036: 8036: duration 8036: operator--(int) 8036: { return duration(__r--); } 8036: 8036: duration& 8036: operator+=(const duration& __d) 8036: { 8036: __r += __d.count(); 8036: return *this; 8036: } 8036: 8036: duration& 8036: operator-=(const duration& __d) 8036: { 8036: __r -= __d.count(); 8036: return *this; 8036: } 8036: 8036: duration& 8036: operator*=(const rep& __rhs) 8036: { 8036: __r *= __rhs; 8036: return *this; 8036: } 8036: 8036: duration& 8036: operator/=(const rep& __rhs) 8036: { 8036: __r /= __rhs; 8036: return *this; 8036: } 8036: 8036: 8036: template 8036: 8036: typename enable_if::value, 8036: duration&>::type 8036: operator%=(const rep& __rhs) 8036: { 8036: __r %= __rhs; 8036: return *this; 8036: } 8036: 8036: template 8036: 8036: typename enable_if::value, 8036: duration&>::type 8036: operator%=(const duration& __d) 8036: { 8036: __r %= __d.count(); 8036: return *this; 8036: } 8036: 8036: 8036: static constexpr duration 8036: zero() 8036: { return duration(duration_values::zero()); } 8036: 8036: static constexpr duration 8036: min() 8036: { return duration(duration_values::min()); } 8036: 8036: static constexpr duration 8036: max() 8036: { return duration(duration_values::max()); } 8036: 8036: private: 8036: rep __r; 8036: }; 8036: 8036: template 8036: constexpr typename common_type, 8036: duration<_Rep2, _Period2>>::type 8036: operator+(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __cd; 8036: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 8036: } 8036: 8036: template 8036: constexpr typename common_type, 8036: duration<_Rep2, _Period2>>::type 8036: operator-(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __cd; 8036: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 8036: } 8036: 8036: 8036: 8036: template::type> 8036: using __common_rep_t 8036: = typename enable_if::value, _CRep>::type; 8036: 8036: template 8036: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 8036: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8036: { 8036: typedef duration::type, _Period> 8036: __cd; 8036: return __cd(__cd(__d).count() * __s); 8036: } 8036: 8036: template 8036: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 8036: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 8036: { return __d * __s; } 8036: 8036: template 8036: constexpr 8036: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8036: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8036: { 8036: typedef duration::type, _Period> 8036: __cd; 8036: return __cd(__cd(__d).count() / __s); 8036: } 8036: 8036: template 8036: constexpr typename common_type<_Rep1, _Rep2>::type 8036: operator/(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __cd; 8036: return __cd(__lhs).count() / __cd(__rhs).count(); 8036: } 8036: 8036: 8036: template 8036: constexpr 8036: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8036: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8036: { 8036: typedef duration::type, _Period> 8036: __cd; 8036: return __cd(__cd(__d).count() % __s); 8036: } 8036: 8036: template 8036: constexpr typename common_type, 8036: duration<_Rep2, _Period2>>::type 8036: operator%(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __cd; 8036: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 8036: } 8036: 8036: 8036: template 8036: constexpr bool 8036: operator==(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __ct; 8036: return __ct(__lhs).count() == __ct(__rhs).count(); 8036: } 8036: 8036: template 8036: constexpr bool 8036: operator<(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<__dur1,__dur2>::type __ct; 8036: return __ct(__lhs).count() < __ct(__rhs).count(); 8036: } 8036: 8036: template 8036: constexpr bool 8036: operator!=(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { return !(__lhs == __rhs); } 8036: 8036: template 8036: constexpr bool 8036: operator<=(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { return !(__rhs < __lhs); } 8036: 8036: template 8036: constexpr bool 8036: operator>(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { return __rhs < __lhs; } 8036: 8036: template 8036: constexpr bool 8036: operator>=(const duration<_Rep1, _Period1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { return !(__lhs < __rhs); } 8036: 8036: 8036: typedef duration nanoseconds; 8036: 8036: 8036: typedef duration microseconds; 8036: 8036: 8036: typedef duration milliseconds; 8036: 8036: 8036: typedef duration seconds; 8036: 8036: 8036: typedef duration> minutes; 8036: 8036: 8036: typedef duration> hours; 8036: 8036: 8036: template 8036: struct time_point 8036: { 8036: typedef _Clock clock; 8036: typedef _Dur duration; 8036: typedef typename duration::rep rep; 8036: typedef typename duration::period period; 8036: 8036: constexpr time_point() : __d(duration::zero()) 8036: { } 8036: 8036: constexpr explicit time_point(const duration& __dur) 8036: : __d(__dur) 8036: { } 8036: 8036: 8036: template>> 8036: constexpr time_point(const time_point& __t) 8036: : __d(__t.time_since_epoch()) 8036: { } 8036: 8036: 8036: constexpr duration 8036: time_since_epoch() const 8036: { return __d; } 8036: 8036: 8036: time_point& 8036: operator+=(const duration& __dur) 8036: { 8036: __d += __dur; 8036: return *this; 8036: } 8036: 8036: time_point& 8036: operator-=(const duration& __dur) 8036: { 8036: __d -= __dur; 8036: return *this; 8036: } 8036: 8036: 8036: static constexpr time_point 8036: min() 8036: { return time_point(duration::min()); } 8036: 8036: static constexpr time_point 8036: max() 8036: { return time_point(duration::max()); } 8036: 8036: private: 8036: duration __d; 8036: }; 8036: 8036: 8036: template 8036: constexpr typename enable_if<__is_duration<_ToDur>::value, 8036: time_point<_Clock, _ToDur>>::type 8036: time_point_cast(const time_point<_Clock, _Dur>& __t) 8036: { 8036: typedef time_point<_Clock, _ToDur> __time_point; 8036: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 8036: } 8036: # 707 "/usr/include/c++/8/chrono" 3 8036: template 8036: constexpr time_point<_Clock, 8036: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8036: operator+(const time_point<_Clock, _Dur1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<_Dur1,__dur2>::type __ct; 8036: typedef time_point<_Clock, __ct> __time_point; 8036: return __time_point(__lhs.time_since_epoch() + __rhs); 8036: } 8036: 8036: template 8036: constexpr time_point<_Clock, 8036: typename common_type, _Dur2>::type> 8036: operator+(const duration<_Rep1, _Period1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { 8036: typedef duration<_Rep1, _Period1> __dur1; 8036: typedef typename common_type<__dur1,_Dur2>::type __ct; 8036: typedef time_point<_Clock, __ct> __time_point; 8036: return __time_point(__rhs.time_since_epoch() + __lhs); 8036: } 8036: 8036: template 8036: constexpr time_point<_Clock, 8036: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8036: operator-(const time_point<_Clock, _Dur1>& __lhs, 8036: const duration<_Rep2, _Period2>& __rhs) 8036: { 8036: typedef duration<_Rep2, _Period2> __dur2; 8036: typedef typename common_type<_Dur1,__dur2>::type __ct; 8036: typedef time_point<_Clock, __ct> __time_point; 8036: return __time_point(__lhs.time_since_epoch() -__rhs); 8036: } 8036: 8036: template 8036: constexpr typename common_type<_Dur1, _Dur2>::type 8036: operator-(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 8036: 8036: template 8036: constexpr bool 8036: operator==(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 8036: 8036: template 8036: constexpr bool 8036: operator!=(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return !(__lhs == __rhs); } 8036: 8036: template 8036: constexpr bool 8036: operator<(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 8036: 8036: template 8036: constexpr bool 8036: operator<=(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return !(__rhs < __lhs); } 8036: 8036: template 8036: constexpr bool 8036: operator>(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return __rhs < __lhs; } 8036: 8036: template 8036: constexpr bool 8036: operator>=(const time_point<_Clock, _Dur1>& __lhs, 8036: const time_point<_Clock, _Dur2>& __rhs) 8036: { return !(__lhs < __rhs); } 8036: # 807 "/usr/include/c++/8/chrono" 3 8036: inline namespace _V2 { 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct system_clock 8036: { 8036: typedef chrono::nanoseconds duration; 8036: typedef duration::rep rep; 8036: typedef duration::period period; 8036: typedef chrono::time_point time_point; 8036: 8036: static_assert(system_clock::duration::min() 8036: < system_clock::duration::zero(), 8036: "a clock's minimum duration cannot be less than its epoch"); 8036: 8036: static constexpr bool is_steady = false; 8036: 8036: static time_point 8036: now() noexcept; 8036: 8036: 8036: static std::time_t 8036: to_time_t(const time_point& __t) noexcept 8036: { 8036: return std::time_t(duration_cast 8036: (__t.time_since_epoch()).count()); 8036: } 8036: 8036: static time_point 8036: from_time_t(std::time_t __t) noexcept 8036: { 8036: typedef chrono::time_point __from; 8036: return time_point_cast 8036: (__from(chrono::seconds(__t))); 8036: } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct steady_clock 8036: { 8036: typedef chrono::nanoseconds duration; 8036: typedef duration::rep rep; 8036: typedef duration::period period; 8036: typedef chrono::time_point time_point; 8036: 8036: static constexpr bool is_steady = true; 8036: 8036: static time_point 8036: now() noexcept; 8036: }; 8036: # 874 "/usr/include/c++/8/chrono" 3 8036: using high_resolution_clock = system_clock; 8036: 8036: } 8036: } 8036: # 976 "/usr/include/c++/8/chrono" 3 8036: 8036: } 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: class QEvent; 8036: class QTimerEvent; 8036: class QChildEvent; 8036: struct QMetaObject; 8036: class QVariant; 8036: class QObjectPrivate; 8036: class QObject; 8036: class QThread; 8036: class QWidget; 8036: 8036: class QRegExp; 8036: 8036: 8036: class QRegularExpression; 8036: 8036: 8036: class QObjectUserData; 8036: 8036: struct QDynamicMetaObjectData; 8036: 8036: typedef QList QObjectList; 8036: 8036: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QString &name, 8036: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8036: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, 8036: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8036: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re, 8036: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8036: __attribute__((visibility("default"))) QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options); 8036: 8036: class __attribute__((visibility("default"))) QObjectData { 8036: public: 8036: virtual ~QObjectData() = 0; 8036: QObject *q_ptr; 8036: QObject *parent; 8036: QObjectList children; 8036: 8036: uint isWidget : 1; 8036: uint blockSig : 1; 8036: uint wasDeleted : 1; 8036: uint isDeletingChildren : 1; 8036: uint sendChildEvents : 1; 8036: uint receiveChildEvents : 1; 8036: uint isWindow : 1; 8036: uint unused : 25; 8036: int postedEvents; 8036: QDynamicMetaObjectData *metaObject; 8036: QMetaObject *dynamicMetaObject() const; 8036: }; 8036: 8036: 8036: class __attribute__((visibility("default"))) QObject 8036: { 8036: public: 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 118 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: struct QPrivateSignal {}; 8036: 8036: inline QObjectPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QObjectPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QObjectPrivate; 8036: 8036: public: 8036: explicit QObject(QObject *parent=nullptr); 8036: virtual ~QObject(); 8036: 8036: virtual bool event(QEvent *event); 8036: virtual bool eventFilter(QObject *watched, QEvent *event); 8036: # 144 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: QString objectName() const; 8036: void setObjectName(const QString &name); 8036: 8036: inline bool isWidgetType() const { return d_ptr->isWidget; } 8036: inline bool isWindowType() const { return d_ptr->isWindow; } 8036: 8036: inline bool signalsBlocked() const noexcept { return d_ptr->blockSig; } 8036: bool blockSignals(bool b) noexcept; 8036: 8036: QThread *thread() const; 8036: void moveToThread(QThread *thread); 8036: 8036: int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); 8036: 8036: inline __attribute__((always_inline)) 8036: int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) 8036: { 8036: return startTimer(int(time.count()), timerType); 8036: } 8036: 8036: void killTimer(int id); 8036: 8036: template 8036: inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); 8036: } 8036: 8036: template 8036: inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: QList list; 8036: qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, 8036: reinterpret_cast *>(&list), options); 8036: return list; 8036: } 8036: 8036: 8036: template 8036: inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: QList list; 8036: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8036: reinterpret_cast *>(&list), options); 8036: return list; 8036: } 8036: 8036: 8036: 8036: template 8036: inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: QList list; 8036: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8036: reinterpret_cast *>(&list), options); 8036: return list; 8036: } 8036: 8036: 8036: inline const QObjectList &children() const { return d_ptr->children; } 8036: 8036: void setParent(QObject *parent); 8036: void installEventFilter(QObject *filterObj); 8036: void removeEventFilter(QObject *obj); 8036: 8036: static QMetaObject::Connection connect(const QObject *sender, const char *signal, 8036: const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 8036: 8036: static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, 8036: const QObject *receiver, const QMetaMethod &method, 8036: Qt::ConnectionType type = Qt::AutoConnection); 8036: 8036: inline QMetaObject::Connection connect(const QObject *sender, const char *signal, 8036: const char *member, Qt::ConnectionType type = Qt::AutoConnection) const; 8036: # 232 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: template 8036: static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8036: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot, 8036: Qt::ConnectionType type = Qt::AutoConnection) 8036: { 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: typedef QtPrivate::FunctionPointer SlotType; 8036: 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8036: ; 8036: 8036: 8036: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8036: ; 8036: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8036: ; 8036: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8036: ; 8036: 8036: const int *types = nullptr; 8036: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8036: types = QtPrivate::ConnectionTypes::types(); 8036: 8036: return connectImpl(sender, reinterpret_cast(&signal), 8036: receiver, reinterpret_cast(&slot), 8036: new QtPrivate::QSlotObject::Value, 8036: typename SignalType::ReturnType>(slot), 8036: type, types, &SignalType::Object::staticMetaObject); 8036: } 8036: 8036: 8036: template 8036: static inline typename std::enable_if::ArgumentCount) >= 0, QMetaObject::Connection>::type 8036: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8036: { 8036: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8036: } 8036: 8036: 8036: template 8036: static inline typename std::enable_if::ArgumentCount) >= 0 && 8036: !QtPrivate::FunctionPointer::IsPointerToMemberFunction, QMetaObject::Connection>::type 8036: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8036: Qt::ConnectionType type = Qt::AutoConnection) 8036: { 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: typedef QtPrivate::FunctionPointer SlotType; 8036: 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8036: ; 8036: 8036: 8036: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8036: ; 8036: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8036: ; 8036: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8036: ; 8036: 8036: const int *types = nullptr; 8036: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8036: types = QtPrivate::ConnectionTypes::types(); 8036: 8036: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8036: new QtPrivate::QStaticSlotObject::Value, 8036: typename SignalType::ReturnType>(slot), 8036: type, types, &SignalType::Object::staticMetaObject); 8036: } 8036: 8036: 8036: template 8036: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8036: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8036: { 8036: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8036: } 8036: 8036: 8036: template 8036: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8036: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8036: Qt::ConnectionType type = Qt::AutoConnection) 8036: { 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: const int FunctorArgumentCount = QtPrivate::ComputeFunctorArgumentCount::Value; 8036: 8036: static_assert(bool((FunctorArgumentCount >= 0)), "Signal and slot arguments are not compatible.") 8036: ; 8036: const int SlotArgumentCount = (FunctorArgumentCount >= 0) ? FunctorArgumentCount : 0; 8036: typedef typename QtPrivate::FunctorReturnType::Value>::Value SlotReturnType; 8036: 8036: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8036: ; 8036: 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8036: ; 8036: 8036: const int *types = nullptr; 8036: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8036: types = QtPrivate::ConnectionTypes::types(); 8036: 8036: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8036: new QtPrivate::QFunctorSlotObject::Value, 8036: typename SignalType::ReturnType>(slot), 8036: type, types, &SignalType::Object::staticMetaObject); 8036: } 8036: 8036: 8036: static bool disconnect(const QObject *sender, const char *signal, 8036: const QObject *receiver, const char *member); 8036: static bool disconnect(const QObject *sender, const QMetaMethod &signal, 8036: const QObject *receiver, const QMetaMethod &member); 8036: inline bool disconnect(const char *signal = nullptr, 8036: const QObject *receiver = nullptr, const char *member = nullptr) const 8036: { return disconnect(this, signal, receiver, member); } 8036: inline bool disconnect(const QObject *receiver, const char *member = nullptr) const 8036: { return disconnect(this, nullptr, receiver, member); } 8036: static bool disconnect(const QMetaObject::Connection &); 8036: 8036: 8036: 8036: 8036: 8036: template 8036: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8036: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot) 8036: { 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: typedef QtPrivate::FunctionPointer SlotType; 8036: 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8036: ; 8036: 8036: 8036: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8036: ; 8036: 8036: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, reinterpret_cast(&slot), 8036: &SignalType::Object::staticMetaObject); 8036: } 8036: template 8036: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8036: const QObject *receiver, void **zero) 8036: { 8036: 8036: 8036: 8036: do { } while ((false) && (!zero)); 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, zero, 8036: &SignalType::Object::staticMetaObject); 8036: } 8036: 8036: 8036: 8036: 8036: void dumpObjectTree(); 8036: void dumpObjectInfo(); 8036: 8036: void dumpObjectTree() const; 8036: void dumpObjectInfo() const; 8036: 8036: 8036: bool setProperty(const char *name, const QVariant &value); 8036: QVariant property(const char *name) const; 8036: QList dynamicPropertyNames() const; 8036: 8036: 8036: 8036: static uint registerUserData(); 8036: void setUserData(uint id, QObjectUserData* data); 8036: QObjectUserData* userData(uint id) const; 8036: 8036: 8036: public : 8036: void destroyed(QObject * = nullptr); 8036: void objectNameChanged(const QString &objectName, QPrivateSignal); 8036: 8036: public: 8036: inline QObject *parent() const { return d_ptr->parent; } 8036: 8036: inline bool inherits(const char *classname) const 8036: { return const_cast(this)->qt_metacast(classname) != nullptr; } 8036: 8036: public : 8036: void deleteLater(); 8036: 8036: protected: 8036: QObject *sender() const; 8036: int senderSignalIndex() const; 8036: int receivers(const char* signal) const; 8036: bool isSignalConnected(const QMetaMethod &signal) const; 8036: 8036: virtual void timerEvent(QTimerEvent *event); 8036: virtual void childEvent(QChildEvent *event); 8036: virtual void customEvent(QEvent *event); 8036: 8036: virtual void connectNotify(const QMetaMethod &signal); 8036: virtual void disconnectNotify(const QMetaMethod &signal); 8036: 8036: protected: 8036: QObject(QObjectPrivate &dd, QObject *parent = nullptr); 8036: 8036: protected: 8036: QScopedPointer d_ptr; 8036: 8036: static const QMetaObject staticQtMetaObject; 8036: friend inline const QMetaObject *qt_getQtMetaObject() noexcept; 8036: 8036: friend struct QMetaObject; 8036: friend struct QMetaObjectPrivate; 8036: friend class QMetaCallEvent; 8036: friend class QApplication; 8036: friend class QApplicationPrivate; 8036: friend class QCoreApplication; 8036: friend class QCoreApplicationPrivate; 8036: friend class QWidget; 8036: friend class QThreadData; 8036: 8036: private: 8036: QObject(const QObject &) = delete; QObject &operator=(const QObject &) = delete; 8036: 8036: 8036: private: 8036: static QMetaObject::Connection connectImpl(const QObject *sender, void **signal, 8036: const QObject *receiver, void **slotPtr, 8036: QtPrivate::QSlotObjectBase *slot, Qt::ConnectionType type, 8036: const int *types, const QMetaObject *senderMetaObject); 8036: 8036: static bool disconnectImpl(const QObject *sender, void **signal, const QObject *receiver, void **slot, 8036: const QMetaObject *senderMetaObject); 8036: 8036: }; 8036: 8036: inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, 8036: const char *amember, Qt::ConnectionType atype) const 8036: { return connect(asender, asignal, this, amember, atype); } 8036: 8036: inline const QMetaObject *qt_getQtMetaObject() noexcept 8036: { return &QObject::staticQtMetaObject; } 8036: 8036: 8036: class __attribute__((visibility("default"))) QObjectUserData { 8036: public: 8036: virtual ~QObjectUserData(); 8036: }; 8036: # 508 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: template 8036: inline T qobject_cast(QObject *object) 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8036: ; 8036: return static_cast(ObjType::staticMetaObject.cast(object)); 8036: } 8036: 8036: template 8036: inline T qobject_cast(const QObject *object) 8036: { 8036: typedef typename std::remove_cv::type>::type ObjType; 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8036: ; 8036: return static_cast(ObjType::staticMetaObject.cast(object)); 8036: } 8036: 8036: 8036: template inline const char * qobject_interface_iid() 8036: { return nullptr; } 8036: # 541 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobject.h" 3 4 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QObject *); 8036: 8036: 8036: class QSignalBlocker 8036: { 8036: public: 8036: inline explicit QSignalBlocker(QObject *o) noexcept; 8036: inline explicit QSignalBlocker(QObject &o) noexcept; 8036: inline ~QSignalBlocker(); 8036: 8036: 8036: inline QSignalBlocker(QSignalBlocker &&other) noexcept; 8036: inline QSignalBlocker &operator=(QSignalBlocker &&other) noexcept; 8036: 8036: 8036: inline void reblock() noexcept; 8036: inline void unblock() noexcept; 8036: private: 8036: QSignalBlocker(const QSignalBlocker &) = delete; QSignalBlocker &operator=(const QSignalBlocker &) = delete; 8036: QObject * m_o; 8036: bool m_blocked; 8036: bool m_inhibited; 8036: }; 8036: 8036: QSignalBlocker::QSignalBlocker(QObject *o) noexcept 8036: : m_o(o), 8036: m_blocked(o && o->blockSignals(true)), 8036: m_inhibited(false) 8036: {} 8036: 8036: QSignalBlocker::QSignalBlocker(QObject &o) noexcept 8036: : m_o(&o), 8036: m_blocked(o.blockSignals(true)), 8036: m_inhibited(false) 8036: {} 8036: 8036: 8036: QSignalBlocker::QSignalBlocker(QSignalBlocker &&other) noexcept 8036: : m_o(other.m_o), 8036: m_blocked(other.m_blocked), 8036: m_inhibited(other.m_inhibited) 8036: { 8036: other.m_o = nullptr; 8036: } 8036: 8036: QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other) noexcept 8036: { 8036: if (this != &other) { 8036: 8036: 8036: if (m_o != other.m_o || (!m_inhibited && other.m_inhibited)) 8036: unblock(); 8036: m_o = other.m_o; 8036: m_blocked = other.m_blocked; 8036: m_inhibited = other.m_inhibited; 8036: 8036: other.m_o = nullptr; 8036: } 8036: return *this; 8036: } 8036: 8036: 8036: QSignalBlocker::~QSignalBlocker() 8036: { 8036: if (m_o && !m_inhibited) 8036: m_o->blockSignals(m_blocked); 8036: } 8036: 8036: void QSignalBlocker::reblock() noexcept 8036: { 8036: if (m_o) m_o->blockSignals(true); 8036: m_inhibited = false; 8036: } 8036: 8036: void QSignalBlocker::unblock() noexcept 8036: { 8036: if (m_o) m_o->blockSignals(m_blocked); 8036: m_inhibited = true; 8036: } 8036: 8036: namespace QtPrivate { 8036: inline QObject & deref_for_methodcall(QObject &o) { return o; } 8036: inline QObject & deref_for_methodcall(QObject *o) { return *o; } 8036: } 8036: 8036: 8036: 8036: # 52 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: class QBitArray; 8036: class QDataStream; 8036: class QDate; 8036: class QDateTime; 8036: class QEasingCurve; 8036: class QLine; 8036: class QLineF; 8036: class QLocale; 8036: class QMatrix; 8036: class QTransform; 8036: class QStringList; 8036: class QTime; 8036: class QPoint; 8036: class QPointF; 8036: class QSize; 8036: class QSizeF; 8036: class QRect; 8036: class QRectF; 8036: 8036: class QRegExp; 8036: 8036: 8036: class QRegularExpression; 8036: 8036: class QTextFormat; 8036: class QTextLength; 8036: class QUrl; 8036: class QVariant; 8036: class QVariantComparisonHelper; 8036: 8036: template 8036: inline QVariant qVariantFromValue(const T &); 8036: 8036: template 8036: inline T qvariant_cast(const QVariant &); 8036: 8036: namespace QtPrivate { 8036: 8036: template 8036: struct ObjectInvoker 8036: { 8036: static ReturnType invoke(Argument a) 8036: { 8036: return Derived::object(a); 8036: } 8036: }; 8036: 8036: template 8036: struct MetaTypeInvoker 8036: { 8036: static ReturnType invoke(Argument a) 8036: { 8036: return Derived::metaType(a); 8036: } 8036: }; 8036: 8036: template ::Value> 8036: struct TreatAsQObjectBeforeMetaType : ObjectInvoker 8036: { 8036: }; 8036: 8036: template 8036: struct TreatAsQObjectBeforeMetaType : MetaTypeInvoker 8036: { 8036: }; 8036: 8036: template struct QVariantValueHelper; 8036: } 8036: 8036: class __attribute__((visibility("default"))) QVariant 8036: { 8036: public: 8036: enum Type { 8036: Invalid = QMetaType::UnknownType, 8036: Bool = QMetaType::Bool, 8036: Int = QMetaType::Int, 8036: UInt = QMetaType::UInt, 8036: LongLong = QMetaType::LongLong, 8036: ULongLong = QMetaType::ULongLong, 8036: Double = QMetaType::Double, 8036: Char = QMetaType::QChar, 8036: Map = QMetaType::QVariantMap, 8036: List = QMetaType::QVariantList, 8036: String = QMetaType::QString, 8036: StringList = QMetaType::QStringList, 8036: ByteArray = QMetaType::QByteArray, 8036: BitArray = QMetaType::QBitArray, 8036: Date = QMetaType::QDate, 8036: Time = QMetaType::QTime, 8036: DateTime = QMetaType::QDateTime, 8036: Url = QMetaType::QUrl, 8036: Locale = QMetaType::QLocale, 8036: Rect = QMetaType::QRect, 8036: RectF = QMetaType::QRectF, 8036: Size = QMetaType::QSize, 8036: SizeF = QMetaType::QSizeF, 8036: Line = QMetaType::QLine, 8036: LineF = QMetaType::QLineF, 8036: Point = QMetaType::QPoint, 8036: PointF = QMetaType::QPointF, 8036: RegExp = QMetaType::QRegExp, 8036: RegularExpression = QMetaType::QRegularExpression, 8036: Hash = QMetaType::QVariantHash, 8036: EasingCurve = QMetaType::QEasingCurve, 8036: Uuid = QMetaType::QUuid, 8036: ModelIndex = QMetaType::QModelIndex, 8036: PersistentModelIndex = QMetaType::QPersistentModelIndex, 8036: LastCoreType = QMetaType::LastCoreType, 8036: 8036: Font = QMetaType::QFont, 8036: Pixmap = QMetaType::QPixmap, 8036: Brush = QMetaType::QBrush, 8036: Color = QMetaType::QColor, 8036: Palette = QMetaType::QPalette, 8036: Image = QMetaType::QImage, 8036: Polygon = QMetaType::QPolygon, 8036: Region = QMetaType::QRegion, 8036: Bitmap = QMetaType::QBitmap, 8036: Cursor = QMetaType::QCursor, 8036: KeySequence = QMetaType::QKeySequence, 8036: Pen = QMetaType::QPen, 8036: TextLength = QMetaType::QTextLength, 8036: TextFormat = QMetaType::QTextFormat, 8036: Matrix = QMetaType::QMatrix, 8036: Transform = QMetaType::QTransform, 8036: Matrix4x4 = QMetaType::QMatrix4x4, 8036: Vector2D = QMetaType::QVector2D, 8036: Vector3D = QMetaType::QVector3D, 8036: Vector4D = QMetaType::QVector4D, 8036: Quaternion = QMetaType::QQuaternion, 8036: PolygonF = QMetaType::QPolygonF, 8036: Icon = QMetaType::QIcon, 8036: LastGuiType = QMetaType::LastGuiType, 8036: 8036: SizePolicy = QMetaType::QSizePolicy, 8036: 8036: UserType = QMetaType::User, 8036: LastType = 0xffffffff 8036: }; 8036: 8036: QVariant() noexcept : d() {} 8036: ~QVariant(); 8036: QVariant(Type type); 8036: QVariant(int typeId, const void *copy); 8036: QVariant(int typeId, const void *copy, uint flags); 8036: QVariant(const QVariant &other); 8036: 8036: 8036: QVariant(QDataStream &s); 8036: 8036: 8036: QVariant(int i); 8036: QVariant(uint ui); 8036: QVariant(qlonglong ll); 8036: QVariant(qulonglong ull); 8036: QVariant(bool b); 8036: QVariant(double d); 8036: QVariant(float f); 8036: 8036: 8036: 8036: 8036: QVariant(const QByteArray &bytearray); 8036: QVariant(const QBitArray &bitarray); 8036: QVariant(const QString &string); 8036: QVariant(QLatin1String string); 8036: QVariant(const QStringList &stringlist); 8036: QVariant(QChar qchar); 8036: QVariant(const QDate &date); 8036: QVariant(const QTime &time); 8036: QVariant(const QDateTime &datetime); 8036: QVariant(const QList &list); 8036: QVariant(const QMap &map); 8036: QVariant(const QHash &hash); 8036: 8036: QVariant(const QSize &size); 8036: QVariant(const QSizeF &size); 8036: QVariant(const QPoint &pt); 8036: QVariant(const QPointF &pt); 8036: QVariant(const QLine &line); 8036: QVariant(const QLineF &line); 8036: QVariant(const QRect &rect); 8036: QVariant(const QRectF &rect); 8036: 8036: QVariant(const QLocale &locale); 8036: 8036: QVariant(const QRegExp ®Exp); 8036: 8036: 8036: 8036: QVariant(const QRegularExpression &re); 8036: 8036: QVariant(const QUrl &url); 8036: QVariant(const QEasingCurve &easing); 8036: QVariant(const QUuid &uuid); 8036: QVariant(const QModelIndex &modelIndex); 8036: QVariant(const QPersistentModelIndex &modelIndex); 8036: QVariant(const QJsonValue &jsonValue); 8036: QVariant(const QJsonObject &jsonObject); 8036: QVariant(const QJsonArray &jsonArray); 8036: QVariant(const QJsonDocument &jsonDocument); 8036: 8036: 8036: QVariant& operator=(const QVariant &other); 8036: 8036: inline QVariant(QVariant &&other) noexcept : d(other.d) 8036: { other.d = Private(); } 8036: inline QVariant &operator=(QVariant &&other) noexcept 8036: { qSwap(d, other.d); return *this; } 8036: 8036: 8036: inline void swap(QVariant &other) noexcept { qSwap(d, other.d); } 8036: 8036: Type type() const; 8036: int userType() const; 8036: const char *typeName() const; 8036: 8036: bool canConvert(int targetTypeId) const; 8036: bool convert(int targetTypeId); 8036: 8036: inline bool isValid() const; 8036: bool isNull() const; 8036: 8036: void clear(); 8036: 8036: void detach(); 8036: inline bool isDetached() const; 8036: 8036: int toInt(bool *ok = nullptr) const; 8036: uint toUInt(bool *ok = nullptr) const; 8036: qlonglong toLongLong(bool *ok = nullptr) const; 8036: qulonglong toULongLong(bool *ok = nullptr) const; 8036: bool toBool() const; 8036: double toDouble(bool *ok = nullptr) const; 8036: float toFloat(bool *ok = nullptr) const; 8036: qreal toReal(bool *ok = nullptr) const; 8036: QByteArray toByteArray() const; 8036: QBitArray toBitArray() const; 8036: QString toString() const; 8036: QStringList toStringList() const; 8036: QChar toChar() const; 8036: QDate toDate() const; 8036: QTime toTime() const; 8036: QDateTime toDateTime() const; 8036: QList toList() const; 8036: QMap toMap() const; 8036: QHash toHash() const; 8036: 8036: 8036: QPoint toPoint() const; 8036: QPointF toPointF() const; 8036: QRect toRect() const; 8036: QSize toSize() const; 8036: QSizeF toSizeF() const; 8036: QLine toLine() const; 8036: QLineF toLineF() const; 8036: QRectF toRectF() const; 8036: 8036: QLocale toLocale() const; 8036: 8036: QRegExp toRegExp() const; 8036: 8036: 8036: 8036: QRegularExpression toRegularExpression() const; 8036: 8036: QUrl toUrl() const; 8036: QEasingCurve toEasingCurve() const; 8036: QUuid toUuid() const; 8036: QModelIndex toModelIndex() const; 8036: QPersistentModelIndex toPersistentModelIndex() const; 8036: QJsonValue toJsonValue() const; 8036: QJsonObject toJsonObject() const; 8036: QJsonArray toJsonArray() const; 8036: QJsonDocument toJsonDocument() const; 8036: 8036: 8036: 8036: void load(QDataStream &ds); 8036: void save(QDataStream &ds) const; 8036: 8036: static const char *typeToName(int typeId); 8036: static Type nameToType(const char *name); 8036: 8036: void *data(); 8036: const void *constData() const; 8036: inline const void *data() const { return constData(); } 8036: 8036: template 8036: inline void setValue(const T &value); 8036: 8036: template 8036: inline T value() const 8036: { return qvariant_cast(*this); } 8036: 8036: template 8036: static inline QVariant fromValue(const T &value) 8036: { return qVariantFromValue(value); } 8036: 8036: template 8036: bool canConvert() const 8036: { return canConvert(qMetaTypeId()); } 8036: 8036: public: 8036: 8036: struct PrivateShared 8036: { 8036: inline PrivateShared(void *v) : ptr(v), ref(1) { } 8036: void *ptr; 8036: QAtomicInt ref; 8036: }; 8036: struct Private 8036: { 8036: inline Private() noexcept : type(Invalid), is_shared(false), is_null(true) 8036: { data.ptr = nullptr; } 8036: 8036: 8036: explicit inline Private(uint variantType) noexcept 8036: : type(variantType), is_shared(false), is_null(false) 8036: {} 8036: 8036: inline Private(const Private &other) noexcept 8036: : data(other.data), type(other.type), 8036: is_shared(other.is_shared), is_null(other.is_null) 8036: {} 8036: union Data 8036: { 8036: char c; 8036: uchar uc; 8036: short s; 8036: signed char sc; 8036: ushort us; 8036: int i; 8036: uint u; 8036: long l; 8036: ulong ul; 8036: bool b; 8036: double d; 8036: float f; 8036: qreal real; 8036: qlonglong ll; 8036: qulonglong ull; 8036: QObject *o; 8036: void *ptr; 8036: PrivateShared *shared; 8036: } data; 8036: uint type : 30; 8036: uint is_shared : 1; 8036: uint is_null : 1; 8036: }; 8036: public: 8036: typedef void (*f_construct)(Private *, const void *); 8036: typedef void (*f_clear)(Private *); 8036: typedef bool (*f_null)(const Private *); 8036: 8036: typedef void (*f_load)(Private *, QDataStream &); 8036: typedef void (*f_save)(const Private *, QDataStream &); 8036: 8036: typedef bool (*f_compare)(const Private *, const Private *); 8036: typedef bool (*f_convert)(const QVariant::Private *d, int t, void *, bool *); 8036: typedef bool (*f_canConvert)(const QVariant::Private *d, int t); 8036: typedef void (*f_debugStream)(QDebug, const QVariant &); 8036: struct Handler { 8036: f_construct construct; 8036: f_clear clear; 8036: f_null isNull; 8036: 8036: f_load load; 8036: f_save save; 8036: 8036: f_compare compare; 8036: f_convert convert; 8036: f_canConvert canConvert; 8036: f_debugStream debugStream; 8036: }; 8036: 8036: 8036: inline bool operator==(const QVariant &v) const 8036: { return cmp(v); } 8036: inline bool operator!=(const QVariant &v) const 8036: { return !cmp(v); } 8036: inline bool operator<(const QVariant &v) const 8036: { return compare(v) < 0; } 8036: inline bool operator<=(const QVariant &v) const 8036: { return compare(v) <= 0; } 8036: inline bool operator>(const QVariant &v) const 8036: { return compare(v) > 0; } 8036: inline bool operator>=(const QVariant &v) const 8036: { return compare(v) >= 0; } 8036: 8036: protected: 8036: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8036: 8036: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8036: 8036: 8036: 8036: template 8036: friend inline T qvariant_cast(const QVariant &); 8036: template friend struct QtPrivate::QVariantValueHelper; 8036: protected: 8036: 8036: 8036: 8036: Private d; 8036: void create(int type, const void *copy); 8036: bool cmp(const QVariant &other) const; 8036: int compare(const QVariant &other) const; 8036: bool convert(const int t, void *ptr) const; 8036: 8036: private: 8036: 8036: inline QVariant(void *) = delete; 8036: 8036: 8036: 8036: 8036: 8036: 8036: QVariant(QMetaType::Type) = delete; 8036: 8036: 8036: 8036: 8036: 8036: 8036: QVariant(Qt::GlobalColor) = delete; 8036: QVariant(Qt::BrushStyle) = delete; 8036: QVariant(Qt::PenStyle) = delete; 8036: QVariant(Qt::CursorShape) = delete; 8036: 8036: 8036: inline QVariant(const char *) = delete; 8036: 8036: public: 8036: typedef Private DataPtr; 8036: inline DataPtr &data_ptr() { return d; } 8036: inline const DataPtr &data_ptr() const { return d; } 8036: }; 8036: 8036: template 8036: inline QVariant qVariantFromValue(const T &t) 8036: { 8036: return QVariant(qMetaTypeId(), &t, QTypeInfo::isPointer); 8036: } 8036: 8036: template <> 8036: inline QVariant qVariantFromValue(const QVariant &t) { return t; } 8036: 8036: template 8036: inline void qVariantSetValue(QVariant &v, const T &t) 8036: { 8036: 8036: const uint type = qMetaTypeId(); 8036: QVariant::Private &d = v.data_ptr(); 8036: if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { 8036: d.type = type; 8036: d.is_null = false; 8036: T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); 8036: if (QTypeInfo::isComplex) 8036: old->~T(); 8036: new (old) T(t); 8036: } else { 8036: v = QVariant(type, &t, QTypeInfo::isPointer); 8036: } 8036: } 8036: 8036: template <> 8036: inline void qVariantSetValue(QVariant &v, const QVariant &t) 8036: { 8036: v = t; 8036: } 8036: 8036: inline bool QVariant::isValid() const { return d.type != Invalid; } 8036: 8036: template 8036: inline void QVariant::setValue(const T &avalue) 8036: { qVariantSetValue(*this, avalue); } 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant& p); 8036: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant& p); 8036: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant::Type& p); 8036: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant::Type p); 8036: 8036: 8036: inline bool QVariant::isDetached() const 8036: { return !d.is_shared || d.data.shared->ref.load() == 1; } 8036: # 557 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8036: class QVariantComparisonHelper 8036: { 8036: public: 8036: inline QVariantComparisonHelper(const QVariant &var) 8036: : v(&var) {} 8036: private: 8036: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8036: const QVariant *v; 8036: }; 8036: 8036: inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) 8036: { 8036: return v1.cmp(*v2.v); 8036: } 8036: 8036: inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) 8036: { 8036: return !operator==(v1, v2); 8036: } 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QVariant)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QVariant >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QVariant) }; static inline const char *name() { return "QVariant"; } }; inline void swap(QVariant &value1, QVariant &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8036: 8036: class __attribute__((visibility("default"))) QSequentialIterable 8036: { 8036: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8036: public: 8036: struct __attribute__((visibility("default"))) const_iterator 8036: { 8036: private: 8036: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8036: QAtomicInt *ref; 8036: friend class QSequentialIterable; 8036: explicit const_iterator(const QSequentialIterable &iter, QAtomicInt *ref_); 8036: 8036: explicit const_iterator(const QtMetaTypePrivate::QSequentialIterableImpl &impl, QAtomicInt *ref_); 8036: 8036: void begin(); 8036: void end(); 8036: public: 8036: ~const_iterator(); 8036: 8036: const_iterator(const const_iterator &other); 8036: 8036: const_iterator& operator=(const const_iterator &other); 8036: 8036: const QVariant operator*() const; 8036: bool operator==(const const_iterator &o) const; 8036: bool operator!=(const const_iterator &o) const; 8036: const_iterator &operator++(); 8036: const_iterator operator++(int); 8036: const_iterator &operator--(); 8036: const_iterator operator--(int); 8036: const_iterator &operator+=(int j); 8036: const_iterator &operator-=(int j); 8036: const_iterator operator+(int j) const; 8036: const_iterator operator-(int j) const; 8036: }; 8036: 8036: friend struct const_iterator; 8036: 8036: 8036: explicit QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl impl); 8036: 8036: 8036: 8036: 8036: const_iterator begin() const; 8036: const_iterator end() const; 8036: 8036: QVariant at(int idx) const; 8036: int size() const; 8036: 8036: bool canReverseIterate() const; 8036: }; 8036: 8036: class __attribute__((visibility("default"))) QAssociativeIterable 8036: { 8036: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8036: public: 8036: struct __attribute__((visibility("default"))) const_iterator 8036: { 8036: private: 8036: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8036: QAtomicInt *ref; 8036: friend class QAssociativeIterable; 8036: explicit const_iterator(const QAssociativeIterable &iter, QAtomicInt *ref_); 8036: 8036: explicit const_iterator(const QtMetaTypePrivate::QAssociativeIterableImpl &impl, QAtomicInt *ref_); 8036: 8036: void begin(); 8036: void end(); 8036: void find(const QVariant &key); 8036: public: 8036: ~const_iterator(); 8036: const_iterator(const const_iterator &other); 8036: 8036: const_iterator& operator=(const const_iterator &other); 8036: 8036: const QVariant key() const; 8036: 8036: const QVariant value() const; 8036: 8036: const QVariant operator*() const; 8036: bool operator==(const const_iterator &o) const; 8036: bool operator!=(const const_iterator &o) const; 8036: const_iterator &operator++(); 8036: const_iterator operator++(int); 8036: const_iterator &operator--(); 8036: const_iterator operator--(int); 8036: const_iterator &operator+=(int j); 8036: const_iterator &operator-=(int j); 8036: const_iterator operator+(int j) const; 8036: const_iterator operator-(int j) const; 8036: }; 8036: 8036: friend struct const_iterator; 8036: 8036: 8036: explicit QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl impl); 8036: 8036: 8036: 8036: 8036: const_iterator begin() const; 8036: const_iterator end() const; 8036: const_iterator find(const QVariant &key) const; 8036: 8036: QVariant value(const QVariant &key) const; 8036: 8036: int size() const; 8036: }; 8036: 8036: 8036: namespace QtPrivate { 8036: template 8036: struct QVariantValueHelper : TreatAsQObjectBeforeMetaType, T, const QVariant &, T> 8036: { 8036: static T metaType(const QVariant &v) 8036: { 8036: const int vid = qMetaTypeId(); 8036: if (vid == v.userType()) 8036: return *reinterpret_cast(v.constData()); 8036: T t; 8036: if (v.convert(vid, &t)) 8036: return t; 8036: return T(); 8036: } 8036: 8036: static T object(const QVariant &v) 8036: { 8036: return qobject_cast(QMetaType::typeFlags(v.userType()) & QMetaType::PointerToQObject 8036: ? v.d.data.o 8036: : QVariantValueHelper::metaType(v)); 8036: } 8036: 8036: }; 8036: 8036: template 8036: struct QVariantValueHelperInterface : QVariantValueHelper 8036: { 8036: }; 8036: 8036: template<> 8036: struct QVariantValueHelperInterface 8036: { 8036: static QSequentialIterable invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId()) { 8036: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8036: } 8036: if (typeId == qMetaTypeId()) { 8036: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8036: } 8036: 8036: if (typeId == qMetaTypeId()) { 8036: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8036: } 8036: 8036: return QSequentialIterable(v.value()); 8036: } 8036: }; 8036: template<> 8036: struct QVariantValueHelperInterface 8036: { 8036: static QAssociativeIterable invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId()) { 8036: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8036: } 8036: if (typeId == qMetaTypeId()) { 8036: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8036: } 8036: return QAssociativeIterable(v.value()); 8036: } 8036: }; 8036: template<> 8036: struct QVariantValueHelperInterface 8036: { 8036: static QVariantList invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId() || typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8036: QSequentialIterable iter = QVariantValueHelperInterface::invoke(v); 8036: QVariantList l; 8036: l.reserve(iter.size()); 8036: for (QSequentialIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8036: l << *it; 8036: return l; 8036: } 8036: return QVariantValueHelper::invoke(v); 8036: } 8036: }; 8036: template<> 8036: struct QVariantValueHelperInterface 8036: { 8036: static QVariantHash invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8036: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8036: QVariantHash l; 8036: l.reserve(iter.size()); 8036: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8036: l.insertMulti(it.key().toString(), it.value()); 8036: return l; 8036: } 8036: return QVariantValueHelper::invoke(v); 8036: } 8036: }; 8036: template<> 8036: struct QVariantValueHelperInterface 8036: { 8036: static QVariantMap invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8036: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8036: QVariantMap l; 8036: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8036: l.insertMulti(it.key().toString(), it.value()); 8036: return l; 8036: } 8036: return QVariantValueHelper::invoke(v); 8036: } 8036: }; 8036: template<> 8036: struct QVariantValueHelperInterface > 8036: { 8036: static QPair invoke(const QVariant &v) 8036: { 8036: const int typeId = v.userType(); 8036: if (typeId == qMetaTypeId >()) 8036: return QVariantValueHelper >::invoke(v); 8036: 8036: if (QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8036: QtMetaTypePrivate::QPairVariantInterfaceImpl pi = v.value(); 8036: 8036: const QtMetaTypePrivate::VariantData d1 = pi.first(); 8036: QVariant v1(d1.metaTypeId, d1.data, d1.flags); 8036: if (d1.metaTypeId == qMetaTypeId()) 8036: v1 = *reinterpret_cast(d1.data); 8036: 8036: const QtMetaTypePrivate::VariantData d2 = pi.second(); 8036: QVariant v2(d2.metaTypeId, d2.data, d2.flags); 8036: if (d2.metaTypeId == qMetaTypeId()) 8036: v2 = *reinterpret_cast(d2.data); 8036: 8036: return QPair(v1, v2); 8036: } 8036: return QVariantValueHelper >::invoke(v); 8036: } 8036: }; 8036: } 8036: 8036: template inline T qvariant_cast(const QVariant &v) 8036: { 8036: return QtPrivate::QVariantValueHelperInterface::invoke(v); 8036: } 8036: 8036: template<> inline QVariant qvariant_cast(const QVariant &v) 8036: { 8036: if (v.userType() == QMetaType::QVariant) 8036: return *reinterpret_cast(v.constData()); 8036: return v; 8036: } 8036: # 858 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant::Type); 8036: 8036: 8036: 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qmetaobject.h" 2 3 4 8036: 8036: 8036: 8036: 8036: template class QList; 8036: 8036: 8036: 8036: class __attribute__((visibility("default"))) QMetaMethod 8036: { 8036: public: 8036: constexpr inline QMetaMethod() : mobj(nullptr), handle(0) {} 8036: 8036: QByteArray methodSignature() const; 8036: QByteArray name() const; 8036: const char *typeName() const; 8036: int returnType() const; 8036: int parameterCount() const; 8036: int parameterType(int index) const; 8036: void getParameterTypes(int *types) const; 8036: QList parameterTypes() const; 8036: QList parameterNames() const; 8036: const char *tag() const; 8036: enum Access { Private, Protected, Public }; 8036: Access access() const; 8036: enum MethodType { Method, Signal, Slot, Constructor }; 8036: MethodType methodType() const; 8036: enum Attributes { Compatibility = 0x1, Cloned = 0x2, Scriptable = 0x4 }; 8036: int attributes() const; 8036: int methodIndex() const; 8036: int revision() const; 8036: 8036: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8036: 8036: bool invoke(QObject *object, 8036: Qt::ConnectionType connectionType, 8036: QGenericReturnArgument returnValue, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const; 8036: inline bool invoke(QObject *object, 8036: QGenericReturnArgument returnValue, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const 8036: { 8036: return invoke(object, Qt::AutoConnection, returnValue, 8036: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: inline bool invoke(QObject *object, 8036: Qt::ConnectionType connectionType, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const 8036: { 8036: return invoke(object, connectionType, QGenericReturnArgument(), 8036: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: inline bool invoke(QObject *object, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const 8036: { 8036: return invoke(object, Qt::AutoConnection, QGenericReturnArgument(), 8036: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: 8036: bool invokeOnGadget(void *gadget, 8036: QGenericReturnArgument returnValue, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const; 8036: inline bool invokeOnGadget(void *gadget, 8036: QGenericArgument val0 = QGenericArgument(nullptr), 8036: QGenericArgument val1 = QGenericArgument(), 8036: QGenericArgument val2 = QGenericArgument(), 8036: QGenericArgument val3 = QGenericArgument(), 8036: QGenericArgument val4 = QGenericArgument(), 8036: QGenericArgument val5 = QGenericArgument(), 8036: QGenericArgument val6 = QGenericArgument(), 8036: QGenericArgument val7 = QGenericArgument(), 8036: QGenericArgument val8 = QGenericArgument(), 8036: QGenericArgument val9 = QGenericArgument()) const 8036: { 8036: return invokeOnGadget(gadget, QGenericReturnArgument(), 8036: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8036: } 8036: 8036: inline bool isValid() const { return mobj != nullptr; } 8036: 8036: template 8036: static inline QMetaMethod fromSignal(PointerToMemberFunction signal) 8036: { 8036: typedef QtPrivate::FunctionPointer SignalType; 8036: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8036: ; 8036: return fromSignalImpl(&SignalType::Object::staticMetaObject, 8036: reinterpret_cast(&signal)); 8036: } 8036: 8036: private: 8036: 8036: 8036: 8036: 8036: 8036: 8036: static QMetaMethod fromSignalImpl(const QMetaObject *, void **); 8036: 8036: const QMetaObject *mobj; 8036: uint handle; 8036: friend class QMetaMethodPrivate; 8036: friend struct QMetaObject; 8036: friend struct QMetaObjectPrivate; 8036: friend class QObject; 8036: friend bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); 8036: friend bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaMethod)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaMethod >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaMethod) }; static inline const char *name() { return "QMetaMethod"; } }; 8036: 8036: inline bool operator==(const QMetaMethod &m1, const QMetaMethod &m2) 8036: { return m1.mobj == m2.mobj && m1.handle == m2.handle; } 8036: inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) 8036: { return !(m1 == m2); } 8036: 8036: class __attribute__((visibility("default"))) QMetaEnum 8036: { 8036: public: 8036: constexpr inline QMetaEnum() : mobj(nullptr), handle(0) {} 8036: 8036: const char *name() const; 8036: bool isFlag() const; 8036: bool isScoped() const; 8036: 8036: int keyCount() const; 8036: const char *key(int index) const; 8036: int value(int index) const; 8036: 8036: const char *scope() const; 8036: 8036: int keyToValue(const char *key, bool *ok = nullptr) const; 8036: const char* valueToKey(int value) const; 8036: int keysToValue(const char * keys, bool *ok = nullptr) const; 8036: QByteArray valueToKeys(int value) const; 8036: 8036: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8036: 8036: inline bool isValid() const { return name() != nullptr; } 8036: 8036: template static QMetaEnum fromType() { 8036: static_assert(bool(QtPrivate::IsQEnumHelper::Value), "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG") 8036: ; 8036: const QMetaObject *metaObject = qt_getEnumMetaObject(T()); 8036: const char *name = qt_getEnumName(T()); 8036: return metaObject->enumerator(metaObject->indexOfEnumerator(name)); 8036: } 8036: 8036: private: 8036: const QMetaObject *mobj; 8036: uint handle; 8036: friend struct QMetaObject; 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaEnum)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaEnum >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaEnum) }; static inline const char *name() { return "QMetaEnum"; } }; 8036: 8036: class __attribute__((visibility("default"))) QMetaProperty 8036: { 8036: public: 8036: QMetaProperty(); 8036: 8036: const char *name() const; 8036: const char *typeName() const; 8036: QVariant::Type type() const; 8036: int userType() const; 8036: int propertyIndex() const; 8036: 8036: bool isReadable() const; 8036: bool isWritable() const; 8036: bool isResettable() const; 8036: bool isDesignable(const QObject *obj = nullptr) const; 8036: bool isScriptable(const QObject *obj = nullptr) const; 8036: bool isStored(const QObject *obj = nullptr) const; 8036: bool isEditable(const QObject *obj = nullptr) const; 8036: bool isUser(const QObject *obj = nullptr) const; 8036: bool isConstant() const; 8036: bool isFinal() const; 8036: 8036: bool isFlagType() const; 8036: bool isEnumType() const; 8036: QMetaEnum enumerator() const; 8036: 8036: bool hasNotifySignal() const; 8036: QMetaMethod notifySignal() const; 8036: int notifySignalIndex() const; 8036: 8036: int revision() const; 8036: 8036: QVariant read(const QObject *obj) const; 8036: bool write(QObject *obj, const QVariant &value) const; 8036: bool reset(QObject *obj) const; 8036: 8036: QVariant readOnGadget(const void *gadget) const; 8036: bool writeOnGadget(void *gadget, const QVariant &value) const; 8036: bool resetOnGadget(void *gadget) const; 8036: 8036: bool hasStdCppSet() const; 8036: inline bool isValid() const { return isReadable(); } 8036: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8036: 8036: private: 8036: int registerPropertyType() const; 8036: 8036: const QMetaObject *mobj; 8036: uint handle; 8036: int idx; 8036: QMetaEnum menum; 8036: friend struct QMetaObject; 8036: friend struct QMetaObjectPrivate; 8036: }; 8036: 8036: class __attribute__((visibility("default"))) QMetaClassInfo 8036: { 8036: public: 8036: constexpr inline QMetaClassInfo() : mobj(nullptr), handle(0) {} 8036: const char *name() const; 8036: const char *value() const; 8036: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8036: private: 8036: const QMetaObject *mobj; 8036: uint handle; 8036: friend struct QMetaObject; 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaClassInfo)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaClassInfo >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaClassInfo) }; static inline const char *name() { return "QMetaClassInfo"; } }; 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QMetaEnum" 2 3 4 8036: # 58 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QMetaObject" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qobjectdefs.h" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QMetaObject" 2 3 4 8036: # 59 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QFile" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 1 3 4 8036: # 56 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: 8036: 8036: 8036: class QByteArray; 8036: class QIODevicePrivate; 8036: 8036: class __attribute__((visibility("default"))) QIODevice 8036: 8036: : public QObject 8036: 8036: { 8036: 8036: public: 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 68 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8036: struct QPrivateSignal {}; 8036: 8036: public: 8036: enum OpenModeFlag { 8036: NotOpen = 0x0000, 8036: ReadOnly = 0x0001, 8036: WriteOnly = 0x0002, 8036: ReadWrite = ReadOnly | WriteOnly, 8036: Append = 0x0004, 8036: Truncate = 0x0008, 8036: Text = 0x0010, 8036: Unbuffered = 0x0020 8036: }; 8036: typedef QFlags OpenMode; 8036: 8036: QIODevice(); 8036: 8036: explicit QIODevice(QObject *parent); 8036: 8036: virtual ~QIODevice(); 8036: 8036: OpenMode openMode() const; 8036: 8036: void setTextModeEnabled(bool enabled); 8036: bool isTextModeEnabled() const; 8036: 8036: bool isOpen() const; 8036: bool isReadable() const; 8036: bool isWritable() const; 8036: virtual bool isSequential() const; 8036: 8036: int readChannelCount() const; 8036: int writeChannelCount() const; 8036: int currentReadChannel() const; 8036: void setCurrentReadChannel(int channel); 8036: int currentWriteChannel() const; 8036: void setCurrentWriteChannel(int channel); 8036: 8036: virtual bool open(OpenMode mode); 8036: virtual void close(); 8036: 8036: 8036: 8036: virtual qint64 pos() const; 8036: virtual qint64 size() const; 8036: virtual bool seek(qint64 pos); 8036: virtual bool atEnd() const; 8036: virtual bool reset(); 8036: 8036: virtual qint64 bytesAvailable() const; 8036: virtual qint64 bytesToWrite() const; 8036: 8036: qint64 read(char *data, qint64 maxlen); 8036: QByteArray read(qint64 maxlen); 8036: QByteArray readAll(); 8036: qint64 readLine(char *data, qint64 maxlen); 8036: QByteArray readLine(qint64 maxlen = 0); 8036: virtual bool canReadLine() const; 8036: 8036: void startTransaction(); 8036: void commitTransaction(); 8036: void rollbackTransaction(); 8036: bool isTransactionStarted() const; 8036: 8036: qint64 write(const char *data, qint64 len); 8036: qint64 write(const char *data); 8036: inline qint64 write(const QByteArray &data) 8036: { return write(data.constData(), data.size()); } 8036: 8036: qint64 peek(char *data, qint64 maxlen); 8036: QByteArray peek(qint64 maxlen); 8036: 8036: virtual bool waitForReadyRead(int msecs); 8036: virtual bool waitForBytesWritten(int msecs); 8036: 8036: void ungetChar(char c); 8036: bool putChar(char c); 8036: bool getChar(char *c); 8036: 8036: QString errorString() const; 8036: 8036: 8036: public : 8036: void readyRead(); 8036: void channelReadyRead(int channel); 8036: void bytesWritten(qint64 bytes); 8036: void channelBytesWritten(int channel, qint64 bytes); 8036: void aboutToClose(); 8036: void readChannelFinished(); 8036: 8036: 8036: protected: 8036: 8036: 8036: 8036: QIODevice(QIODevicePrivate &dd, QObject *parent = nullptr); 8036: 8036: virtual qint64 readData(char *data, qint64 maxlen) = 0; 8036: virtual qint64 readLineData(char *data, qint64 maxlen); 8036: virtual qint64 writeData(const char *data, qint64 len) = 0; 8036: 8036: void setOpenMode(OpenMode openMode); 8036: 8036: void setErrorString(const QString &errorString); 8036: 8036: 8036: 8036: 8036: 8036: private: 8036: inline QIODevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QIODevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QIODevicePrivate; 8036: QIODevice(const QIODevice &) = delete; QIODevice &operator=(const QIODevice &) = delete; 8036: }; 8036: 8036: constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QIODevice::OpenMode::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QIODevice::OpenMode::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: class QDebug; 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); 8036: 8036: 8036: 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 2 3 4 8036: 8036: 8036: 8036: 8036: class QFileDevicePrivate; 8036: 8036: class __attribute__((visibility("default"))) QFileDevice : public QIODevice 8036: { 8036: 8036: public: 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8036: struct QPrivateSignal {}; 8036: 8036: inline QFileDevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFileDevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFileDevicePrivate; 8036: 8036: public: 8036: enum FileError { 8036: NoError = 0, 8036: ReadError = 1, 8036: WriteError = 2, 8036: FatalError = 3, 8036: ResourceError = 4, 8036: OpenError = 5, 8036: AbortError = 6, 8036: TimeOutError = 7, 8036: UnspecifiedError = 8, 8036: RemoveError = 9, 8036: RenameError = 10, 8036: PositionError = 11, 8036: ResizeError = 12, 8036: PermissionsError = 13, 8036: CopyError = 14 8036: }; 8036: 8036: enum Permission { 8036: ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, 8036: ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, 8036: ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, 8036: ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 8036: }; 8036: typedef QFlags Permissions; 8036: 8036: enum FileHandleFlag { 8036: AutoCloseHandle = 0x0001, 8036: DontCloseHandle = 0 8036: }; 8036: typedef QFlags FileHandleFlags; 8036: 8036: ~QFileDevice(); 8036: 8036: FileError error() const; 8036: void unsetError(); 8036: 8036: virtual void close() override; 8036: 8036: bool isSequential() const override; 8036: 8036: int handle() const; 8036: virtual QString fileName() const; 8036: 8036: qint64 pos() const override; 8036: bool seek(qint64 offset) override; 8036: bool atEnd() const override; 8036: bool flush(); 8036: 8036: qint64 size() const override; 8036: 8036: virtual bool resize(qint64 sz); 8036: virtual Permissions permissions() const; 8036: virtual bool setPermissions(Permissions permissionSpec); 8036: 8036: 8036: enum MemoryMapFlags { 8036: NoOptions = 0, 8036: MapPrivateOption = 0x0001 8036: }; 8036: 8036: uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); 8036: bool unmap(uchar *address); 8036: 8036: protected: 8036: QFileDevice(); 8036: 8036: 8036: 8036: explicit QFileDevice(QObject *parent); 8036: QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr); 8036: 8036: 8036: qint64 readData(char *data, qint64 maxlen) override; 8036: qint64 writeData(const char *data, qint64 len) override; 8036: qint64 readLineData(char *data, qint64 maxlen) override; 8036: 8036: private: 8036: QFileDevice(const QFileDevice &) = delete; QFileDevice &operator=(const QFileDevice &) = delete; 8036: }; 8036: 8036: constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFileDevice::Permissions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QFileDevice::Permissions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class QTemporaryFile; 8036: class QFilePrivate; 8036: 8036: class __attribute__((visibility("default"))) QFile : public QFileDevice 8036: { 8036: 8036: public: 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 60 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: struct QPrivateSignal {}; 8036: 8036: inline QFilePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFilePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFilePrivate; 8036: 8036: public: 8036: QFile(); 8036: QFile(const QString &name); 8036: 8036: explicit QFile(QObject *parent); 8036: QFile(const QString &name, QObject *parent); 8036: 8036: ~QFile(); 8036: 8036: QString fileName() const override; 8036: void setFileName(const QString &name); 8036: # 87 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: static inline QByteArray encodeName(const QString &fileName) 8036: { 8036: return fileName.toLocal8Bit(); 8036: } 8036: static QString decodeName(const QByteArray &localFileName) 8036: { 8036: return QString::fromLocal8Bit(localFileName); 8036: } 8036: 8036: inline static QString decodeName(const char *localFileName) 8036: { return decodeName(QByteArray(localFileName)); } 8036: # 106 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qfile.h" 3 4 8036: bool exists() const; 8036: static bool exists(const QString &fileName); 8036: 8036: QString readLink() const; 8036: static QString readLink(const QString &fileName); 8036: inline QString symLinkTarget() const { return readLink(); } 8036: inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } 8036: 8036: bool remove(); 8036: static bool remove(const QString &fileName); 8036: 8036: bool rename(const QString &newName); 8036: static bool rename(const QString &oldName, const QString &newName); 8036: 8036: bool link(const QString &newName); 8036: static bool link(const QString &oldname, const QString &newName); 8036: 8036: bool copy(const QString &newName); 8036: static bool copy(const QString &fileName, const QString &newName); 8036: 8036: bool open(OpenMode flags) override; 8036: bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8036: bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8036: 8036: qint64 size() const override; 8036: 8036: bool resize(qint64 sz) override; 8036: static bool resize(const QString &filename, qint64 sz); 8036: 8036: Permissions permissions() const override; 8036: static Permissions permissions(const QString &filename); 8036: bool setPermissions(Permissions permissionSpec) override; 8036: static bool setPermissions(const QString &filename, Permissions permissionSpec); 8036: 8036: protected: 8036: 8036: 8036: 8036: QFile(QFilePrivate &dd, QObject *parent = nullptr); 8036: 8036: 8036: private: 8036: friend class QTemporaryFile; 8036: QFile(const QFile &) = delete; QFile &operator=(const QFile &) = delete; 8036: }; 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QFile" 2 3 4 8036: # 60 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/QLocalSocket" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qtnetworkglobal.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qtnetworkglobal.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qtnetwork-config.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qtnetworkglobal.h" 2 3 4 8036: 8036: 8036: # 58 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qtnetworkglobal.h" 3 4 8036: 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 1 3 4 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 1 3 4 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtextstream.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qshareddata.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qshareddata.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qshareddata.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template class QSharedDataPointer; 8036: 8036: class __attribute__((visibility("default"))) QSharedData 8036: { 8036: public: 8036: mutable QAtomicInt ref; 8036: 8036: inline QSharedData() : ref(0) { } 8036: inline QSharedData(const QSharedData &) : ref(0) { } 8036: 8036: private: 8036: 8036: QSharedData &operator=(const QSharedData &); 8036: }; 8036: 8036: template class QSharedDataPointer 8036: { 8036: public: 8036: typedef T Type; 8036: typedef T *pointer; 8036: 8036: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8036: inline T &operator*() { detach(); return *d; } 8036: inline const T &operator*() const { return *d; } 8036: inline T *operator->() { detach(); return d; } 8036: inline const T *operator->() const { return d; } 8036: inline operator T *() { detach(); return d; } 8036: inline operator const T *() const { return d; } 8036: inline T *data() { detach(); return d; } 8036: inline const T *data() const { return d; } 8036: inline const T *constData() const { return d; } 8036: 8036: inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } 8036: inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } 8036: 8036: inline QSharedDataPointer() { d = nullptr; } 8036: inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8036: 8036: explicit QSharedDataPointer(T *data) noexcept; 8036: inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8036: inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { 8036: if (o.d != d) { 8036: if (o.d) 8036: o.d->ref.ref(); 8036: T *old = d; 8036: d = o.d; 8036: if (old && !old->ref.deref()) 8036: delete old; 8036: } 8036: return *this; 8036: } 8036: inline QSharedDataPointer &operator=(T *o) { 8036: if (o != d) { 8036: if (o) 8036: o->ref.ref(); 8036: T *old = d; 8036: d = o; 8036: if (old && !old->ref.deref()) 8036: delete old; 8036: } 8036: return *this; 8036: } 8036: 8036: QSharedDataPointer(QSharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8036: inline QSharedDataPointer &operator=(QSharedDataPointer &&other) noexcept 8036: { qSwap(d, other.d); return *this; } 8036: 8036: 8036: inline bool operator!() const { return !d; } 8036: 8036: inline void swap(QSharedDataPointer &other) noexcept 8036: { qSwap(d, other.d); } 8036: 8036: protected: 8036: T *clone(); 8036: 8036: private: 8036: void detach_helper(); 8036: 8036: T *d; 8036: }; 8036: 8036: template class QExplicitlySharedDataPointer 8036: { 8036: public: 8036: typedef T Type; 8036: typedef T *pointer; 8036: 8036: inline T &operator*() const { return *d; } 8036: inline T *operator->() { return d; } 8036: inline T *operator->() const { return d; } 8036: inline T *data() const { return d; } 8036: inline const T *constData() const { return d; } 8036: 8036: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8036: 8036: inline void reset() 8036: { 8036: if(d && !d->ref.deref()) 8036: delete d; 8036: 8036: d = nullptr; 8036: } 8036: 8036: inline operator bool () const { return d != nullptr; } 8036: 8036: inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } 8036: inline bool operator!=(const QExplicitlySharedDataPointer &other) const { return d != other.d; } 8036: inline bool operator==(const T *ptr) const { return d == ptr; } 8036: inline bool operator!=(const T *ptr) const { return d != ptr; } 8036: 8036: inline QExplicitlySharedDataPointer() { d = nullptr; } 8036: inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8036: 8036: explicit QExplicitlySharedDataPointer(T *data) noexcept; 8036: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8036: 8036: template 8036: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) 8036: 8036: 8036: 8036: : d(o.data()) 8036: 8036: { 8036: if(d) 8036: d->ref.ref(); 8036: } 8036: 8036: inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { 8036: if (o.d != d) { 8036: if (o.d) 8036: o.d->ref.ref(); 8036: T *old = d; 8036: d = o.d; 8036: if (old && !old->ref.deref()) 8036: delete old; 8036: } 8036: return *this; 8036: } 8036: inline QExplicitlySharedDataPointer &operator=(T *o) { 8036: if (o != d) { 8036: if (o) 8036: o->ref.ref(); 8036: T *old = d; 8036: d = o; 8036: if (old && !old->ref.deref()) 8036: delete old; 8036: } 8036: return *this; 8036: } 8036: 8036: inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8036: inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) noexcept 8036: { qSwap(d, other.d); return *this; } 8036: 8036: 8036: inline bool operator!() const { return !d; } 8036: 8036: inline void swap(QExplicitlySharedDataPointer &other) noexcept 8036: { qSwap(d, other.d); } 8036: 8036: protected: 8036: T *clone(); 8036: 8036: private: 8036: void detach_helper(); 8036: 8036: T *d; 8036: }; 8036: 8036: template 8036: inline QSharedDataPointer::QSharedDataPointer(T *adata) noexcept 8036: : d(adata) 8036: { if (d) d->ref.ref(); } 8036: 8036: template 8036: inline T *QSharedDataPointer::clone() 8036: { 8036: return new T(*d); 8036: } 8036: 8036: template 8036: void QSharedDataPointer::detach_helper() 8036: { 8036: T *x = clone(); 8036: x->ref.ref(); 8036: if (!d->ref.deref()) 8036: delete d; 8036: d = x; 8036: } 8036: 8036: template 8036: inline T *QExplicitlySharedDataPointer::clone() 8036: { 8036: return new T(*d); 8036: } 8036: 8036: template 8036: void QExplicitlySharedDataPointer::detach_helper() 8036: { 8036: T *x = clone(); 8036: x->ref.ref(); 8036: if (!d->ref.deref()) 8036: delete d; 8036: d = x; 8036: } 8036: 8036: template 8036: inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) noexcept 8036: : d(adata) 8036: { if (d) d->ref.ref(); } 8036: 8036: template 8036: inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) 8036: { p1.swap(p2); } 8036: 8036: template 8036: inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) 8036: { p1.swap(p2); } 8036: 8036: 8036: namespace std { 8036: template 8036: inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) 8036: { p1.swap(p2); } 8036: 8036: template 8036: inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) 8036: { p1.swap(p2); } 8036: } 8036: 8036: 8036: template 8036: inline uint qHash(const QSharedDataPointer &ptr, uint seed = 0) noexcept 8036: { 8036: return qHash(ptr.data(), seed); 8036: } 8036: template 8036: inline uint qHash(const QExplicitlySharedDataPointer &ptr, uint seed = 0) noexcept 8036: { 8036: return qHash(ptr.data(), seed); 8036: } 8036: 8036: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedDataPointer) }; static inline const char *name() { return "QSharedDataPointer"; } }; 8036: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QExplicitlySharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QExplicitlySharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QExplicitlySharedDataPointer) }; static inline const char *name() { return "QExplicitlySharedDataPointer"; } }; 8036: 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 2 3 4 8036: 8036: 8036: 8036: 8036: class QDataStream; 8036: class QDate; 8036: class QDateTime; 8036: class QLocale; 8036: class QTime; 8036: class QVariant; 8036: class QTextStream; 8036: class QTextStreamPrivate; 8036: 8036: class QLocalePrivate; 8036: 8036: __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed = 0) noexcept; 8036: 8036: class __attribute__((visibility("default"))) QLocale 8036: { 8036: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 66 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8036: 8036: friend class QString; 8036: friend class QStringRef; 8036: friend class QByteArray; 8036: friend class QIntValidator; 8036: friend class QDoubleValidatorPrivate; 8036: friend class QTextStream; 8036: friend class QTextStreamPrivate; 8036: 8036: public: 8036: 8036: 8036: enum Language { 8036: AnyLanguage = 0, 8036: C = 1, 8036: Abkhazian = 2, 8036: Oromo = 3, 8036: Afar = 4, 8036: Afrikaans = 5, 8036: Albanian = 6, 8036: Amharic = 7, 8036: Arabic = 8, 8036: Armenian = 9, 8036: Assamese = 10, 8036: Aymara = 11, 8036: Azerbaijani = 12, 8036: Bashkir = 13, 8036: Basque = 14, 8036: Bengali = 15, 8036: Dzongkha = 16, 8036: Bihari = 17, 8036: Bislama = 18, 8036: Breton = 19, 8036: Bulgarian = 20, 8036: Burmese = 21, 8036: Belarusian = 22, 8036: Khmer = 23, 8036: Catalan = 24, 8036: Chinese = 25, 8036: Corsican = 26, 8036: Croatian = 27, 8036: Czech = 28, 8036: Danish = 29, 8036: Dutch = 30, 8036: English = 31, 8036: Esperanto = 32, 8036: Estonian = 33, 8036: Faroese = 34, 8036: Fijian = 35, 8036: Finnish = 36, 8036: French = 37, 8036: WesternFrisian = 38, 8036: Gaelic = 39, 8036: Galician = 40, 8036: Georgian = 41, 8036: German = 42, 8036: Greek = 43, 8036: Greenlandic = 44, 8036: Guarani = 45, 8036: Gujarati = 46, 8036: Hausa = 47, 8036: Hebrew = 48, 8036: Hindi = 49, 8036: Hungarian = 50, 8036: Icelandic = 51, 8036: Indonesian = 52, 8036: Interlingua = 53, 8036: Interlingue = 54, 8036: Inuktitut = 55, 8036: Inupiak = 56, 8036: Irish = 57, 8036: Italian = 58, 8036: Japanese = 59, 8036: Javanese = 60, 8036: Kannada = 61, 8036: Kashmiri = 62, 8036: Kazakh = 63, 8036: Kinyarwanda = 64, 8036: Kirghiz = 65, 8036: Korean = 66, 8036: Kurdish = 67, 8036: Rundi = 68, 8036: Lao = 69, 8036: Latin = 70, 8036: Latvian = 71, 8036: Lingala = 72, 8036: Lithuanian = 73, 8036: Macedonian = 74, 8036: Malagasy = 75, 8036: Malay = 76, 8036: Malayalam = 77, 8036: Maltese = 78, 8036: Maori = 79, 8036: Marathi = 80, 8036: Marshallese = 81, 8036: Mongolian = 82, 8036: NauruLanguage = 83, 8036: Nepali = 84, 8036: NorwegianBokmal = 85, 8036: Occitan = 86, 8036: Oriya = 87, 8036: Pashto = 88, 8036: Persian = 89, 8036: Polish = 90, 8036: Portuguese = 91, 8036: Punjabi = 92, 8036: Quechua = 93, 8036: Romansh = 94, 8036: Romanian = 95, 8036: Russian = 96, 8036: Samoan = 97, 8036: Sango = 98, 8036: Sanskrit = 99, 8036: Serbian = 100, 8036: Ossetic = 101, 8036: SouthernSotho = 102, 8036: Tswana = 103, 8036: Shona = 104, 8036: Sindhi = 105, 8036: Sinhala = 106, 8036: Swati = 107, 8036: Slovak = 108, 8036: Slovenian = 109, 8036: Somali = 110, 8036: Spanish = 111, 8036: Sundanese = 112, 8036: Swahili = 113, 8036: Swedish = 114, 8036: Sardinian = 115, 8036: Tajik = 116, 8036: Tamil = 117, 8036: Tatar = 118, 8036: Telugu = 119, 8036: Thai = 120, 8036: Tibetan = 121, 8036: Tigrinya = 122, 8036: Tongan = 123, 8036: Tsonga = 124, 8036: Turkish = 125, 8036: Turkmen = 126, 8036: Tahitian = 127, 8036: Uighur = 128, 8036: Ukrainian = 129, 8036: Urdu = 130, 8036: Uzbek = 131, 8036: Vietnamese = 132, 8036: Volapuk = 133, 8036: Welsh = 134, 8036: Wolof = 135, 8036: Xhosa = 136, 8036: Yiddish = 137, 8036: Yoruba = 138, 8036: Zhuang = 139, 8036: Zulu = 140, 8036: NorwegianNynorsk = 141, 8036: Bosnian = 142, 8036: Divehi = 143, 8036: Manx = 144, 8036: Cornish = 145, 8036: Akan = 146, 8036: Konkani = 147, 8036: Ga = 148, 8036: Igbo = 149, 8036: Kamba = 150, 8036: Syriac = 151, 8036: Blin = 152, 8036: Geez = 153, 8036: Koro = 154, 8036: Sidamo = 155, 8036: Atsam = 156, 8036: Tigre = 157, 8036: Jju = 158, 8036: Friulian = 159, 8036: Venda = 160, 8036: Ewe = 161, 8036: Walamo = 162, 8036: Hawaiian = 163, 8036: Tyap = 164, 8036: Nyanja = 165, 8036: Filipino = 166, 8036: SwissGerman = 167, 8036: SichuanYi = 168, 8036: Kpelle = 169, 8036: LowGerman = 170, 8036: SouthNdebele = 171, 8036: NorthernSotho = 172, 8036: NorthernSami = 173, 8036: Taroko = 174, 8036: Gusii = 175, 8036: Taita = 176, 8036: Fulah = 177, 8036: Kikuyu = 178, 8036: Samburu = 179, 8036: Sena = 180, 8036: NorthNdebele = 181, 8036: Rombo = 182, 8036: Tachelhit = 183, 8036: Kabyle = 184, 8036: Nyankole = 185, 8036: Bena = 186, 8036: Vunjo = 187, 8036: Bambara = 188, 8036: Embu = 189, 8036: Cherokee = 190, 8036: Morisyen = 191, 8036: Makonde = 192, 8036: Langi = 193, 8036: Ganda = 194, 8036: Bemba = 195, 8036: Kabuverdianu = 196, 8036: Meru = 197, 8036: Kalenjin = 198, 8036: Nama = 199, 8036: Machame = 200, 8036: Colognian = 201, 8036: Masai = 202, 8036: Soga = 203, 8036: Luyia = 204, 8036: Asu = 205, 8036: Teso = 206, 8036: Saho = 207, 8036: KoyraChiini = 208, 8036: Rwa = 209, 8036: Luo = 210, 8036: Chiga = 211, 8036: CentralMoroccoTamazight = 212, 8036: KoyraboroSenni = 213, 8036: Shambala = 214, 8036: Bodo = 215, 8036: Avaric = 216, 8036: Chamorro = 217, 8036: Chechen = 218, 8036: Church = 219, 8036: Chuvash = 220, 8036: Cree = 221, 8036: Haitian = 222, 8036: Herero = 223, 8036: HiriMotu = 224, 8036: Kanuri = 225, 8036: Komi = 226, 8036: Kongo = 227, 8036: Kwanyama = 228, 8036: Limburgish = 229, 8036: LubaKatanga = 230, 8036: Luxembourgish = 231, 8036: Navaho = 232, 8036: Ndonga = 233, 8036: Ojibwa = 234, 8036: Pali = 235, 8036: Walloon = 236, 8036: Aghem = 237, 8036: Basaa = 238, 8036: Zarma = 239, 8036: Duala = 240, 8036: JolaFonyi = 241, 8036: Ewondo = 242, 8036: Bafia = 243, 8036: MakhuwaMeetto = 244, 8036: Mundang = 245, 8036: Kwasio = 246, 8036: Nuer = 247, 8036: Sakha = 248, 8036: Sangu = 249, 8036: CongoSwahili = 250, 8036: Tasawaq = 251, 8036: Vai = 252, 8036: Walser = 253, 8036: Yangben = 254, 8036: Avestan = 255, 8036: Asturian = 256, 8036: Ngomba = 257, 8036: Kako = 258, 8036: Meta = 259, 8036: Ngiemboon = 260, 8036: Aragonese = 261, 8036: Akkadian = 262, 8036: AncientEgyptian = 263, 8036: AncientGreek = 264, 8036: Aramaic = 265, 8036: Balinese = 266, 8036: Bamun = 267, 8036: BatakToba = 268, 8036: Buginese = 269, 8036: Buhid = 270, 8036: Carian = 271, 8036: Chakma = 272, 8036: ClassicalMandaic = 273, 8036: Coptic = 274, 8036: Dogri = 275, 8036: EasternCham = 276, 8036: EasternKayah = 277, 8036: Etruscan = 278, 8036: Gothic = 279, 8036: Hanunoo = 280, 8036: Ingush = 281, 8036: LargeFloweryMiao = 282, 8036: Lepcha = 283, 8036: Limbu = 284, 8036: Lisu = 285, 8036: Lu = 286, 8036: Lycian = 287, 8036: Lydian = 288, 8036: Mandingo = 289, 8036: Manipuri = 290, 8036: Meroitic = 291, 8036: NorthernThai = 292, 8036: OldIrish = 293, 8036: OldNorse = 294, 8036: OldPersian = 295, 8036: OldTurkish = 296, 8036: Pahlavi = 297, 8036: Parthian = 298, 8036: Phoenician = 299, 8036: PrakritLanguage = 300, 8036: Rejang = 301, 8036: Sabaean = 302, 8036: Samaritan = 303, 8036: Santali = 304, 8036: Saurashtra = 305, 8036: Sora = 306, 8036: Sylheti = 307, 8036: Tagbanwa = 308, 8036: TaiDam = 309, 8036: TaiNua = 310, 8036: Ugaritic = 311, 8036: Akoose = 312, 8036: Lakota = 313, 8036: StandardMoroccanTamazight = 314, 8036: Mapuche = 315, 8036: CentralKurdish = 316, 8036: LowerSorbian = 317, 8036: UpperSorbian = 318, 8036: Kenyang = 319, 8036: Mohawk = 320, 8036: Nko = 321, 8036: Prussian = 322, 8036: Kiche = 323, 8036: SouthernSami = 324, 8036: LuleSami = 325, 8036: InariSami = 326, 8036: SkoltSami = 327, 8036: Warlpiri = 328, 8036: ManichaeanMiddlePersian = 329, 8036: Mende = 330, 8036: AncientNorthArabian = 331, 8036: LinearA = 332, 8036: HmongNjua = 333, 8036: Ho = 334, 8036: Lezghian = 335, 8036: Bassa = 336, 8036: Mono = 337, 8036: TedimChin = 338, 8036: Maithili = 339, 8036: Ahom = 340, 8036: AmericanSignLanguage = 341, 8036: ArdhamagadhiPrakrit = 342, 8036: Bhojpuri = 343, 8036: HieroglyphicLuwian = 344, 8036: LiteraryChinese = 345, 8036: Mazanderani = 346, 8036: Mru = 347, 8036: Newari = 348, 8036: NorthernLuri = 349, 8036: Palauan = 350, 8036: Papiamento = 351, 8036: Saraiki = 352, 8036: TokelauLanguage = 353, 8036: TokPisin = 354, 8036: TuvaluLanguage = 355, 8036: UncodedLanguages = 356, 8036: Cantonese = 357, 8036: Osage = 358, 8036: Tangut = 359, 8036: 8036: Norwegian = NorwegianBokmal, 8036: Moldavian = Romanian, 8036: SerboCroatian = Serbian, 8036: Tagalog = Filipino, 8036: Twi = Akan, 8036: Afan = Oromo, 8036: Byelorussian = Belarusian, 8036: Bhutani = Dzongkha, 8036: Cambodian = Khmer, 8036: Kurundi = Rundi, 8036: RhaetoRomance = Romansh, 8036: Chewa = Nyanja, 8036: Frisian = WesternFrisian, 8036: Uigur = Uighur, 8036: 8036: LastLanguage = Tangut 8036: }; 8036: 8036: enum Script { 8036: AnyScript = 0, 8036: ArabicScript = 1, 8036: CyrillicScript = 2, 8036: DeseretScript = 3, 8036: GurmukhiScript = 4, 8036: SimplifiedHanScript = 5, 8036: TraditionalHanScript = 6, 8036: LatinScript = 7, 8036: MongolianScript = 8, 8036: TifinaghScript = 9, 8036: ArmenianScript = 10, 8036: BengaliScript = 11, 8036: CherokeeScript = 12, 8036: DevanagariScript = 13, 8036: EthiopicScript = 14, 8036: GeorgianScript = 15, 8036: GreekScript = 16, 8036: GujaratiScript = 17, 8036: HebrewScript = 18, 8036: JapaneseScript = 19, 8036: KhmerScript = 20, 8036: KannadaScript = 21, 8036: KoreanScript = 22, 8036: LaoScript = 23, 8036: MalayalamScript = 24, 8036: MyanmarScript = 25, 8036: OriyaScript = 26, 8036: TamilScript = 27, 8036: TeluguScript = 28, 8036: ThaanaScript = 29, 8036: ThaiScript = 30, 8036: TibetanScript = 31, 8036: SinhalaScript = 32, 8036: SyriacScript = 33, 8036: YiScript = 34, 8036: VaiScript = 35, 8036: AvestanScript = 36, 8036: BalineseScript = 37, 8036: BamumScript = 38, 8036: BatakScript = 39, 8036: BopomofoScript = 40, 8036: BrahmiScript = 41, 8036: BugineseScript = 42, 8036: BuhidScript = 43, 8036: CanadianAboriginalScript = 44, 8036: CarianScript = 45, 8036: ChakmaScript = 46, 8036: ChamScript = 47, 8036: CopticScript = 48, 8036: CypriotScript = 49, 8036: EgyptianHieroglyphsScript = 50, 8036: FraserScript = 51, 8036: GlagoliticScript = 52, 8036: GothicScript = 53, 8036: HanScript = 54, 8036: HangulScript = 55, 8036: HanunooScript = 56, 8036: ImperialAramaicScript = 57, 8036: InscriptionalPahlaviScript = 58, 8036: InscriptionalParthianScript = 59, 8036: JavaneseScript = 60, 8036: KaithiScript = 61, 8036: KatakanaScript = 62, 8036: KayahLiScript = 63, 8036: KharoshthiScript = 64, 8036: LannaScript = 65, 8036: LepchaScript = 66, 8036: LimbuScript = 67, 8036: LinearBScript = 68, 8036: LycianScript = 69, 8036: LydianScript = 70, 8036: MandaeanScript = 71, 8036: MeiteiMayekScript = 72, 8036: MeroiticScript = 73, 8036: MeroiticCursiveScript = 74, 8036: NkoScript = 75, 8036: NewTaiLueScript = 76, 8036: OghamScript = 77, 8036: OlChikiScript = 78, 8036: OldItalicScript = 79, 8036: OldPersianScript = 80, 8036: OldSouthArabianScript = 81, 8036: OrkhonScript = 82, 8036: OsmanyaScript = 83, 8036: PhagsPaScript = 84, 8036: PhoenicianScript = 85, 8036: PollardPhoneticScript = 86, 8036: RejangScript = 87, 8036: RunicScript = 88, 8036: SamaritanScript = 89, 8036: SaurashtraScript = 90, 8036: SharadaScript = 91, 8036: ShavianScript = 92, 8036: SoraSompengScript = 93, 8036: CuneiformScript = 94, 8036: SundaneseScript = 95, 8036: SylotiNagriScript = 96, 8036: TagalogScript = 97, 8036: TagbanwaScript = 98, 8036: TaiLeScript = 99, 8036: TaiVietScript = 100, 8036: TakriScript = 101, 8036: UgariticScript = 102, 8036: BrailleScript = 103, 8036: HiraganaScript = 104, 8036: CaucasianAlbanianScript = 105, 8036: BassaVahScript = 106, 8036: DuployanScript = 107, 8036: ElbasanScript = 108, 8036: GranthaScript = 109, 8036: PahawhHmongScript = 110, 8036: KhojkiScript = 111, 8036: LinearAScript = 112, 8036: MahajaniScript = 113, 8036: ManichaeanScript = 114, 8036: MendeKikakuiScript = 115, 8036: ModiScript = 116, 8036: MroScript = 117, 8036: OldNorthArabianScript = 118, 8036: NabataeanScript = 119, 8036: PalmyreneScript = 120, 8036: PauCinHauScript = 121, 8036: OldPermicScript = 122, 8036: PsalterPahlaviScript = 123, 8036: SiddhamScript = 124, 8036: KhudawadiScript = 125, 8036: TirhutaScript = 126, 8036: VarangKshitiScript = 127, 8036: AhomScript = 128, 8036: AnatolianHieroglyphsScript = 129, 8036: HatranScript = 130, 8036: MultaniScript = 131, 8036: OldHungarianScript = 132, 8036: SignWritingScript = 133, 8036: AdlamScript = 134, 8036: BhaiksukiScript = 135, 8036: MarchenScript = 136, 8036: NewaScript = 137, 8036: OsageScript = 138, 8036: TangutScript = 139, 8036: HanWithBopomofoScript = 140, 8036: JamoScript = 141, 8036: 8036: SimplifiedChineseScript = SimplifiedHanScript, 8036: TraditionalChineseScript = TraditionalHanScript, 8036: 8036: LastScript = JamoScript 8036: }; 8036: enum Country { 8036: AnyCountry = 0, 8036: Afghanistan = 1, 8036: Albania = 2, 8036: Algeria = 3, 8036: AmericanSamoa = 4, 8036: Andorra = 5, 8036: Angola = 6, 8036: Anguilla = 7, 8036: Antarctica = 8, 8036: AntiguaAndBarbuda = 9, 8036: Argentina = 10, 8036: Armenia = 11, 8036: Aruba = 12, 8036: Australia = 13, 8036: Austria = 14, 8036: Azerbaijan = 15, 8036: Bahamas = 16, 8036: Bahrain = 17, 8036: Bangladesh = 18, 8036: Barbados = 19, 8036: Belarus = 20, 8036: Belgium = 21, 8036: Belize = 22, 8036: Benin = 23, 8036: Bermuda = 24, 8036: Bhutan = 25, 8036: Bolivia = 26, 8036: BosniaAndHerzegowina = 27, 8036: Botswana = 28, 8036: BouvetIsland = 29, 8036: Brazil = 30, 8036: BritishIndianOceanTerritory = 31, 8036: Brunei = 32, 8036: Bulgaria = 33, 8036: BurkinaFaso = 34, 8036: Burundi = 35, 8036: Cambodia = 36, 8036: Cameroon = 37, 8036: Canada = 38, 8036: CapeVerde = 39, 8036: CaymanIslands = 40, 8036: CentralAfricanRepublic = 41, 8036: Chad = 42, 8036: Chile = 43, 8036: China = 44, 8036: ChristmasIsland = 45, 8036: CocosIslands = 46, 8036: Colombia = 47, 8036: Comoros = 48, 8036: CongoKinshasa = 49, 8036: CongoBrazzaville = 50, 8036: CookIslands = 51, 8036: CostaRica = 52, 8036: IvoryCoast = 53, 8036: Croatia = 54, 8036: Cuba = 55, 8036: Cyprus = 56, 8036: CzechRepublic = 57, 8036: Denmark = 58, 8036: Djibouti = 59, 8036: Dominica = 60, 8036: DominicanRepublic = 61, 8036: EastTimor = 62, 8036: Ecuador = 63, 8036: Egypt = 64, 8036: ElSalvador = 65, 8036: EquatorialGuinea = 66, 8036: Eritrea = 67, 8036: Estonia = 68, 8036: Ethiopia = 69, 8036: FalklandIslands = 70, 8036: FaroeIslands = 71, 8036: Fiji = 72, 8036: Finland = 73, 8036: France = 74, 8036: Guernsey = 75, 8036: FrenchGuiana = 76, 8036: FrenchPolynesia = 77, 8036: FrenchSouthernTerritories = 78, 8036: Gabon = 79, 8036: Gambia = 80, 8036: Georgia = 81, 8036: Germany = 82, 8036: Ghana = 83, 8036: Gibraltar = 84, 8036: Greece = 85, 8036: Greenland = 86, 8036: Grenada = 87, 8036: Guadeloupe = 88, 8036: Guam = 89, 8036: Guatemala = 90, 8036: Guinea = 91, 8036: GuineaBissau = 92, 8036: Guyana = 93, 8036: Haiti = 94, 8036: HeardAndMcDonaldIslands = 95, 8036: Honduras = 96, 8036: HongKong = 97, 8036: Hungary = 98, 8036: Iceland = 99, 8036: India = 100, 8036: Indonesia = 101, 8036: Iran = 102, 8036: Iraq = 103, 8036: Ireland = 104, 8036: Israel = 105, 8036: Italy = 106, 8036: Jamaica = 107, 8036: Japan = 108, 8036: Jordan = 109, 8036: Kazakhstan = 110, 8036: Kenya = 111, 8036: Kiribati = 112, 8036: NorthKorea = 113, 8036: SouthKorea = 114, 8036: Kuwait = 115, 8036: Kyrgyzstan = 116, 8036: Laos = 117, 8036: Latvia = 118, 8036: Lebanon = 119, 8036: Lesotho = 120, 8036: Liberia = 121, 8036: Libya = 122, 8036: Liechtenstein = 123, 8036: Lithuania = 124, 8036: Luxembourg = 125, 8036: Macau = 126, 8036: Macedonia = 127, 8036: Madagascar = 128, 8036: Malawi = 129, 8036: Malaysia = 130, 8036: Maldives = 131, 8036: Mali = 132, 8036: Malta = 133, 8036: MarshallIslands = 134, 8036: Martinique = 135, 8036: Mauritania = 136, 8036: Mauritius = 137, 8036: Mayotte = 138, 8036: Mexico = 139, 8036: Micronesia = 140, 8036: Moldova = 141, 8036: Monaco = 142, 8036: Mongolia = 143, 8036: Montserrat = 144, 8036: Morocco = 145, 8036: Mozambique = 146, 8036: Myanmar = 147, 8036: Namibia = 148, 8036: NauruCountry = 149, 8036: Nepal = 150, 8036: Netherlands = 151, 8036: CuraSao = 152, 8036: NewCaledonia = 153, 8036: NewZealand = 154, 8036: Nicaragua = 155, 8036: Niger = 156, 8036: Nigeria = 157, 8036: Niue = 158, 8036: NorfolkIsland = 159, 8036: NorthernMarianaIslands = 160, 8036: Norway = 161, 8036: Oman = 162, 8036: Pakistan = 163, 8036: Palau = 164, 8036: PalestinianTerritories = 165, 8036: Panama = 166, 8036: PapuaNewGuinea = 167, 8036: Paraguay = 168, 8036: Peru = 169, 8036: Philippines = 170, 8036: Pitcairn = 171, 8036: Poland = 172, 8036: Portugal = 173, 8036: PuertoRico = 174, 8036: Qatar = 175, 8036: Reunion = 176, 8036: Romania = 177, 8036: Russia = 178, 8036: Rwanda = 179, 8036: SaintKittsAndNevis = 180, 8036: SaintLucia = 181, 8036: SaintVincentAndTheGrenadines = 182, 8036: Samoa = 183, 8036: SanMarino = 184, 8036: SaoTomeAndPrincipe = 185, 8036: SaudiArabia = 186, 8036: Senegal = 187, 8036: Seychelles = 188, 8036: SierraLeone = 189, 8036: Singapore = 190, 8036: Slovakia = 191, 8036: Slovenia = 192, 8036: SolomonIslands = 193, 8036: Somalia = 194, 8036: SouthAfrica = 195, 8036: SouthGeorgiaAndTheSouthSandwichIslands = 196, 8036: Spain = 197, 8036: SriLanka = 198, 8036: SaintHelena = 199, 8036: SaintPierreAndMiquelon = 200, 8036: Sudan = 201, 8036: Suriname = 202, 8036: SvalbardAndJanMayenIslands = 203, 8036: Swaziland = 204, 8036: Sweden = 205, 8036: Switzerland = 206, 8036: Syria = 207, 8036: Taiwan = 208, 8036: Tajikistan = 209, 8036: Tanzania = 210, 8036: Thailand = 211, 8036: Togo = 212, 8036: TokelauCountry = 213, 8036: Tonga = 214, 8036: TrinidadAndTobago = 215, 8036: Tunisia = 216, 8036: Turkey = 217, 8036: Turkmenistan = 218, 8036: TurksAndCaicosIslands = 219, 8036: TuvaluCountry = 220, 8036: Uganda = 221, 8036: Ukraine = 222, 8036: UnitedArabEmirates = 223, 8036: UnitedKingdom = 224, 8036: UnitedStates = 225, 8036: UnitedStatesMinorOutlyingIslands = 226, 8036: Uruguay = 227, 8036: Uzbekistan = 228, 8036: Vanuatu = 229, 8036: VaticanCityState = 230, 8036: Venezuela = 231, 8036: Vietnam = 232, 8036: BritishVirginIslands = 233, 8036: UnitedStatesVirginIslands = 234, 8036: WallisAndFutunaIslands = 235, 8036: WesternSahara = 236, 8036: Yemen = 237, 8036: CanaryIslands = 238, 8036: Zambia = 239, 8036: Zimbabwe = 240, 8036: ClippertonIsland = 241, 8036: Montenegro = 242, 8036: Serbia = 243, 8036: SaintBarthelemy = 244, 8036: SaintMartin = 245, 8036: LatinAmericaAndTheCaribbean = 246, 8036: AscensionIsland = 247, 8036: AlandIslands = 248, 8036: DiegoGarcia = 249, 8036: CeutaAndMelilla = 250, 8036: IsleOfMan = 251, 8036: Jersey = 252, 8036: TristanDaCunha = 253, 8036: SouthSudan = 254, 8036: Bonaire = 255, 8036: SintMaarten = 256, 8036: Kosovo = 257, 8036: EuropeanUnion = 258, 8036: OutlyingOceania = 259, 8036: 8036: Tokelau = TokelauCountry, 8036: Tuvalu = TuvaluCountry, 8036: DemocraticRepublicOfCongo = CongoKinshasa, 8036: PeoplesRepublicOfCongo = CongoBrazzaville, 8036: DemocraticRepublicOfKorea = NorthKorea, 8036: RepublicOfKorea = SouthKorea, 8036: RussianFederation = Russia, 8036: SyrianArabRepublic = Syria, 8036: 8036: LastCountry = OutlyingOceania 8036: }; 8036: 8036: 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(Language) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Language) noexcept { return "Language"; } 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(Country) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Country) noexcept { return "Country"; } 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(Script) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Script) noexcept { return "Script"; } 8036: 8036: enum MeasurementSystem { 8036: MetricSystem, 8036: ImperialUSSystem, 8036: ImperialUKSystem, 8036: ImperialSystem = ImperialUSSystem 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(MeasurementSystem) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(MeasurementSystem) noexcept { return "MeasurementSystem"; } 8036: 8036: enum FormatType { LongFormat, ShortFormat, NarrowFormat }; 8036: enum NumberOption { 8036: DefaultNumberOptions = 0x0, 8036: OmitGroupSeparator = 0x01, 8036: RejectGroupSeparator = 0x02, 8036: OmitLeadingZeroInExponent = 0x04, 8036: RejectLeadingZeroInExponent = 0x08, 8036: IncludeTrailingZeroesAfterDot = 0x10, 8036: RejectTrailingZeroesAfterDot = 0x20 8036: }; 8036: typedef QFlags NumberOptions; 8036: 8036: enum FloatingPointPrecisionOption { 8036: FloatingPointShortest = -128 8036: }; 8036: 8036: enum CurrencySymbolFormat { 8036: CurrencyIsoCode, 8036: CurrencySymbol, 8036: CurrencyDisplayName 8036: }; 8036: 8036: QLocale(); 8036: QLocale(const QString &name); 8036: QLocale(Language language, Country country = AnyCountry); 8036: QLocale(Language language, Script script, Country country); 8036: QLocale(const QLocale &other); 8036: 8036: QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } 8036: 8036: QLocale &operator=(const QLocale &other); 8036: ~QLocale(); 8036: 8036: void swap(QLocale &other) noexcept { qSwap(d, other.d); } 8036: 8036: Language language() const; 8036: Script script() const; 8036: Country country() const; 8036: QString name() const; 8036: 8036: QString bcp47Name() const; 8036: QString nativeLanguageName() const; 8036: QString nativeCountryName() const; 8036: 8036: short toShort(const QString &s, bool *ok = nullptr) const; 8036: ushort toUShort(const QString &s, bool *ok = nullptr) const; 8036: int toInt(const QString &s, bool *ok = nullptr) const; 8036: uint toUInt(const QString &s, bool *ok = nullptr) const; 8036: qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; 8036: qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; 8036: float toFloat(const QString &s, bool *ok = nullptr) const; 8036: double toDouble(const QString &s, bool *ok = nullptr) const; 8036: 8036: short toShort(const QStringRef &s, bool *ok = nullptr) const; 8036: ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; 8036: int toInt(const QStringRef &s, bool *ok = nullptr) const; 8036: uint toUInt(const QStringRef &s, bool *ok = nullptr) const; 8036: qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; 8036: qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; 8036: float toFloat(const QStringRef &s, bool *ok = nullptr) const; 8036: double toDouble(const QStringRef &s, bool *ok = nullptr) const; 8036: 8036: QString toString(qlonglong i) const; 8036: QString toString(qulonglong i) const; 8036: inline QString toString(short i) const; 8036: inline QString toString(ushort i) const; 8036: inline QString toString(int i) const; 8036: inline QString toString(uint i) const; 8036: QString toString(double i, char f = 'g', int prec = 6) const; 8036: inline QString toString(float i, char f = 'g', int prec = 6) const; 8036: QString toString(const QDate &date, const QString &formatStr) const; 8036: QString toString(const QDate &date, FormatType format = LongFormat) const; 8036: QString toString(const QTime &time, const QString &formatStr) const; 8036: QString toString(const QTime &time, FormatType format = LongFormat) const; 8036: QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; 8036: QString toString(const QDateTime &dateTime, const QString &format) const; 8036: 8036: QString dateFormat(FormatType format = LongFormat) const; 8036: QString timeFormat(FormatType format = LongFormat) const; 8036: QString dateTimeFormat(FormatType format = LongFormat) const; 8036: 8036: QDate toDate(const QString &string, FormatType = LongFormat) const; 8036: QTime toTime(const QString &string, FormatType = LongFormat) const; 8036: QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; 8036: QDate toDate(const QString &string, const QString &format) const; 8036: QTime toTime(const QString &string, const QString &format) const; 8036: QDateTime toDateTime(const QString &string, const QString &format) const; 8036: 8036: 8036: 8036: 8036: QChar decimalPoint() const; 8036: QChar groupSeparator() const; 8036: QChar percent() const; 8036: QChar zeroDigit() const; 8036: QChar negativeSign() const; 8036: QChar positiveSign() const; 8036: QChar exponential() const; 8036: 8036: QString monthName(int, FormatType format = LongFormat) const; 8036: QString standaloneMonthName(int, FormatType format = LongFormat) const; 8036: QString dayName(int, FormatType format = LongFormat) const; 8036: QString standaloneDayName(int, FormatType format = LongFormat) const; 8036: 8036: Qt::DayOfWeek firstDayOfWeek() const; 8036: QList weekdays() const; 8036: 8036: QString amText() const; 8036: QString pmText() const; 8036: 8036: MeasurementSystem measurementSystem() const; 8036: 8036: Qt::LayoutDirection textDirection() const; 8036: 8036: QString toUpper(const QString &str) const; 8036: QString toLower(const QString &str) const; 8036: 8036: QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; 8036: QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; 8036: QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; 8036: inline QString toCurrencyString(short, const QString &symbol = QString()) const; 8036: inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; 8036: inline QString toCurrencyString(int, const QString &symbol = QString()) const; 8036: inline QString toCurrencyString(uint, const QString &symbol = QString()) const; 8036: 8036: 8036: 8036: 8036: 8036: QString toCurrencyString(double, const QString &symbol = QString()) const; 8036: QString toCurrencyString(double, const QString &symbol, int precision) const; 8036: inline QString toCurrencyString(float i, const QString &symbol = QString()) const 8036: { return toCurrencyString(double(i), symbol); } 8036: inline QString toCurrencyString(float i, const QString &symbol, int precision) const 8036: { return toCurrencyString(double(i), symbol, precision); } 8036: 8036: 8036: QStringList uiLanguages() const; 8036: 8036: bool operator==(const QLocale &other) const; 8036: bool operator!=(const QLocale &other) const; 8036: 8036: static QString languageToString(Language language); 8036: static QString countryToString(Country country); 8036: static QString scriptToString(Script script); 8036: static void setDefault(const QLocale &locale); 8036: 8036: static QLocale c() { return QLocale(C); } 8036: static QLocale system(); 8036: 8036: static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); 8036: static QList countriesForLanguage(Language lang); 8036: 8036: void setNumberOptions(NumberOptions options); 8036: NumberOptions numberOptions() const; 8036: 8036: enum QuotationStyle { StandardQuotation, AlternateQuotation }; 8036: QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; 8036: QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; 8036: 8036: QString createSeparatedList(const QStringList &strl) const; 8036: 8036: private: 8036: QLocale(QLocalePrivate &dd); 8036: friend class QLocalePrivate; 8036: friend __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed) noexcept; 8036: 8036: QSharedDataPointer d; 8036: }; 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLocale)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLocale >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLocale) }; static inline const char *name() { return "QLocale"; } }; inline void swap(QLocale &value1, QLocale &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8036: constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QLocale::NumberOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QLocale::NumberOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: inline QString QLocale::toString(short i) const 8036: { return toString(qlonglong(i)); } 8036: inline QString QLocale::toString(ushort i) const 8036: { return toString(qulonglong(i)); } 8036: inline QString QLocale::toString(int i) const 8036: { return toString(qlonglong(i)); } 8036: inline QString QLocale::toString(uint i) const 8036: { return toString(qulonglong(i)); } 8036: inline QString QLocale::toString(float i, char f, int prec) const 8036: { return toString(double(i), f, prec); } 8036: 8036: inline QString QLocale::toCurrencyString(short i, const QString &symbol) const 8036: { return toCurrencyString(qlonglong(i), symbol); } 8036: inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const 8036: { return toCurrencyString(qulonglong(i), symbol); } 8036: inline QString QLocale::toCurrencyString(int i, const QString &symbol) const 8036: { return toCurrencyString(qlonglong(i), symbol); } 8036: inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const 8036: { return toCurrencyString(qulonglong(i), symbol); } 8036: 8036: 8036: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QLocale &); 8036: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QLocale &); 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QLocale &); 8036: 8036: 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtextstream.h" 2 3 4 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8036: 8036: 8036: 8036: class QTextCodec; 8036: class QTextDecoder; 8036: 8036: class QTextStreamPrivate; 8036: class __attribute__((visibility("default"))) QTextStream 8036: { 8036: inline QTextStreamPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QTextStreamPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QTextStreamPrivate; 8036: 8036: public: 8036: enum RealNumberNotation { 8036: SmartNotation, 8036: FixedNotation, 8036: ScientificNotation 8036: }; 8036: enum FieldAlignment { 8036: AlignLeft, 8036: AlignRight, 8036: AlignCenter, 8036: AlignAccountingStyle 8036: }; 8036: enum Status { 8036: Ok, 8036: ReadPastEnd, 8036: ReadCorruptData, 8036: WriteFailed 8036: }; 8036: enum NumberFlag { 8036: ShowBase = 0x1, 8036: ForcePoint = 0x2, 8036: ForceSign = 0x4, 8036: UppercaseBase = 0x8, 8036: UppercaseDigits = 0x10 8036: }; 8036: typedef QFlags NumberFlags; 8036: 8036: QTextStream(); 8036: explicit QTextStream(QIODevice *device); 8036: explicit QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8036: explicit QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8036: explicit QTextStream(QByteArray *array, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8036: explicit QTextStream(const QByteArray &array, QIODevice::OpenMode openMode = QIODevice::ReadOnly); 8036: virtual ~QTextStream(); 8036: 8036: 8036: void setCodec(QTextCodec *codec); 8036: void setCodec(const char *codecName); 8036: QTextCodec *codec() const; 8036: void setAutoDetectUnicode(bool enabled); 8036: bool autoDetectUnicode() const; 8036: void setGenerateByteOrderMark(bool generate); 8036: bool generateByteOrderMark() const; 8036: 8036: 8036: void setLocale(const QLocale &locale); 8036: QLocale locale() const; 8036: 8036: void setDevice(QIODevice *device); 8036: QIODevice *device() const; 8036: 8036: void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8036: QString *string() const; 8036: 8036: Status status() const; 8036: void setStatus(Status status); 8036: void resetStatus(); 8036: 8036: bool atEnd() const; 8036: void reset(); 8036: void flush(); 8036: bool seek(qint64 pos); 8036: qint64 pos() const; 8036: 8036: void skipWhiteSpace(); 8036: 8036: QString readLine(qint64 maxlen = 0); 8036: bool readLineInto(QString *line, qint64 maxlen = 0); 8036: QString readAll(); 8036: QString read(qint64 maxlen); 8036: 8036: void setFieldAlignment(FieldAlignment alignment); 8036: FieldAlignment fieldAlignment() const; 8036: 8036: void setPadChar(QChar ch); 8036: QChar padChar() const; 8036: 8036: void setFieldWidth(int width); 8036: int fieldWidth() const; 8036: 8036: void setNumberFlags(NumberFlags flags); 8036: NumberFlags numberFlags() const; 8036: 8036: void setIntegerBase(int base); 8036: int integerBase() const; 8036: 8036: void setRealNumberNotation(RealNumberNotation notation); 8036: RealNumberNotation realNumberNotation() const; 8036: 8036: void setRealNumberPrecision(int precision); 8036: int realNumberPrecision() const; 8036: 8036: QTextStream &operator>>(QChar &ch); 8036: QTextStream &operator>>(char &ch); 8036: QTextStream &operator>>(signed short &i); 8036: QTextStream &operator>>(unsigned short &i); 8036: QTextStream &operator>>(signed int &i); 8036: QTextStream &operator>>(unsigned int &i); 8036: QTextStream &operator>>(signed long &i); 8036: QTextStream &operator>>(unsigned long &i); 8036: QTextStream &operator>>(qlonglong &i); 8036: QTextStream &operator>>(qulonglong &i); 8036: QTextStream &operator>>(float &f); 8036: QTextStream &operator>>(double &f); 8036: QTextStream &operator>>(QString &s); 8036: QTextStream &operator>>(QByteArray &array); 8036: QTextStream &operator>>(char *c); 8036: 8036: QTextStream &operator<<(QChar ch); 8036: QTextStream &operator<<(char ch); 8036: QTextStream &operator<<(signed short i); 8036: QTextStream &operator<<(unsigned short i); 8036: QTextStream &operator<<(signed int i); 8036: QTextStream &operator<<(unsigned int i); 8036: QTextStream &operator<<(signed long i); 8036: QTextStream &operator<<(unsigned long i); 8036: QTextStream &operator<<(qlonglong i); 8036: QTextStream &operator<<(qulonglong i); 8036: QTextStream &operator<<(float f); 8036: QTextStream &operator<<(double f); 8036: QTextStream &operator<<(const QString &s); 8036: QTextStream &operator<<(QLatin1String s); 8036: QTextStream &operator<<(const QStringRef &s); 8036: QTextStream &operator<<(const QByteArray &array); 8036: QTextStream &operator<<(const char *c); 8036: QTextStream &operator<<(const void *ptr); 8036: 8036: private: 8036: QTextStream(const QTextStream &) = delete; QTextStream &operator=(const QTextStream &) = delete; 8036: friend class QDebugStateSaverPrivate; 8036: friend class QDebug; 8036: 8036: QScopedPointer d_ptr; 8036: }; 8036: 8036: constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QTextStream::NumberFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QTextStream::NumberFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: 8036: 8036: 8036: typedef QTextStream & (*QTextStreamFunction)(QTextStream &); 8036: typedef void (QTextStream::*QTSMFI)(int); 8036: typedef void (QTextStream::*QTSMFC)(QChar); 8036: 8036: 8036: class __attribute__((visibility("default"))) QTextStreamManipulator 8036: { 8036: public: 8036: constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {} 8036: constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {} 8036: void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } } 8036: 8036: private: 8036: QTSMFI mf; 8036: QTSMFC mc; 8036: int arg; 8036: QChar ch; 8036: }; 8036: 8036: inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f) 8036: { return (*f)(s); } 8036: 8036: inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f) 8036: { return (*f)(s); } 8036: 8036: inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m) 8036: { m.exec(s); return s; } 8036: 8036: __attribute__((visibility("default"))) QTextStream &bin(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &oct(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &dec(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &hex(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &showbase(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &forcesign(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &forcepoint(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &noshowbase(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &noforcesign(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &noforcepoint(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &uppercasebase(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &uppercasedigits(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &lowercasebase(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &lowercasedigits(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &fixed(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &scientific(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &left(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &right(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream ¢er(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &endl(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &flush(QTextStream &s); 8036: __attribute__((visibility("default"))) QTextStream &reset(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &bom(QTextStream &s); 8036: 8036: __attribute__((visibility("default"))) QTextStream &ws(QTextStream &s); 8036: 8036: inline QTextStreamManipulator qSetFieldWidth(int width) 8036: { 8036: QTSMFI func = &QTextStream::setFieldWidth; 8036: return QTextStreamManipulator(func,width); 8036: } 8036: 8036: inline QTextStreamManipulator qSetPadChar(QChar ch) 8036: { 8036: QTSMFC func = &QTextStream::setPadChar; 8036: return QTextStreamManipulator(func, ch); 8036: } 8036: 8036: inline QTextStreamManipulator qSetRealNumberPrecision(int precision) 8036: { 8036: QTSMFI func = &QTextStream::setRealNumberPrecision; 8036: return QTextStreamManipulator(func, precision); 8036: } 8036: 8036: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 2 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 1 3 4 8036: # 52 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 3 4 8036: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class QRegion; 8036: 8036: template 8036: class QVector 8036: { 8036: typedef QTypedArrayData Data; 8036: Data *d; 8036: 8036: public: 8036: inline QVector() noexcept : d(Data::sharedNull()) { } 8036: explicit QVector(int size); 8036: QVector(int size, const T &t); 8036: inline QVector(const QVector &v); 8036: inline ~QVector() { if (!d->ref.deref()) freeData(d); } 8036: QVector &operator=(const QVector &v); 8036: 8036: QVector(QVector &&other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8036: QVector &operator=(QVector &&other) noexcept 8036: { QVector moved(std::move(other)); swap(moved); return *this; } 8036: 8036: void swap(QVector &other) noexcept { qSwap(d, other.d); } 8036: 8036: inline QVector(std::initializer_list args); 8036: 8036: bool operator==(const QVector &v) const; 8036: inline bool operator!=(const QVector &v) const { return !(*this == v); } 8036: 8036: inline int size() const { return d->size; } 8036: 8036: inline bool isEmpty() const { return d->size == 0; } 8036: 8036: void resize(int size); 8036: 8036: inline int capacity() const { return int(d->alloc); } 8036: void reserve(int size); 8036: inline void squeeze() 8036: { 8036: reallocData(d->size, d->size); 8036: if (d->capacityReserved) { 8036: 8036: 8036: d->capacityReserved = 0; 8036: } 8036: } 8036: 8036: inline void detach(); 8036: inline bool isDetached() const { return !d->ref.isShared(); } 8036: 8036: inline void setSharable(bool sharable) 8036: { 8036: if (sharable == d->ref.isSharable()) 8036: return; 8036: if (!sharable) 8036: detach(); 8036: 8036: if (d == Data::unsharableEmpty()) { 8036: if (sharable) 8036: d = Data::sharedNull(); 8036: } else { 8036: d->ref.setSharable(sharable); 8036: } 8036: do { } while ((false) && (d->ref.isSharable() == sharable)); 8036: } 8036: 8036: 8036: inline bool isSharedWith(const QVector &other) const { return d == other.d; } 8036: 8036: inline T *data() { detach(); return d->begin(); } 8036: inline const T *data() const { return d->begin(); } 8036: inline const T *constData() const { return d->begin(); } 8036: void clear(); 8036: 8036: const T &at(int i) const; 8036: T &operator[](int i); 8036: const T &operator[](int i) const; 8036: void append(const T &t); 8036: 8036: void append(T &&t); 8036: 8036: inline void append(const QVector &l) { *this += l; } 8036: void prepend(const T &t); 8036: void insert(int i, const T &t); 8036: void insert(int i, int n, const T &t); 8036: void replace(int i, const T &t); 8036: void remove(int i); 8036: void remove(int i, int n); 8036: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(d->begin()); } 8036: inline void removeLast(); 8036: inline T takeFirst() { do { } while ((false) && (!isEmpty())); T r = first(); removeFirst(); return r; } 8036: inline T takeLast() { do { } while ((false) && (!isEmpty())); T r = last(); removeLast(); return r; } 8036: 8036: QVector &fill(const T &t, int size = -1); 8036: 8036: int indexOf(const T &t, int from = 0) const; 8036: int lastIndexOf(const T &t, int from = -1) const; 8036: bool contains(const T &t) const; 8036: int count(const T &t) const; 8036: 8036: 8036: void removeAt(int i) { remove(i); } 8036: int removeAll(const T &t) 8036: { 8036: const const_iterator ce = this->cend(), cit = std::find(this->cbegin(), ce, t); 8036: if (cit == ce) 8036: return 0; 8036: 8036: const int firstFoundIdx = std::distance(this->cbegin(), cit); 8036: const iterator e = end(), it = std::remove(begin() + firstFoundIdx, e, t); 8036: const int result = std::distance(it, e); 8036: erase(it, e); 8036: return result; 8036: } 8036: bool removeOne(const T &t) 8036: { 8036: const int i = indexOf(t); 8036: if (i < 0) 8036: return false; 8036: remove(i); 8036: return true; 8036: } 8036: int length() const { return size(); } 8036: T takeAt(int i) { T t = at(i); remove(i); return t; } 8036: void move(int from, int to) 8036: { 8036: do { } while ((false) && (from >= 0 && from < size())); 8036: do { } while ((false) && (to >= 0 && to < size())); 8036: if (from == to) 8036: return; 8036: detach(); 8036: T * const b = d->begin(); 8036: if (from < to) 8036: std::rotate(b + from, b + from + 1, b + to + 1); 8036: else 8036: std::rotate(b + to, b + from, b + from + 1); 8036: } 8036: 8036: 8036: typedef typename Data::iterator iterator; 8036: typedef typename Data::const_iterator const_iterator; 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: 8036: inline iterator begin() { detach(); return d->begin(); } 8036: inline const_iterator begin() const noexcept { return d->constBegin(); } 8036: inline const_iterator cbegin() const noexcept { return d->constBegin(); } 8036: inline const_iterator constBegin() const noexcept { return d->constBegin(); } 8036: inline iterator end() { detach(); return d->end(); } 8036: inline const_iterator end() const noexcept { return d->constEnd(); } 8036: inline const_iterator cend() const noexcept { return d->constEnd(); } 8036: inline const_iterator constEnd() const noexcept { return d->constEnd(); } 8036: # 222 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 3 4 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8036: iterator insert(iterator before, int n, const T &x); 8036: inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } 8036: iterator erase(iterator begin, iterator end); 8036: inline iterator erase(iterator pos) { return erase(pos, pos+1); } 8036: 8036: 8036: inline int count() const { return d->size; } 8036: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline const T &constFirst() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8036: inline T& last() { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8036: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8036: inline const T &constLast() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8036: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8036: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8036: QVector mid(int pos, int len = -1) const; 8036: 8036: T value(int i) const; 8036: T value(int i, const T &defaultValue) const; 8036: 8036: 8036: typedef T value_type; 8036: typedef value_type* pointer; 8036: typedef const value_type* const_pointer; 8036: typedef value_type& reference; 8036: typedef const value_type& const_reference; 8036: typedef qptrdiff difference_type; 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: typedef int size_type; 8036: inline void push_back(const T &t) { append(t); } 8036: 8036: void push_back(T &&t) { append(std::move(t)); } 8036: 8036: inline void push_front(const T &t) { prepend(t); } 8036: void pop_back() { removeLast(); } 8036: void pop_front() { removeFirst(); } 8036: inline bool empty() const 8036: { return d->size == 0; } 8036: inline T& front() { return first(); } 8036: inline const_reference front() const { return first(); } 8036: inline reference back() { return last(); } 8036: inline const_reference back() const { return last(); } 8036: 8036: 8036: QVector &operator+=(const QVector &l); 8036: inline QVector operator+(const QVector &l) const 8036: { QVector n = *this; n += l; return n; } 8036: inline QVector &operator+=(const T &t) 8036: { append(t); return *this; } 8036: inline QVector &operator<< (const T &t) 8036: { append(t); return *this; } 8036: inline QVector &operator<<(const QVector &l) 8036: { *this += l; return *this; } 8036: 8036: QList toList() const; 8036: 8036: static QVector fromList(const QList &list); 8036: 8036: static inline QVector fromStdVector(const std::vector &vector) 8036: { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } 8036: inline std::vector toStdVector() const 8036: { return std::vector(d->begin(), d->end()); } 8036: private: 8036: friend class QRegion; 8036: 8036: 8036: void reallocData(const int size, const int alloc, QArrayData::AllocationOptions options = QArrayData::Default); 8036: void reallocData(const int sz) { reallocData(sz, d->alloc); } 8036: void freeData(Data *d); 8036: void defaultConstruct(T *from, T *to); 8036: void copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom); 8036: void destruct(T *from, T *to); 8036: bool isValidIterator(const iterator &i) const 8036: { 8036: return (i <= d->end()) && (d->begin() <= i); 8036: } 8036: class AlignmentDummy { Data header; T array[1]; }; 8036: }; 8036: # 316 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 3 4 8036: template 8036: void QVector::defaultConstruct(T *from, T *to) 8036: { 8036: if (QTypeInfo::isComplex) { 8036: while (from != to) { 8036: new (from++) T(); 8036: } 8036: } else { 8036: ::memset(static_cast(from), 0, (to - from) * sizeof(T)); 8036: } 8036: } 8036: 8036: template 8036: void QVector::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom) 8036: { 8036: if (QTypeInfo::isComplex) { 8036: while (srcFrom != srcTo) 8036: new (dstFrom++) T(*srcFrom++); 8036: } else { 8036: ::memcpy(static_cast(dstFrom), static_cast(srcFrom), (srcTo - srcFrom) * sizeof(T)); 8036: } 8036: } 8036: 8036: template 8036: void QVector::destruct(T *from, T *to) 8036: { 8036: if (QTypeInfo::isComplex) { 8036: while (from != to) { 8036: from++->~T(); 8036: } 8036: } 8036: } 8036: 8036: template 8036: inline QVector::QVector(const QVector &v) 8036: { 8036: if (v.d->ref.ref()) { 8036: d = v.d; 8036: } else { 8036: if (v.d->capacityReserved) { 8036: d = Data::allocate(v.d->alloc); 8036: qt_noop(); 8036: d->capacityReserved = true; 8036: } else { 8036: d = Data::allocate(v.d->size); 8036: qt_noop(); 8036: } 8036: if (d->alloc) { 8036: copyConstruct(v.d->begin(), v.d->end(), d->begin()); 8036: d->size = v.d->size; 8036: } 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void QVector::detach() 8036: { 8036: if (!isDetached()) { 8036: 8036: if (!d->alloc) 8036: d = Data::unsharableEmpty(); 8036: else 8036: 8036: reallocData(d->size, int(d->alloc)); 8036: } 8036: do { } while ((false) && (isDetached())); 8036: } 8036: 8036: template 8036: void QVector::reserve(int asize) 8036: { 8036: if (asize > int(d->alloc)) 8036: reallocData(d->size, asize); 8036: if (isDetached() 8036: 8036: && d != Data::unsharableEmpty() 8036: 8036: ) 8036: d->capacityReserved = 1; 8036: do { } while ((false) && (capacity() >= asize)); 8036: } 8036: 8036: template 8036: void QVector::resize(int asize) 8036: { 8036: int newAlloc; 8036: const int oldAlloc = int(d->alloc); 8036: QArrayData::AllocationOptions opt; 8036: 8036: if (asize > oldAlloc) { 8036: newAlloc = asize; 8036: opt = QArrayData::Grow; 8036: } else { 8036: newAlloc = oldAlloc; 8036: } 8036: reallocData(asize, newAlloc, opt); 8036: } 8036: template 8036: inline void QVector::clear() 8036: { resize(0); } 8036: template 8036: inline const T &QVector::at(int i) const 8036: { do { } while ((false) && (i >= 0 && i < d->size)); 8036: return d->begin()[i]; } 8036: template 8036: inline const T &QVector::operator[](int i) const 8036: { do { } while ((false) && (i >= 0 && i < d->size)); 8036: return d->begin()[i]; } 8036: template 8036: inline T &QVector::operator[](int i) 8036: { do { } while ((false) && (i >= 0 && i < d->size)); 8036: return data()[i]; } 8036: template 8036: inline void QVector::insert(int i, const T &t) 8036: { do { } while ((false) && (i >= 0 && i <= d->size)); 8036: insert(begin() + i, 1, t); } 8036: template 8036: inline void QVector::insert(int i, int n, const T &t) 8036: { do { } while ((false) && (i >= 0 && i <= d->size)); 8036: insert(begin() + i, n, t); } 8036: template 8036: inline void QVector::remove(int i, int n) 8036: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= d->size)); 8036: erase(d->begin() + i, d->begin() + i + n); } 8036: template 8036: inline void QVector::remove(int i) 8036: { do { } while ((false) && (i >= 0 && i < d->size)); 8036: erase(d->begin() + i, d->begin() + i + 1); } 8036: template 8036: inline void QVector::prepend(const T &t) 8036: { insert(begin(), 1, t); } 8036: 8036: template 8036: inline void QVector::replace(int i, const T &t) 8036: { 8036: do { } while ((false) && (i >= 0 && i < d->size)); 8036: const T copy(t); 8036: data()[i] = copy; 8036: } 8036: 8036: template 8036: QVector &QVector::operator=(const QVector &v) 8036: { 8036: if (v.d != d) { 8036: QVector tmp(v); 8036: tmp.swap(*this); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: QVector::QVector(int asize) 8036: { 8036: do { } while ((false) && (asize >= 0)); 8036: if (__builtin_expect(!!(asize > 0), true)) { 8036: d = Data::allocate(asize); 8036: qt_noop(); 8036: d->size = asize; 8036: defaultConstruct(d->begin(), d->end()); 8036: } else { 8036: d = Data::sharedNull(); 8036: } 8036: } 8036: 8036: template 8036: QVector::QVector(int asize, const T &t) 8036: { 8036: do { } while ((false) && (asize >= 0)); 8036: if (asize > 0) { 8036: d = Data::allocate(asize); 8036: qt_noop(); 8036: d->size = asize; 8036: T* i = d->end(); 8036: while (i != d->begin()) 8036: new (--i) T(t); 8036: } else { 8036: d = Data::sharedNull(); 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: QVector::QVector(std::initializer_list args) 8036: { 8036: if (args.size() > 0) { 8036: d = Data::allocate(args.size()); 8036: qt_noop(); 8036: 8036: 8036: copyConstruct(args.begin(), args.end(), d->begin()); 8036: d->size = int(args.size()); 8036: } else { 8036: d = Data::sharedNull(); 8036: } 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void QVector::freeData(Data *x) 8036: { 8036: destruct(x->begin(), x->end()); 8036: Data::deallocate(x); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: void QVector::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options) 8036: { 8036: do { } while ((false) && (asize >= 0 && asize <= aalloc)); 8036: Data *x = d; 8036: 8036: const bool isShared = d->ref.isShared(); 8036: 8036: if (aalloc != 0) { 8036: if (aalloc != int(d->alloc) || isShared) { 8036: if (true) { 8036: 8036: x = Data::allocate(aalloc, options); 8036: qt_noop(); 8036: 8036: 8036: do { } while ((false) && (x->ref.isSharable() || options.testFlag(QArrayData::Unsharable))); 8036: 8036: do { } while ((false) && (!x->ref.isStatic())); 8036: x->size = asize; 8036: 8036: T *srcBegin = d->begin(); 8036: T *srcEnd = asize > d->size ? d->end() : d->begin() + asize; 8036: T *dst = x->begin(); 8036: 8036: if (!QTypeInfoQuery::isRelocatable || (isShared && QTypeInfo::isComplex)) { 8036: 8036: while (srcBegin != srcEnd) { 8036: new (dst++) T(*srcBegin++); 8036: } 8036: } else { 8036: ::memcpy(static_cast(dst), static_cast(srcBegin), (srcEnd - srcBegin) * sizeof(T)); 8036: dst += srcEnd - srcBegin; 8036: 8036: 8036: if (asize < d->size) 8036: destruct(d->begin() + asize, d->end()); 8036: } 8036: 8036: if (asize > d->size) { 8036: 8036: if (true) { 8036: defaultConstruct(dst, x->end()); 8036: } else { 8036: 8036: destruct(x->begin(), dst); 8036: qt_noop(); 8036: } 8036: } 8036: } else { 8036: Data::deallocate(x); 8036: qt_noop(); 8036: } 8036: x->capacityReserved = d->capacityReserved; 8036: } else { 8036: do { } while ((false) && (int(d->alloc) == aalloc)); 8036: do { } while ((false) && (isDetached())); 8036: do { } while ((false) && (x == d)); 8036: if (asize <= d->size) { 8036: destruct(x->begin() + asize, x->end()); 8036: } else { 8036: defaultConstruct(x->end(), x->begin() + asize); 8036: } 8036: x->size = asize; 8036: } 8036: } else { 8036: x = Data::sharedNull(); 8036: } 8036: if (d != x) { 8036: if (!d->ref.deref()) { 8036: if (!QTypeInfoQuery::isRelocatable || !aalloc || (isShared && QTypeInfo::isComplex)) { 8036: 8036: 8036: freeData(d); 8036: } else { 8036: Data::deallocate(d); 8036: } 8036: } 8036: d = x; 8036: } 8036: 8036: do { } while ((false) && (d->data())); 8036: do { } while ((false) && (uint(d->size) <= d->alloc)); 8036: 8036: do { } while ((false) && (d != Data::unsharableEmpty())); 8036: 8036: do { } while ((false) && (aalloc ? d != Data::sharedNull() : d == Data::sharedNull())); 8036: do { } while ((false) && (d->alloc >= uint(aalloc))); 8036: do { } while ((false) && (d->size == asize)); 8036: } 8036: 8036: 8036: 8036: 8036: 8036: template 8036: T QVector::value(int i) const 8036: { 8036: if (uint(i) >= uint(d->size)) { 8036: return T(); 8036: } 8036: return d->begin()[i]; 8036: } 8036: template 8036: T QVector::value(int i, const T &defaultValue) const 8036: { 8036: return uint(i) >= uint(d->size) ? defaultValue : d->begin()[i]; 8036: } 8036: 8036: template 8036: void QVector::append(const T &t) 8036: { 8036: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8036: if (!isDetached() || isTooSmall) { 8036: T copy(t); 8036: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8036: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8036: 8036: if (QTypeInfo::isComplex) 8036: new (d->end()) T(std::move(copy)); 8036: else 8036: *d->end() = std::move(copy); 8036: 8036: } else { 8036: if (QTypeInfo::isComplex) 8036: new (d->end()) T(t); 8036: else 8036: *d->end() = t; 8036: } 8036: ++d->size; 8036: } 8036: 8036: 8036: template 8036: void QVector::append(T &&t) 8036: { 8036: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8036: if (!isDetached() || isTooSmall) { 8036: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8036: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8036: } 8036: 8036: new (d->end()) T(std::move(t)); 8036: 8036: ++d->size; 8036: } 8036: 8036: 8036: template 8036: void QVector::removeLast() 8036: { 8036: do { } while ((false) && (!isEmpty())); 8036: do { } while ((false) && (d->alloc)); 8036: 8036: if (!d->ref.isShared()) { 8036: --d->size; 8036: if (QTypeInfo::isComplex) 8036: (d->data() + d->size)->~T(); 8036: } else { 8036: reallocData(d->size - 1); 8036: } 8036: } 8036: 8036: template 8036: typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) 8036: { 8036: do { } while ((false) && (isValidIterator(before))); 8036: 8036: const auto offset = std::distance(d->begin(), before); 8036: if (n != 0) { 8036: const T copy(t); 8036: if (!isDetached() || d->size + n > int(d->alloc)) 8036: reallocData(d->size, d->size + n, QArrayData::Grow); 8036: if (!QTypeInfoQuery::isRelocatable) { 8036: T *b = d->end(); 8036: T *i = d->end() + n; 8036: while (i != b) 8036: new (--i) T; 8036: i = d->end(); 8036: T *j = i + n; 8036: b = d->begin() + offset; 8036: while (i != b) 8036: *--j = *--i; 8036: i = b+n; 8036: while (i != b) 8036: *--i = copy; 8036: } else { 8036: T *b = d->begin() + offset; 8036: T *i = b + n; 8036: memmove(i, b, (d->size - offset) * sizeof(T)); 8036: while (i != b) 8036: new (--i) T(copy); 8036: } 8036: d->size += n; 8036: } 8036: return d->begin() + offset; 8036: } 8036: 8036: template 8036: typename QVector::iterator QVector::erase(iterator abegin, iterator aend) 8036: { 8036: do { } while ((false) && (isValidIterator(abegin))); 8036: do { } while ((false) && (isValidIterator(aend))); 8036: 8036: const auto itemsToErase = aend - abegin; 8036: 8036: if (!itemsToErase) 8036: return abegin; 8036: 8036: do { } while ((false) && (abegin >= d->begin())); 8036: do { } while ((false) && (aend <= d->end())); 8036: do { } while ((false) && (abegin <= aend)); 8036: 8036: const auto itemsUntouched = abegin - d->begin(); 8036: 8036: 8036: 8036: 8036: if (d->alloc) { 8036: detach(); 8036: abegin = d->begin() + itemsUntouched; 8036: aend = abegin + itemsToErase; 8036: if (!QTypeInfoQuery::isRelocatable) { 8036: iterator moveBegin = abegin + itemsToErase; 8036: iterator moveEnd = d->end(); 8036: while (moveBegin != moveEnd) { 8036: if (QTypeInfo::isComplex) 8036: static_cast(abegin)->~T(); 8036: new (abegin++) T(*moveBegin++); 8036: } 8036: if (abegin < d->end()) { 8036: 8036: destruct(abegin, d->end()); 8036: } 8036: } else { 8036: destruct(abegin, aend); 8036: 8036: 8036: 8036: memmove(static_cast(abegin), static_cast(aend), 8036: (d->size - itemsToErase - itemsUntouched) * sizeof(T)); 8036: } 8036: d->size -= int(itemsToErase); 8036: } 8036: return d->begin() + itemsUntouched; 8036: } 8036: 8036: template 8036: bool QVector::operator==(const QVector &v) const 8036: { 8036: if (d == v.d) 8036: return true; 8036: if (d->size != v.d->size) 8036: return false; 8036: const T *vb = v.d->begin(); 8036: const T *b = d->begin(); 8036: const T *e = d->end(); 8036: return std::equal(b, e, (vb)); 8036: } 8036: 8036: template 8036: QVector &QVector::fill(const T &from, int asize) 8036: { 8036: const T copy(from); 8036: resize(asize < 0 ? d->size : asize); 8036: if (d->size) { 8036: T *i = d->end(); 8036: T *b = d->begin(); 8036: while (i != b) 8036: *--i = copy; 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: QVector &QVector::operator+=(const QVector &l) 8036: { 8036: if (d == Data::sharedNull()) { 8036: *this = l; 8036: } else { 8036: uint newSize = d->size + l.d->size; 8036: const bool isTooSmall = newSize > d->alloc; 8036: if (!isDetached() || isTooSmall) { 8036: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8036: reallocData(d->size, isTooSmall ? newSize : d->alloc, opt); 8036: } 8036: 8036: if (d->alloc) { 8036: T *w = d->begin() + newSize; 8036: T *i = l.d->end(); 8036: T *b = l.d->begin(); 8036: while (i != b) { 8036: if (QTypeInfo::isComplex) 8036: new (--w) T(*--i); 8036: else 8036: *--w = *--i; 8036: } 8036: d->size = newSize; 8036: } 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: int QVector::indexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from = qMax(from + d->size, 0); 8036: if (from < d->size) { 8036: T* n = d->begin() + from - 1; 8036: T* e = d->end(); 8036: while (++n != e) 8036: if (*n == t) 8036: return n - d->begin(); 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: int QVector::lastIndexOf(const T &t, int from) const 8036: { 8036: if (from < 0) 8036: from += d->size; 8036: else if (from >= d->size) 8036: from = d->size-1; 8036: if (from >= 0) { 8036: T* b = d->begin(); 8036: T* n = d->begin() + from + 1; 8036: while (n != b) { 8036: if (*--n == t) 8036: return n - b; 8036: } 8036: } 8036: return -1; 8036: } 8036: 8036: template 8036: bool QVector::contains(const T &t) const 8036: { 8036: const T *b = d->begin(); 8036: const T *e = d->end(); 8036: return std::find(b, e, t) != e; 8036: } 8036: 8036: template 8036: int QVector::count(const T &t) const 8036: { 8036: const T *b = d->begin(); 8036: const T *e = d->end(); 8036: return int(std::count(b, e, t)); 8036: } 8036: 8036: template 8036: QVector QVector::mid(int pos, int len) const 8036: { 8036: using namespace QtPrivate; 8036: switch (QContainerImplHelper::mid(d->size, &pos, &len)) { 8036: case QContainerImplHelper::Null: 8036: case QContainerImplHelper::Empty: 8036: return QVector(); 8036: case QContainerImplHelper::Full: 8036: return *this; 8036: case QContainerImplHelper::Subset: 8036: break; 8036: } 8036: 8036: QVector midResult; 8036: midResult.reallocData(0, len); 8036: T *srcFrom = d->begin() + pos; 8036: T *srcTo = d->begin() + pos + len; 8036: midResult.copyConstruct(srcFrom, srcTo, midResult.data()); 8036: midResult.d->size = len; 8036: return midResult; 8036: } 8036: 8036: template 8036: QList QVector::toList() const 8036: { 8036: QList result; 8036: result.reserve(size()); 8036: for (int i = 0; i < size(); ++i) 8036: result.append(at(i)); 8036: return result; 8036: } 8036: 8036: template 8036: QVector QList::toVector() const 8036: { 8036: QVector result(size()); 8036: for (int i = 0; i < size(); ++i) 8036: result[i] = at(i); 8036: return result; 8036: } 8036: 8036: template 8036: QVector QVector::fromList(const QList &list) 8036: { 8036: return list.toVector(); 8036: } 8036: 8036: template 8036: QList QList::fromVector(const QVector &vector) 8036: { 8036: return vector.toList(); 8036: } 8036: 8036: template class QVectorIterator { typedef typename QVector::const_iterator const_iterator; QVector c; const_iterator i; public: inline QVectorIterator(const QVector &container) : c(container), i(c.constBegin()) {} inline QVectorIterator &operator=(const QVector &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8036: template class QMutableVectorIterator { typedef typename QVector::iterator iterator; typedef typename QVector::const_iterator const_iterator; QVector *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableVectorIterator(QVector &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableVectorIterator &operator=(QVector &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8036: 8036: template 8036: uint qHash(const QVector &key, uint seed = 0) 8036: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8036: { 8036: return qHashRange(key.cbegin(), key.cend(), seed); 8036: } 8036: 8036: template 8036: bool operator<(const QVector &lhs, const QVector &rhs) 8036: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8036: 8036: { 8036: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8036: rhs.begin(), rhs.end()); 8036: } 8036: 8036: template 8036: inline bool operator>(const QVector &lhs, const QVector &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return rhs < lhs; 8036: } 8036: 8036: template 8036: inline bool operator<=(const QVector &lhs, const QVector &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs > rhs); 8036: } 8036: 8036: template 8036: inline bool operator>=(const QVector &lhs, const QVector &rhs) 8036: noexcept(noexcept(lhs < rhs)) 8036: { 8036: return !(lhs < rhs); 8036: } 8036: # 1006 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qvector.h" 3 4 8036: 8036: # 52 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qset.h" 1 3 4 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qset.h" 3 4 8036: 8036: 8036: 8036: template 8036: class QSet 8036: { 8036: typedef QHash Hash; 8036: 8036: public: 8036: inline QSet() noexcept {} 8036: 8036: inline QSet(std::initializer_list list) 8036: { 8036: reserve(int(list.size())); 8036: for (typename std::initializer_list::const_iterator it = list.begin(); it != list.end(); ++it) 8036: insert(*it); 8036: } 8036: 8036: 8036: 8036: 8036: inline void swap(QSet &other) noexcept { q_hash.swap(other.q_hash); } 8036: 8036: inline bool operator==(const QSet &other) const 8036: { return q_hash == other.q_hash; } 8036: inline bool operator!=(const QSet &other) const 8036: { return q_hash != other.q_hash; } 8036: 8036: inline int size() const { return q_hash.size(); } 8036: 8036: inline bool isEmpty() const { return q_hash.isEmpty(); } 8036: 8036: inline int capacity() const { return q_hash.capacity(); } 8036: inline void reserve(int size); 8036: inline void squeeze() { q_hash.squeeze(); } 8036: 8036: inline void detach() { q_hash.detach(); } 8036: inline bool isDetached() const { return q_hash.isDetached(); } 8036: 8036: inline void setSharable(bool sharable) { q_hash.setSharable(sharable); } 8036: 8036: 8036: inline void clear() { q_hash.clear(); } 8036: 8036: inline bool remove(const T &value) { return q_hash.remove(value) != 0; } 8036: 8036: inline bool contains(const T &value) const { return q_hash.contains(value); } 8036: 8036: bool contains(const QSet &set) const; 8036: 8036: class const_iterator; 8036: 8036: class iterator 8036: { 8036: typedef QHash Hash; 8036: typename Hash::iterator i; 8036: friend class const_iterator; 8036: friend class QSet; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef const T *pointer; 8036: typedef const T &reference; 8036: 8036: inline iterator() {} 8036: inline iterator(typename Hash::iterator o) : i(o) {} 8036: inline iterator(const iterator &o) : i(o.i) {} 8036: inline iterator &operator=(const iterator &o) { i = o.i; return *this; } 8036: inline const T &operator*() const { return i.key(); } 8036: inline const T *operator->() const { return &i.key(); } 8036: inline bool operator==(const iterator &o) const { return i == o.i; } 8036: inline bool operator!=(const iterator &o) const { return i != o.i; } 8036: inline bool operator==(const const_iterator &o) const 8036: { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const 8036: { return i != o.i; } 8036: inline iterator &operator++() { ++i; return *this; } 8036: inline iterator operator++(int) { iterator r = *this; ++i; return r; } 8036: inline iterator &operator--() { --i; return *this; } 8036: inline iterator operator--(int) { iterator r = *this; --i; return r; } 8036: inline iterator operator+(int j) const { return i + j; } 8036: inline iterator operator-(int j) const { return i - j; } 8036: inline iterator &operator+=(int j) { i += j; return *this; } 8036: inline iterator &operator-=(int j) { i -= j; return *this; } 8036: }; 8036: 8036: class const_iterator 8036: { 8036: typedef QHash Hash; 8036: typename Hash::const_iterator i; 8036: friend class iterator; 8036: friend class QSet; 8036: 8036: public: 8036: typedef std::bidirectional_iterator_tag iterator_category; 8036: typedef qptrdiff difference_type; 8036: typedef T value_type; 8036: typedef const T *pointer; 8036: typedef const T &reference; 8036: 8036: inline const_iterator() {} 8036: inline const_iterator(typename Hash::const_iterator o) : i(o) {} 8036: inline const_iterator(const const_iterator &o) : i(o.i) {} 8036: inline const_iterator(const iterator &o) 8036: : i(o.i) {} 8036: inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; } 8036: inline const T &operator*() const { return i.key(); } 8036: inline const T *operator->() const { return &i.key(); } 8036: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8036: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8036: inline const_iterator &operator++() { ++i; return *this; } 8036: inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; } 8036: inline const_iterator &operator--() { --i; return *this; } 8036: inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; } 8036: inline const_iterator operator+(int j) const { return i + j; } 8036: inline const_iterator operator-(int j) const { return i - j; } 8036: inline const_iterator &operator+=(int j) { i += j; return *this; } 8036: inline const_iterator &operator-=(int j) { i -= j; return *this; } 8036: }; 8036: 8036: 8036: typedef std::reverse_iterator reverse_iterator; 8036: typedef std::reverse_iterator const_reverse_iterator; 8036: 8036: inline iterator begin() { return q_hash.begin(); } 8036: inline const_iterator begin() const noexcept { return q_hash.begin(); } 8036: inline const_iterator cbegin() const noexcept { return q_hash.begin(); } 8036: inline const_iterator constBegin() const noexcept { return q_hash.constBegin(); } 8036: inline iterator end() { return q_hash.end(); } 8036: inline const_iterator end() const noexcept { return q_hash.end(); } 8036: inline const_iterator cend() const noexcept { return q_hash.end(); } 8036: inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); } 8036: 8036: reverse_iterator rbegin() { return reverse_iterator(end()); } 8036: reverse_iterator rend() { return reverse_iterator(begin()); } 8036: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8036: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8036: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8036: 8036: iterator erase(iterator i) 8036: { return erase(m2c(i)); } 8036: iterator erase(const_iterator i) 8036: { 8036: do { } while ((false) && (isValidIterator(i))); 8036: return q_hash.erase(reinterpret_cast(i)); 8036: } 8036: 8036: 8036: typedef iterator Iterator; 8036: typedef const_iterator ConstIterator; 8036: inline int count() const { return q_hash.count(); } 8036: inline iterator insert(const T &value) 8036: { return static_cast(q_hash.insert(value, QHashDummyValue())); } 8036: iterator find(const T &value) { return q_hash.find(value); } 8036: const_iterator find(const T &value) const { return q_hash.find(value); } 8036: inline const_iterator constFind(const T &value) const { return find(value); } 8036: QSet &unite(const QSet &other); 8036: QSet &intersect(const QSet &other); 8036: bool intersects(const QSet &other) const; 8036: QSet &subtract(const QSet &other); 8036: 8036: 8036: typedef T key_type; 8036: typedef T value_type; 8036: typedef value_type *pointer; 8036: typedef const value_type *const_pointer; 8036: typedef value_type &reference; 8036: typedef const value_type &const_reference; 8036: typedef qptrdiff difference_type; 8036: typedef int size_type; 8036: 8036: inline bool empty() const { return isEmpty(); } 8036: 8036: inline QSet &operator<<(const T &value) { insert(value); return *this; } 8036: inline QSet &operator|=(const QSet &other) { unite(other); return *this; } 8036: inline QSet &operator|=(const T &value) { insert(value); return *this; } 8036: inline QSet &operator&=(const QSet &other) { intersect(other); return *this; } 8036: inline QSet &operator&=(const T &value) 8036: { QSet result; if (contains(value)) result.insert(value); return (*this = result); } 8036: inline QSet &operator+=(const QSet &other) { unite(other); return *this; } 8036: inline QSet &operator+=(const T &value) { insert(value); return *this; } 8036: inline QSet &operator-=(const QSet &other) { subtract(other); return *this; } 8036: inline QSet &operator-=(const T &value) { remove(value); return *this; } 8036: inline QSet operator|(const QSet &other) const 8036: { QSet result = *this; result |= other; return result; } 8036: inline QSet operator&(const QSet &other) const 8036: { QSet result = *this; result &= other; return result; } 8036: inline QSet operator+(const QSet &other) const 8036: { QSet result = *this; result += other; return result; } 8036: inline QSet operator-(const QSet &other) const 8036: { QSet result = *this; result -= other; return result; } 8036: 8036: QList toList() const; 8036: inline QList values() const { return toList(); } 8036: 8036: static QSet fromList(const QList &list); 8036: 8036: private: 8036: Hash q_hash; 8036: 8036: static const_iterator m2c(iterator it) noexcept 8036: { return const_iterator(typename Hash::const_iterator(it.i.i)); } 8036: 8036: bool isValidIterator(const iterator &i) const 8036: { 8036: return q_hash.isValidIterator(reinterpret_cast(i)); 8036: } 8036: bool isValidIterator(const const_iterator &i) const noexcept 8036: { 8036: return q_hash.isValidIterator(reinterpret_cast(i)); 8036: } 8036: }; 8036: 8036: template 8036: uint qHash(const QSet &key, uint seed = 0) 8036: noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) 8036: { 8036: return qHashRangeCommutative(key.begin(), key.end(), seed); 8036: } 8036: 8036: 8036: 8036: template 8036: inline void QSet::reserve(int asize) { q_hash.reserve(asize); } 8036: 8036: template 8036: inline QSet &QSet::unite(const QSet &other) 8036: { 8036: QSet copy(other); 8036: typename QSet::const_iterator i = copy.constEnd(); 8036: while (i != copy.constBegin()) { 8036: --i; 8036: insert(*i); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline QSet &QSet::intersect(const QSet &other) 8036: { 8036: QSet copy1; 8036: QSet copy2; 8036: if (size() <= other.size()) { 8036: copy1 = *this; 8036: copy2 = other; 8036: } else { 8036: copy1 = other; 8036: copy2 = *this; 8036: *this = copy1; 8036: } 8036: typename QSet::const_iterator i = copy1.constEnd(); 8036: while (i != copy1.constBegin()) { 8036: --i; 8036: if (!copy2.contains(*i)) 8036: remove(*i); 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline bool QSet::intersects(const QSet &other) const 8036: { 8036: const bool otherIsBigger = other.size() > size(); 8036: const QSet &smallestSet = otherIsBigger ? *this : other; 8036: const QSet &biggestSet = otherIsBigger ? other : *this; 8036: const bool equalSeeds = q_hash.d->seed == other.q_hash.d->seed; 8036: typename QSet::const_iterator i = smallestSet.cbegin(); 8036: typename QSet::const_iterator e = smallestSet.cend(); 8036: 8036: if (__builtin_expect(!!(equalSeeds), true)) { 8036: 8036: while (i != e) { 8036: if (*biggestSet.q_hash.findNode(*i, i.i.i->h) != biggestSet.q_hash.e) 8036: return true; 8036: ++i; 8036: } 8036: } else { 8036: while (i != e) { 8036: if (biggestSet.contains(*i)) 8036: return true; 8036: ++i; 8036: } 8036: } 8036: 8036: return false; 8036: } 8036: 8036: template 8036: inline QSet &QSet::subtract(const QSet &other) 8036: { 8036: if (&other == this) { 8036: clear(); 8036: } else { 8036: auto i = other.constEnd(); 8036: while (i != other.constBegin()) { 8036: --i; 8036: remove(*i); 8036: } 8036: } 8036: return *this; 8036: } 8036: 8036: template 8036: inline bool QSet::contains(const QSet &other) const 8036: { 8036: typename QSet::const_iterator i = other.constBegin(); 8036: while (i != other.constEnd()) { 8036: if (!contains(*i)) 8036: return false; 8036: ++i; 8036: } 8036: return true; 8036: } 8036: 8036: template 8036: QList QSet::toList() const 8036: { 8036: QList result; 8036: result.reserve(size()); 8036: typename QSet::const_iterator i = constBegin(); 8036: while (i != constEnd()) { 8036: result.append(*i); 8036: ++i; 8036: } 8036: return result; 8036: } 8036: 8036: template 8036: QSet QList::toSet() const 8036: { 8036: QSet result; 8036: result.reserve(size()); 8036: for (int i = 0; i < size(); ++i) 8036: result.insert(at(i)); 8036: return result; 8036: } 8036: 8036: template 8036: QSet QSet::fromList(const QList &list) 8036: { 8036: return list.toSet(); 8036: } 8036: 8036: template 8036: QList QList::fromSet(const QSet &set) 8036: { 8036: return set.toList(); 8036: } 8036: 8036: template class QSetIterator { typedef typename QSet::const_iterator const_iterator; QSet c; const_iterator i; public: inline QSetIterator(const QSet &container) : c(container), i(c.constBegin()) {} inline QSetIterator &operator=(const QSet &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8036: 8036: template 8036: class QMutableSetIterator 8036: { 8036: typedef typename QSet::iterator iterator; 8036: QSet *c; 8036: iterator i, n; 8036: inline bool item_exists() const { return c->constEnd() != n; } 8036: 8036: public: 8036: inline QMutableSetIterator(QSet &container) 8036: : c(&container) 8036: { i = c->begin(); n = c->end(); } 8036: inline QMutableSetIterator &operator=(QSet &container) 8036: { c = &container; i = c->begin(); n = c->end(); return *this; } 8036: inline void toFront() { i = c->begin(); n = c->end(); } 8036: inline void toBack() { i = c->end(); n = i; } 8036: inline bool hasNext() const { return c->constEnd() != i; } 8036: inline const T &next() { n = i++; return *n; } 8036: inline const T &peekNext() const { return *i; } 8036: inline bool hasPrevious() const { return c->constBegin() != i; } 8036: inline const T &previous() { n = --i; return *n; } 8036: inline const T &peekPrevious() const { iterator p = i; return *--p; } 8036: inline void remove() 8036: { if (c->constEnd() != n) { i = c->erase(n); n = c->end(); } } 8036: inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } 8036: inline bool findNext(const T &t) 8036: { while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; } 8036: inline bool findPrevious(const T &t) 8036: { while (c->constBegin() != i) if (*(n = --i) == t) return true; 8036: n = c->end(); return false; } 8036: }; 8036: 8036: 8036: # 53 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontiguouscache.h" 1 3 4 8036: # 43 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontiguouscache.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontiguouscache.h" 2 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include-fixed/limits.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qcontiguouscache.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: struct __attribute__((visibility("default"))) QContiguousCacheData 8036: { 8036: QBasicAtomicInt ref; 8036: int alloc; 8036: int count; 8036: int start; 8036: int offset; 8036: uint sharable : 1; 8036: uint reserved : 31; 8036: 8036: 8036: 8036: 8036: 8036: 8036: static QContiguousCacheData *allocateData(int size, int alignment); 8036: static void freeData(QContiguousCacheData *data); 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: template 8036: struct QContiguousCacheTypedData: private QContiguousCacheData 8036: { 8036: 8036: T array[1]; 8036: 8036: static inline void freeData(QContiguousCacheTypedData *data) { QContiguousCacheData::freeData(data); } 8036: }; 8036: 8036: template 8036: class QContiguousCache { 8036: typedef QContiguousCacheTypedData Data; 8036: union { QContiguousCacheData *d; QContiguousCacheTypedData *p; }; 8036: public: 8036: 8036: typedef T value_type; 8036: typedef value_type* pointer; 8036: typedef const value_type* const_pointer; 8036: typedef value_type& reference; 8036: typedef const value_type& const_reference; 8036: typedef qptrdiff difference_type; 8036: typedef int size_type; 8036: 8036: explicit QContiguousCache(int capacity = 0); 8036: QContiguousCache(const QContiguousCache &v) : d(v.d) { d->ref.ref(); if (!d->sharable) detach_helper(); } 8036: 8036: inline ~QContiguousCache() { if (!d) return; if (!d->ref.deref()) freeData(p); } 8036: 8036: inline void detach() { if (d->ref.load() != 1) detach_helper(); } 8036: inline bool isDetached() const { return d->ref.load() == 1; } 8036: 8036: inline void setSharable(bool sharable) { if (!sharable) detach(); d->sharable = sharable; } 8036: 8036: 8036: QContiguousCache &operator=(const QContiguousCache &other); 8036: 8036: inline QContiguousCache &operator=(QContiguousCache &&other) 8036: { qSwap(d, other.d); return *this; } 8036: 8036: inline void swap(QContiguousCache &other) { qSwap(d, other.d); } 8036: bool operator==(const QContiguousCache &other) const; 8036: inline bool operator!=(const QContiguousCache &other) const { return !(*this == other); } 8036: 8036: inline int capacity() const {return d->alloc; } 8036: inline int count() const { return d->count; } 8036: inline int size() const { return d->count; } 8036: 8036: inline bool isEmpty() const { return d->count == 0; } 8036: inline bool isFull() const { return d->count == d->alloc; } 8036: inline int available() const { return d->alloc - d->count; } 8036: 8036: void clear(); 8036: void setCapacity(int size); 8036: 8036: const T &at(int pos) const; 8036: T &operator[](int i); 8036: const T &operator[](int i) const; 8036: 8036: void append(const T &value); 8036: void prepend(const T &value); 8036: void insert(int pos, const T &value); 8036: 8036: inline bool containsIndex(int pos) const { return pos >= d->offset && pos - d->offset < d->count; } 8036: inline int firstIndex() const { return d->offset; } 8036: inline int lastIndex() const { return d->offset + d->count - 1; } 8036: 8036: inline const T &first() const { do { } while ((false) && (!isEmpty())); return p->array[d->start]; } 8036: inline const T &last() const { do { } while ((false) && (!isEmpty())); return p->array[(d->start + d->count -1) % d->alloc]; } 8036: inline T &first() { do { } while ((false) && (!isEmpty())); detach(); return p->array[d->start]; } 8036: inline T &last() { do { } while ((false) && (!isEmpty())); detach(); return p->array[(d->start + d->count -1) % d->alloc]; } 8036: 8036: void removeFirst(); 8036: T takeFirst(); 8036: void removeLast(); 8036: T takeLast(); 8036: 8036: inline bool areIndexesValid() const 8036: { return d->offset >= 0 && d->offset < 0x7fffffff - d->count && (d->offset % d->alloc) == d->start; } 8036: 8036: inline void normalizeIndexes() { d->offset = d->start; } 8036: 8036: 8036: 8036: 8036: private: 8036: void detach_helper(); 8036: 8036: QContiguousCacheData *allocateData(int aalloc); 8036: void freeData(Data *x); 8036: int sizeOfTypedData() { 8036: 8036: 8036: return reinterpret_cast(&(reinterpret_cast(this))->array[1]) - reinterpret_cast(this); 8036: } 8036: int alignOfTypedData() const 8036: { 8036: return qMax(sizeof(void*), alignof(Data)); 8036: } 8036: }; 8036: 8036: template 8036: void QContiguousCache::detach_helper() 8036: { 8036: union { QContiguousCacheData *d; QContiguousCacheTypedData *p; } x; 8036: 8036: x.d = allocateData(d->alloc); 8036: x.d->ref.store(1); 8036: x.d->count = d->count; 8036: x.d->start = d->start; 8036: x.d->offset = d->offset; 8036: x.d->alloc = d->alloc; 8036: x.d->sharable = true; 8036: x.d->reserved = 0; 8036: 8036: T *dest = x.p->array + x.d->start; 8036: T *src = p->array + d->start; 8036: int oldcount = x.d->count; 8036: while (oldcount--) { 8036: if (QTypeInfo::isComplex) { 8036: new (dest) T(*src); 8036: } else { 8036: *dest = *src; 8036: } 8036: dest++; 8036: if (dest == x.p->array + x.d->alloc) 8036: dest = x.p->array; 8036: src++; 8036: if (src == p->array + d->alloc) 8036: src = p->array; 8036: } 8036: 8036: if (!d->ref.deref()) 8036: freeData(p); 8036: d = x.d; 8036: } 8036: 8036: template 8036: void QContiguousCache::setCapacity(int asize) 8036: { 8036: if (asize == d->alloc) 8036: return; 8036: detach(); 8036: union { QContiguousCacheData *d; QContiguousCacheTypedData *p; } x; 8036: x.d = allocateData(asize); 8036: x.d->alloc = asize; 8036: x.d->count = qMin(d->count, asize); 8036: x.d->offset = d->offset + d->count - x.d->count; 8036: if(asize) 8036: x.d->start = x.d->offset % x.d->alloc; 8036: else 8036: x.d->start = 0; 8036: 8036: int oldcount = x.d->count; 8036: if(oldcount) 8036: { 8036: T *dest = x.p->array + (x.d->start + x.d->count-1) % x.d->alloc; 8036: T *src = p->array + (d->start + d->count-1) % d->alloc; 8036: while (oldcount--) { 8036: if (QTypeInfo::isComplex) { 8036: new (dest) T(*src); 8036: } else { 8036: *dest = *src; 8036: } 8036: if (dest == x.p->array) 8036: dest = x.p->array + x.d->alloc; 8036: dest--; 8036: if (src == p->array) 8036: src = p->array + d->alloc; 8036: src--; 8036: } 8036: } 8036: 8036: freeData(p); 8036: d = x.d; 8036: } 8036: 8036: template 8036: void QContiguousCache::clear() 8036: { 8036: if (d->ref.load() == 1) { 8036: if (QTypeInfo::isComplex) { 8036: int oldcount = d->count; 8036: T * i = p->array + d->start; 8036: T * e = p->array + d->alloc; 8036: while (oldcount--) { 8036: i->~T(); 8036: i++; 8036: if (i == e) 8036: i = p->array; 8036: } 8036: } 8036: d->count = d->start = d->offset = 0; 8036: } else { 8036: union { QContiguousCacheData *d; QContiguousCacheTypedData *p; } x; 8036: x.d = allocateData(d->alloc); 8036: x.d->ref.store(1); 8036: x.d->alloc = d->alloc; 8036: x.d->count = x.d->start = x.d->offset = 0; 8036: x.d->sharable = true; 8036: if (!d->ref.deref()) freeData(p); 8036: d = x.d; 8036: } 8036: } 8036: 8036: template 8036: inline QContiguousCacheData *QContiguousCache::allocateData(int aalloc) 8036: { 8036: return QContiguousCacheData::allocateData(sizeOfTypedData() + (aalloc - 1) * sizeof(T), alignOfTypedData()); 8036: } 8036: 8036: template 8036: QContiguousCache::QContiguousCache(int cap) 8036: { 8036: d = allocateData(cap); 8036: d->ref.store(1); 8036: d->alloc = cap; 8036: d->count = d->start = d->offset = 0; 8036: d->sharable = true; 8036: } 8036: 8036: template 8036: QContiguousCache &QContiguousCache::operator=(const QContiguousCache &other) 8036: { 8036: other.d->ref.ref(); 8036: if (!d->ref.deref()) 8036: freeData(p); 8036: d = other.d; 8036: if (!d->sharable) 8036: detach_helper(); 8036: return *this; 8036: } 8036: 8036: template 8036: bool QContiguousCache::operator==(const QContiguousCache &other) const 8036: { 8036: if (other.d == d) 8036: return true; 8036: if (other.d->start != d->start 8036: || other.d->count != d->count 8036: || other.d->offset != d->offset 8036: || other.d->alloc != d->alloc) 8036: return false; 8036: for (int i = firstIndex(); i <= lastIndex(); ++i) 8036: if (!(at(i) == other.at(i))) 8036: return false; 8036: return true; 8036: } 8036: 8036: template 8036: void QContiguousCache::freeData(Data *x) 8036: { 8036: if (QTypeInfo::isComplex) { 8036: int oldcount = d->count; 8036: T * i = p->array + d->start; 8036: T * e = p->array + d->alloc; 8036: while (oldcount--) { 8036: i->~T(); 8036: i++; 8036: if (i == e) 8036: i = p->array; 8036: } 8036: } 8036: x->freeData(x); 8036: } 8036: template 8036: void QContiguousCache::append(const T &value) 8036: { 8036: if (!d->alloc) 8036: return; 8036: detach(); 8036: if (QTypeInfo::isComplex) { 8036: if (d->count == d->alloc) 8036: (p->array + (d->start+d->count) % d->alloc)->~T(); 8036: new (p->array + (d->start+d->count) % d->alloc) T(value); 8036: } else { 8036: p->array[(d->start+d->count) % d->alloc] = value; 8036: } 8036: 8036: if (d->count == d->alloc) { 8036: d->start++; 8036: d->start %= d->alloc; 8036: d->offset++; 8036: } else { 8036: d->count++; 8036: } 8036: } 8036: 8036: template 8036: void QContiguousCache::prepend(const T &value) 8036: { 8036: if (!d->alloc) 8036: return; 8036: detach(); 8036: if (d->start) 8036: d->start--; 8036: else 8036: d->start = d->alloc-1; 8036: d->offset--; 8036: 8036: if (d->count != d->alloc) 8036: d->count++; 8036: else 8036: if (d->count == d->alloc) 8036: (p->array + d->start)->~T(); 8036: 8036: if (QTypeInfo::isComplex) 8036: new (p->array + d->start) T(value); 8036: else 8036: p->array[d->start] = value; 8036: } 8036: 8036: template 8036: void QContiguousCache::insert(int pos, const T &value) 8036: { 8036: do { } while ((false) && (pos >= 0 && pos < 0x7fffffff)); 8036: if (!d->alloc) 8036: return; 8036: detach(); 8036: if (containsIndex(pos)) { 8036: if (QTypeInfo::isComplex) { 8036: (p->array + pos % d->alloc)->~T(); 8036: new (p->array + pos % d->alloc) T(value); 8036: } else { 8036: p->array[pos % d->alloc] = value; 8036: } 8036: } else if (pos == d->offset-1) 8036: prepend(value); 8036: else if (pos == d->offset+d->count) 8036: append(value); 8036: else { 8036: 8036: clear(); 8036: d->offset = pos; 8036: d->start = pos % d->alloc; 8036: d->count = 1; 8036: if (QTypeInfo::isComplex) 8036: new (p->array + d->start) T(value); 8036: else 8036: p->array[d->start] = value; 8036: } 8036: } 8036: 8036: template 8036: inline const T &QContiguousCache::at(int pos) const 8036: { do { } while ((false) && (pos >= d->offset && pos - d->offset < d->count)); return p->array[pos % d->alloc]; } 8036: template 8036: inline const T &QContiguousCache::operator[](int pos) const 8036: { do { } while ((false) && (pos >= d->offset && pos - d->offset < d->count)); return p->array[pos % d->alloc]; } 8036: 8036: template 8036: inline T &QContiguousCache::operator[](int pos) 8036: { 8036: detach(); 8036: if (!containsIndex(pos)) 8036: insert(pos, T()); 8036: return p->array[pos % d->alloc]; 8036: } 8036: 8036: template 8036: inline void QContiguousCache::removeFirst() 8036: { 8036: do { } while ((false) && (d->count > 0)); 8036: detach(); 8036: d->count--; 8036: if (QTypeInfo::isComplex) 8036: (p->array + d->start)->~T(); 8036: d->start = (d->start + 1) % d->alloc; 8036: d->offset++; 8036: } 8036: 8036: template 8036: inline void QContiguousCache::removeLast() 8036: { 8036: do { } while ((false) && (d->count > 0)); 8036: detach(); 8036: d->count--; 8036: if (QTypeInfo::isComplex) 8036: (p->array + (d->start + d->count) % d->alloc)->~T(); 8036: } 8036: 8036: template 8036: inline T QContiguousCache::takeFirst() 8036: { T t = first(); removeFirst(); return t; } 8036: 8036: template 8036: inline T QContiguousCache::takeLast() 8036: { T t = last(); removeLast(); return t; } 8036: 8036: 8036: # 54 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 2 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer.h" 1 3 4 8036: # 44 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 1 3 4 8036: # 63 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8036: # 64 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 90 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8036: template class QWeakPointer; 8036: template class QSharedPointer; 8036: template class QEnableSharedFromThis; 8036: 8036: class QVariant; 8036: 8036: template 8036: QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); 8036: template 8036: QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); 8036: template 8036: QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); 8036: 8036: 8036: template 8036: QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); 8036: 8036: 8036: namespace QtSharedPointer { 8036: template class ExternalRefCount; 8036: 8036: template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); 8036: 8036: 8036: __attribute__((visibility("default"))) void internalSafetyCheckAdd(const void *, const volatile void *); 8036: __attribute__((visibility("default"))) void internalSafetyCheckRemove(const void *); 8036: 8036: template 8036: inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) 8036: { (t->*memberDeleter)(); } 8036: template 8036: inline void executeDeleter(T *t, Deleter d) 8036: { d(t); } 8036: struct NormalDeleter {}; 8036: 8036: 8036: template struct RemovePointer; 8036: template struct RemovePointer { typedef T Type; }; 8036: template struct RemovePointer > { typedef T Type; }; 8036: template struct RemovePointer > { typedef T Type; }; 8036: # 141 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8036: struct ExternalRefCountData 8036: { 8036: typedef void (*DestroyerFn)(ExternalRefCountData *); 8036: QBasicAtomicInt weakref; 8036: QBasicAtomicInt strongref; 8036: DestroyerFn destroyer; 8036: 8036: inline ExternalRefCountData(DestroyerFn d) 8036: : destroyer(d) 8036: { 8036: strongref.store(1); 8036: weakref.store(1); 8036: } 8036: inline ExternalRefCountData(Qt::Initialization) { } 8036: ~ExternalRefCountData() { do { } while ((false) && (!weakref.load())); do { } while ((false) && (strongref.load() <= 0)); } 8036: 8036: void destroy() { destroyer(this); } 8036: 8036: 8036: __attribute__((visibility("default"))) static ExternalRefCountData *getAndRef(const QObject *); 8036: __attribute__((visibility("default"))) void setQObjectShared(const QObject *, bool enable); 8036: __attribute__((visibility("default"))) void checkQObjectShared(const QObject *); 8036: 8036: inline void checkQObjectShared(...) { } 8036: inline void setQObjectShared(...) { } 8036: 8036: inline void operator delete(void *ptr) { ::operator delete(ptr); } 8036: inline void operator delete(void *, void *) { } 8036: }; 8036: 8036: 8036: template 8036: struct CustomDeleter 8036: { 8036: Deleter deleter; 8036: T *ptr; 8036: 8036: CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} 8036: void execute() { executeDeleter(ptr, deleter); } 8036: }; 8036: # 189 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8036: template 8036: struct CustomDeleter 8036: { 8036: T *ptr; 8036: 8036: CustomDeleter(T *p, NormalDeleter) : ptr(p) {} 8036: void execute() { delete ptr; } 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct ExternalRefCountWithCustomDeleter: public ExternalRefCountData 8036: { 8036: typedef ExternalRefCountWithCustomDeleter Self; 8036: typedef ExternalRefCountData BaseClass; 8036: CustomDeleter extra; 8036: 8036: static inline void deleter(ExternalRefCountData *self) 8036: { 8036: Self *realself = static_cast(self); 8036: realself->extra.execute(); 8036: 8036: 8036: realself->extra.~CustomDeleter(); 8036: } 8036: static void safetyCheckDeleter(ExternalRefCountData *self) 8036: { 8036: internalSafetyCheckRemove(self); 8036: deleter(self); 8036: } 8036: 8036: static inline Self *create(T *ptr, Deleter userDeleter, DestroyerFn actualDeleter) 8036: { 8036: Self *d = static_cast(::operator new(sizeof(Self))); 8036: 8036: 8036: new (&d->extra) CustomDeleter(ptr, userDeleter); 8036: new (d) BaseClass(actualDeleter); 8036: 8036: return d; 8036: } 8036: private: 8036: 8036: ExternalRefCountWithCustomDeleter() = delete; 8036: ~ExternalRefCountWithCustomDeleter() = delete; 8036: ExternalRefCountWithCustomDeleter(const ExternalRefCountWithCustomDeleter &) = delete; ExternalRefCountWithCustomDeleter &operator=(const ExternalRefCountWithCustomDeleter &) = delete; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: template 8036: struct ExternalRefCountWithContiguousData: public ExternalRefCountData 8036: { 8036: typedef ExternalRefCountData Parent; 8036: T data; 8036: 8036: static void deleter(ExternalRefCountData *self) 8036: { 8036: ExternalRefCountWithContiguousData *that = 8036: static_cast(self); 8036: that->data.~T(); 8036: (void)that;; 8036: } 8036: static void safetyCheckDeleter(ExternalRefCountData *self) 8036: { 8036: internalSafetyCheckRemove(self); 8036: deleter(self); 8036: } 8036: static void noDeleter(ExternalRefCountData *) { } 8036: 8036: static inline ExternalRefCountData *create(T **ptr, DestroyerFn destroy) 8036: { 8036: ExternalRefCountWithContiguousData *d = 8036: static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); 8036: 8036: 8036: 8036: new (d) Parent(destroy); 8036: 8036: *ptr = &d->data; 8036: return d; 8036: } 8036: 8036: private: 8036: 8036: ExternalRefCountWithContiguousData() = delete; 8036: ~ExternalRefCountWithContiguousData() = delete; 8036: ExternalRefCountWithContiguousData(const ExternalRefCountWithContiguousData &) = delete; ExternalRefCountWithContiguousData &operator=(const ExternalRefCountWithContiguousData &) = delete; 8036: }; 8036: 8036: 8036: __attribute__((visibility("default"))) QWeakPointer weakPointerFromVariant_internal(const QVariant &variant); 8036: __attribute__((visibility("default"))) QSharedPointer sharedPointerFromVariant_internal(const QVariant &variant); 8036: 8036: } 8036: 8036: template class QSharedPointer 8036: { 8036: typedef T *QSharedPointer:: *RestrictedBool; 8036: typedef QtSharedPointer::ExternalRefCountData Data; 8036: public: 8036: typedef T Type; 8036: typedef T element_type; 8036: typedef T value_type; 8036: typedef value_type *pointer; 8036: typedef const value_type *const_pointer; 8036: typedef value_type &reference; 8036: typedef const value_type &const_reference; 8036: typedef qptrdiff difference_type; 8036: 8036: T *data() const noexcept { return value; } 8036: bool isNull() const noexcept { return !data(); } 8036: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; } 8036: bool operator !() const noexcept { return isNull(); } 8036: T &operator*() const { return *data(); } 8036: T *operator->() const noexcept { return data(); } 8036: 8036: constexpr QSharedPointer() noexcept : value(nullptr), d(nullptr) { } 8036: ~QSharedPointer() { deref(); } 8036: 8036: constexpr QSharedPointer(std::nullptr_t) noexcept : value(nullptr), d(nullptr) { } 8036: 8036: template 8036: inline explicit QSharedPointer(X *ptr) : value(ptr) 8036: { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } 8036: 8036: template 8036: inline QSharedPointer(X *ptr, Deleter deleter) : value(ptr) 8036: { internalConstruct(ptr, deleter); } 8036: 8036: template 8036: QSharedPointer(std::nullptr_t, Deleter) : value(nullptr), d(nullptr) { } 8036: 8036: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8036: { if (d) ref(); } 8036: QSharedPointer &operator=(const QSharedPointer &other) noexcept 8036: { 8036: QSharedPointer copy(other); 8036: swap(copy); 8036: return *this; 8036: } 8036: 8036: QSharedPointer(QSharedPointer &&other) noexcept 8036: : value(other.value), d(other.d) 8036: { 8036: other.d = nullptr; 8036: other.value = nullptr; 8036: } 8036: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8036: { 8036: QSharedPointer moved(std::move(other)); 8036: swap(moved); 8036: return *this; 8036: } 8036: 8036: template 8036: QSharedPointer(QSharedPointer &&other) noexcept 8036: : value(other.value), d(other.d) 8036: { 8036: other.d = nullptr; 8036: other.value = nullptr; 8036: } 8036: 8036: template 8036: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8036: { 8036: QSharedPointer moved(std::move(other)); 8036: swap(moved); 8036: return *this; 8036: } 8036: 8036: 8036: 8036: template 8036: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8036: { if (d) ref(); } 8036: 8036: template 8036: inline QSharedPointer &operator=(const QSharedPointer &other) 8036: { 8036: QSharedPointer copy(other); 8036: swap(copy); 8036: return *this; 8036: } 8036: 8036: template 8036: inline QSharedPointer(const QWeakPointer &other) : value(nullptr), d(nullptr) 8036: { *this = other; } 8036: 8036: template 8036: inline QSharedPointer &operator=(const QWeakPointer &other) 8036: { internalSet(other.d, other.value); return *this; } 8036: 8036: inline void swap(QSharedPointer &other) 8036: { this->internalSwap(other); } 8036: 8036: inline void reset() { clear(); } 8036: inline void reset(T *t) 8036: { QSharedPointer copy(t); swap(copy); } 8036: template 8036: inline void reset(T *t, Deleter deleter) 8036: { QSharedPointer copy(t, deleter); swap(copy); } 8036: 8036: template 8036: QSharedPointer staticCast() const 8036: { 8036: return qSharedPointerCast(*this); 8036: } 8036: 8036: template 8036: QSharedPointer dynamicCast() const 8036: { 8036: return qSharedPointerDynamicCast(*this); 8036: } 8036: 8036: template 8036: QSharedPointer constCast() const 8036: { 8036: return qSharedPointerConstCast(*this); 8036: } 8036: 8036: 8036: template 8036: QSharedPointer objectCast() const 8036: { 8036: return qSharedPointerObjectCast(*this); 8036: } 8036: 8036: 8036: inline void clear() { QSharedPointer copy; swap(copy); } 8036: 8036: QWeakPointer toWeakRef() const; 8036: 8036: template 8036: static QSharedPointer create(Args && ...arguments) 8036: { 8036: typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; 8036: 8036: 8036: 8036: typename Private::DestroyerFn destroy = &Private::deleter; 8036: 8036: typename Private::DestroyerFn noDestroy = &Private::noDeleter; 8036: QSharedPointer result(Qt::Uninitialized); 8036: result.d = Private::create(&result.value, noDestroy); 8036: 8036: 8036: new (result.data()) T(std::forward(arguments)...); 8036: result.d->destroyer = destroy; 8036: result.d->setQObjectShared(result.value, true); 8036: 8036: 8036: 8036: result.enableSharedFromThis(result.data()); 8036: return result; 8036: } 8036: 8036: private: 8036: explicit QSharedPointer(Qt::Initialization) {} 8036: 8036: void deref() noexcept 8036: { deref(d); } 8036: static void deref(Data *dd) noexcept 8036: { 8036: if (!dd) return; 8036: if (!dd->strongref.deref()) { 8036: dd->destroy(); 8036: } 8036: if (!dd->weakref.deref()) 8036: delete dd; 8036: } 8036: 8036: template 8036: inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) 8036: { 8036: ptr->initializeFromSharedPointer(constCast::type>()); 8036: } 8036: 8036: inline void enableSharedFromThis(...) {} 8036: 8036: template 8036: inline void internalConstruct(X *ptr, Deleter deleter) 8036: { 8036: if (!ptr) { 8036: d = nullptr; 8036: return; 8036: } 8036: 8036: typedef QtSharedPointer::ExternalRefCountWithCustomDeleter Private; 8036: 8036: 8036: 8036: typename Private::DestroyerFn actualDeleter = &Private::deleter; 8036: 8036: d = Private::create(ptr, deleter, actualDeleter); 8036: 8036: 8036: 8036: 8036: d->setQObjectShared(ptr, true); 8036: enableSharedFromThis(ptr); 8036: } 8036: 8036: void internalSwap(QSharedPointer &other) noexcept 8036: { 8036: qSwap(d, other.d); 8036: qSwap(this->value, other.value); 8036: } 8036: 8036: 8036: 8036: 8036: template friend class QSharedPointer; 8036: template friend class QWeakPointer; 8036: template friend QSharedPointer QtSharedPointer::copyAndSetPointer(X * ptr, const QSharedPointer &src); 8036: 8036: void ref() const noexcept { d->weakref.ref(); d->strongref.ref(); } 8036: 8036: inline void internalSet(Data *o, T *actual) 8036: { 8036: if (o) { 8036: 8036: 8036: int tmp = o->strongref.load(); 8036: while (tmp > 0) { 8036: 8036: if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) 8036: break; 8036: tmp = o->strongref.load(); 8036: } 8036: 8036: if (tmp > 0) { 8036: o->weakref.ref(); 8036: } else { 8036: o->checkQObjectShared(actual); 8036: o = nullptr; 8036: } 8036: } 8036: 8036: qSwap(d, o); 8036: qSwap(this->value, actual); 8036: if (!d || d->strongref.load() == 0) 8036: this->value = nullptr; 8036: 8036: 8036: deref(o); 8036: } 8036: 8036: Type *value; 8036: Data *d; 8036: }; 8036: 8036: template 8036: class QWeakPointer 8036: { 8036: typedef T *QWeakPointer:: *RestrictedBool; 8036: typedef QtSharedPointer::ExternalRefCountData Data; 8036: 8036: public: 8036: typedef T element_type; 8036: typedef T value_type; 8036: typedef value_type *pointer; 8036: typedef const value_type *const_pointer; 8036: typedef value_type &reference; 8036: typedef const value_type &const_reference; 8036: typedef qptrdiff difference_type; 8036: 8036: bool isNull() const noexcept { return d == nullptr || d->strongref.load() == 0 || value == nullptr; } 8036: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; } 8036: bool operator !() const noexcept { return isNull(); } 8036: T *data() const noexcept { return d == nullptr || d->strongref.load() == 0 ? nullptr : value; } 8036: 8036: inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } 8036: inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } 8036: # 585 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8036: QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) 8036: { if (d) d->weakref.ref(); } 8036: 8036: QWeakPointer(QWeakPointer &&other) noexcept 8036: : d(other.d), value(other.value) 8036: { 8036: other.d = nullptr; 8036: other.value = nullptr; 8036: } 8036: QWeakPointer &operator=(QWeakPointer &&other) noexcept 8036: { QWeakPointer moved(std::move(other)); swap(moved); return *this; } 8036: 8036: QWeakPointer &operator=(const QWeakPointer &other) noexcept 8036: { 8036: QWeakPointer copy(other); 8036: swap(copy); 8036: return *this; 8036: } 8036: 8036: void swap(QWeakPointer &other) noexcept 8036: { 8036: qSwap(this->d, other.d); 8036: qSwap(this->value, other.value); 8036: } 8036: 8036: inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) 8036: { if (d) d->weakref.ref();} 8036: inline QWeakPointer &operator=(const QSharedPointer &o) 8036: { 8036: internalSet(o.d, o.value); 8036: return *this; 8036: } 8036: 8036: template 8036: inline QWeakPointer(const QWeakPointer &o) : d(nullptr), value(nullptr) 8036: { *this = o; } 8036: 8036: template 8036: inline QWeakPointer &operator=(const QWeakPointer &o) 8036: { 8036: 8036: 8036: *this = o.toStrongRef(); 8036: return *this; 8036: } 8036: 8036: template 8036: bool operator==(const QWeakPointer &o) const noexcept 8036: { return d == o.d && value == static_cast(o.value); } 8036: 8036: template 8036: bool operator!=(const QWeakPointer &o) const noexcept 8036: { return !(*this == o); } 8036: 8036: template 8036: inline QWeakPointer(const QSharedPointer &o) : d(nullptr), value(nullptr) 8036: { *this = o; } 8036: 8036: template 8036: inline QWeakPointer &operator=(const QSharedPointer &o) 8036: { 8036: qt_noop(); 8036: internalSet(o.d, o.data()); 8036: return *this; 8036: } 8036: 8036: template 8036: bool operator==(const QSharedPointer &o) const noexcept 8036: { return d == o.d; } 8036: 8036: template 8036: bool operator!=(const QSharedPointer &o) const noexcept 8036: { return !(*this == o); } 8036: 8036: inline void clear() { *this = QWeakPointer(); } 8036: 8036: inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } 8036: 8036: inline QSharedPointer lock() const { return toStrongRef(); } 8036: 8036: 8036: 8036: 8036: 8036: private: 8036: 8036: 8036: 8036: 8036: template friend class QSharedPointer; 8036: template friend class QPointer; 8036: 8036: 8036: template 8036: inline QWeakPointer &assign(X *ptr) 8036: { return *this = QWeakPointer(ptr, true); } 8036: 8036: 8036: template 8036: inline QWeakPointer(X *ptr, bool) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) 8036: { } 8036: 8036: 8036: inline void internalSet(Data *o, T *actual) 8036: { 8036: if (d == o) return; 8036: if (o) 8036: o->weakref.ref(); 8036: if (d && !d->weakref.deref()) 8036: delete d; 8036: d = o; 8036: value = actual; 8036: } 8036: 8036: Data *d; 8036: T *value; 8036: }; 8036: 8036: template 8036: class QEnableSharedFromThis 8036: { 8036: protected: 8036: 8036: QEnableSharedFromThis() = default; 8036: 8036: 8036: 8036: QEnableSharedFromThis(const QEnableSharedFromThis &) {} 8036: QEnableSharedFromThis &operator=(const QEnableSharedFromThis &) { return *this; } 8036: 8036: public: 8036: inline QSharedPointer sharedFromThis() { return QSharedPointer(weakPointer); } 8036: inline QSharedPointer sharedFromThis() const { return QSharedPointer(weakPointer); } 8036: 8036: 8036: private: 8036: template friend class QSharedPointer; 8036: 8036: 8036: 8036: template 8036: inline void initializeFromSharedPointer(const QSharedPointer &ptr) const 8036: { 8036: weakPointer = ptr; 8036: } 8036: 8036: mutable QWeakPointer weakPointer; 8036: }; 8036: 8036: 8036: 8036: 8036: template 8036: bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8036: { 8036: return ptr1.data() == ptr2.data(); 8036: } 8036: template 8036: bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8036: { 8036: return ptr1.data() != ptr2.data(); 8036: } 8036: 8036: template 8036: bool operator==(const QSharedPointer &ptr1, const X *ptr2) noexcept 8036: { 8036: return ptr1.data() == ptr2; 8036: } 8036: template 8036: bool operator==(const T *ptr1, const QSharedPointer &ptr2) noexcept 8036: { 8036: return ptr1 == ptr2.data(); 8036: } 8036: template 8036: bool operator!=(const QSharedPointer &ptr1, const X *ptr2) noexcept 8036: { 8036: return !(ptr1 == ptr2); 8036: } 8036: template 8036: bool operator!=(const T *ptr1, const QSharedPointer &ptr2) noexcept 8036: { 8036: return !(ptr2 == ptr1); 8036: } 8036: 8036: template 8036: bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8036: { 8036: return ptr2 == ptr1; 8036: } 8036: template 8036: bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8036: { 8036: return ptr2 != ptr1; 8036: } 8036: 8036: template 8036: inline bool operator==(const QSharedPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(const QSharedPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return !lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator==(std::nullptr_t, const QSharedPointer &rhs) noexcept 8036: { 8036: return rhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(std::nullptr_t, const QSharedPointer &rhs) noexcept 8036: { 8036: return !rhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator==(const QWeakPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(const QWeakPointer &lhs, std::nullptr_t) noexcept 8036: { 8036: return !lhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator==(std::nullptr_t, const QWeakPointer &rhs) noexcept 8036: { 8036: return rhs.isNull(); 8036: } 8036: 8036: template 8036: inline bool operator!=(std::nullptr_t, const QWeakPointer &rhs) noexcept 8036: { 8036: return !rhs.isNull(); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8036: { 8036: return ptr1.data() - ptr2.data(); 8036: } 8036: template 8036: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) 8036: { 8036: return ptr1.data() - ptr2; 8036: } 8036: template 8036: inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) 8036: { 8036: return ptr1 - ptr2.data(); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8036: { 8036: using CT = typename std::common_type::type; 8036: return std::less()(ptr1.data(), ptr2.data()); 8036: } 8036: template 8036: inline bool operator<(const QSharedPointer &ptr1, X *ptr2) 8036: { 8036: using CT = typename std::common_type::type; 8036: return std::less()(ptr1.data(), ptr2); 8036: } 8036: template 8036: inline bool operator<(T *ptr1, const QSharedPointer &ptr2) 8036: { 8036: using CT = typename std::common_type::type; 8036: return std::less()(ptr1, ptr2.data()); 8036: } 8036: 8036: 8036: 8036: 8036: template 8036: inline uint qHash(const QSharedPointer &ptr, uint seed = 0) 8036: { 8036: return ::qHash(ptr.data(), seed); 8036: } 8036: 8036: 8036: template 8036: inline QWeakPointer QSharedPointer::toWeakRef() const 8036: { 8036: return QWeakPointer(*this); 8036: } 8036: 8036: template 8036: inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) 8036: { 8036: p1.swap(p2); 8036: } 8036: 8036: 8036: namespace std { 8036: template 8036: inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) 8036: { p1.swap(p2); } 8036: } 8036: 8036: 8036: namespace QtSharedPointer { 8036: 8036: template 8036: inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) 8036: { 8036: QSharedPointer result; 8036: result.internalSet(src.d, ptr); 8036: return result; 8036: } 8036: } 8036: 8036: 8036: template 8036: inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) 8036: { 8036: X *ptr = static_cast(src.data()); 8036: return QtSharedPointer::copyAndSetPointer(ptr, src); 8036: } 8036: template 8036: inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) 8036: { 8036: return qSharedPointerCast(src.toStrongRef()); 8036: } 8036: 8036: template 8036: inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) 8036: { 8036: X *ptr = dynamic_cast(src.data()); 8036: if (!ptr) 8036: return QSharedPointer(); 8036: return QtSharedPointer::copyAndSetPointer(ptr, src); 8036: } 8036: template 8036: inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) 8036: { 8036: return qSharedPointerDynamicCast(src.toStrongRef()); 8036: } 8036: 8036: template 8036: inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) 8036: { 8036: X *ptr = const_cast(src.data()); 8036: return QtSharedPointer::copyAndSetPointer(ptr, src); 8036: } 8036: template 8036: inline QSharedPointer qSharedPointerConstCast(const QWeakPointer &src) 8036: { 8036: return qSharedPointerConstCast(src.toStrongRef()); 8036: } 8036: 8036: template 8036: inline 8036: QWeakPointer qWeakPointerCast(const QSharedPointer &src) 8036: { 8036: return qSharedPointerCast(src).toWeakRef(); 8036: } 8036: 8036: 8036: template 8036: inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) 8036: { 8036: X *ptr = qobject_cast(src.data()); 8036: return QtSharedPointer::copyAndSetPointer(ptr, src); 8036: } 8036: template 8036: inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) 8036: { 8036: return qSharedPointerObjectCast(src.toStrongRef()); 8036: } 8036: 8036: template 8036: inline QSharedPointer::Type> 8036: qobject_cast(const QSharedPointer &src) 8036: { 8036: return qSharedPointerObjectCast::Type, T>(src); 8036: } 8036: template 8036: inline QSharedPointer::Type> 8036: qobject_cast(const QWeakPointer &src) 8036: { 8036: return qSharedPointerObjectCast::Type, T>(src); 8036: } 8036: 8036: template 8036: QWeakPointer::Value, T>::type> 8036: qWeakPointerFromVariant(const QVariant &variant) 8036: { 8036: return QWeakPointer(qobject_cast(QtSharedPointer::weakPointerFromVariant_internal(variant).data())); 8036: } 8036: template 8036: QSharedPointer::Value, T>::type> 8036: qSharedPointerFromVariant(const QVariant &variant) 8036: { 8036: return qSharedPointerObjectCast(QtSharedPointer::sharedPointerFromVariant_internal(variant)); 8036: } 8036: 8036: 8036: 8036: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QWeakPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QWeakPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QWeakPointer) }; static inline const char *name() { return "QWeakPointer"; } }; 8036: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedPointer) }; static inline const char *name() { return "QSharedPointer"; } }; 8036: 8036: 8036: 8036: # 49 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: class __attribute__((visibility("default"))) QDebug 8036: { 8036: friend class QMessageLogger; 8036: friend class QDebugStateSaverPrivate; 8036: struct Stream { 8036: enum { DefaultVerbosity = 2, VerbosityShift = 29, VerbosityMask = 0x7 }; 8036: 8036: Stream(QIODevice *device) : ts(device), ref(1), type(QtDebugMsg), 8036: space(true), message_output(false), flags(DefaultVerbosity << VerbosityShift) {} 8036: Stream(QString *string) : ts(string, QIODevice::WriteOnly), ref(1), type(QtDebugMsg), 8036: space(true), message_output(false), flags(DefaultVerbosity << VerbosityShift) {} 8036: Stream(QtMsgType t) : ts(&buffer, QIODevice::WriteOnly), ref(1), type(t), 8036: space(true), message_output(true), flags(DefaultVerbosity << VerbosityShift) {} 8036: QTextStream ts; 8036: QString buffer; 8036: int ref; 8036: QtMsgType type; 8036: bool space; 8036: bool message_output; 8036: QMessageLogContext context; 8036: 8036: enum FormatFlag { 8036: NoQuotes = 0x1 8036: }; 8036: 8036: 8036: bool testFlag(FormatFlag flag) const { return (context.version > 1) ? (flags & flag) : false; } 8036: void setFlag(FormatFlag flag) { if (context.version > 1) { flags |= flag; } } 8036: void unsetFlag(FormatFlag flag) { if (context.version > 1) { flags &= ~flag; } } 8036: int verbosity() const 8036: { return context.version > 1 ? (flags >> VerbosityShift) & VerbosityMask : int(Stream::DefaultVerbosity); } 8036: void setVerbosity(int v) 8036: { 8036: if (context.version > 1) { 8036: flags &= ~(VerbosityMask << VerbosityShift); 8036: flags |= (v & VerbosityMask) << VerbosityShift; 8036: } 8036: } 8036: 8036: int flags; 8036: } *stream; 8036: 8036: enum Latin1Content { ContainsBinary = 0, ContainsLatin1 }; 8036: 8036: void putUcs4(uint ucs4); 8036: void putString(const QChar *begin, size_t length); 8036: void putByteArray(const char *begin, size_t length, Latin1Content content); 8036: public: 8036: inline QDebug(QIODevice *device) : stream(new Stream(device)) {} 8036: inline QDebug(QString *string) : stream(new Stream(string)) {} 8036: inline QDebug(QtMsgType t) : stream(new Stream(t)) {} 8036: inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; } 8036: inline QDebug &operator=(const QDebug &other); 8036: ~QDebug(); 8036: inline void swap(QDebug &other) noexcept { qSwap(stream, other.stream); } 8036: 8036: QDebug &resetFormat(); 8036: 8036: inline QDebug &space() { stream->space = true; stream->ts << ' '; return *this; } 8036: inline QDebug &nospace() { stream->space = false; return *this; } 8036: inline QDebug &maybeSpace() { if (stream->space) stream->ts << ' '; return *this; } 8036: int verbosity() const { return stream->verbosity(); } 8036: void setVerbosity(int verbosityLevel) { stream->setVerbosity(verbosityLevel); } 8036: 8036: bool autoInsertSpaces() const { return stream->space; } 8036: void setAutoInsertSpaces(bool b) { stream->space = b; } 8036: 8036: inline QDebug "e() { stream->unsetFlag(Stream::NoQuotes); return *this; } 8036: inline QDebug &noquote() { stream->setFlag(Stream::NoQuotes); return *this; } 8036: inline QDebug &maybeQuote(char c = '"') { if (!(stream->testFlag(Stream::NoQuotes))) stream->ts << c; return *this; } 8036: 8036: inline QDebug &operator<<(QChar t) { putUcs4(t.unicode()); return maybeSpace(); } 8036: inline QDebug &operator<<(bool t) { stream->ts << (t ? "true" : "false"); return maybeSpace(); } 8036: inline QDebug &operator<<(char t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(signed short t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(unsigned short t) { stream->ts << t; return maybeSpace(); } 8036: 8036: inline QDebug &operator<<(char16_t t) { return *this << QChar(ushort(t)); } 8036: inline QDebug &operator<<(char32_t t) { putUcs4(t); return maybeSpace(); } 8036: 8036: inline QDebug &operator<<(signed int t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(unsigned int t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(signed long t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(unsigned long t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(qint64 t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(quint64 t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(float t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(double t) { stream->ts << t; return maybeSpace(); } 8036: inline QDebug &operator<<(const char* t) { stream->ts << QString::fromUtf8(t); return maybeSpace(); } 8036: inline QDebug &operator<<(const QString & t) { putString(t.constData(), uint(t.length())); return maybeSpace(); } 8036: inline QDebug &operator<<(const QStringRef & t) { putString(t.constData(), uint(t.length())); return maybeSpace(); } 8036: inline QDebug &operator<<(QLatin1String t) { putByteArray(t.latin1(), t.size(), ContainsLatin1); return maybeSpace(); } 8036: inline QDebug &operator<<(const QByteArray & t) { putByteArray(t.constData(), t.size(), ContainsBinary); return maybeSpace(); } 8036: inline QDebug &operator<<(const void * t) { stream->ts << t; return maybeSpace(); } 8036: 8036: inline QDebug &operator<<(std::nullptr_t) { stream->ts << "(nullptr)"; return maybeSpace(); } 8036: 8036: inline QDebug &operator<<(QTextStreamFunction f) { 8036: stream->ts << f; 8036: return *this; 8036: } 8036: 8036: inline QDebug &operator<<(QTextStreamManipulator m) 8036: { stream->ts << m; return *this; } 8036: }; 8036: 8036: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDebug)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDebug >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDebug) }; static inline const char *name() { return "QDebug"; } }; inline void swap(QDebug &value1, QDebug &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8036: 8036: class QDebugStateSaverPrivate; 8036: class __attribute__((visibility("default"))) QDebugStateSaver 8036: { 8036: public: 8036: QDebugStateSaver(QDebug &dbg); 8036: ~QDebugStateSaver(); 8036: private: 8036: QDebugStateSaver(const QDebugStateSaver &) = delete; QDebugStateSaver &operator=(const QDebugStateSaver &) = delete; 8036: QScopedPointer d; 8036: }; 8036: 8036: class QNoDebug 8036: { 8036: public: 8036: inline QNoDebug &operator<<(QTextStreamFunction) { return *this; } 8036: inline QNoDebug &operator<<(QTextStreamManipulator) { return *this; } 8036: inline QNoDebug &space() { return *this; } 8036: inline QNoDebug &nospace() { return *this; } 8036: inline QNoDebug &maybeSpace() { return *this; } 8036: inline QNoDebug "e() { return *this; } 8036: inline QNoDebug &noquote() { return *this; } 8036: inline QNoDebug &maybeQuote(const char = '"') { return *this; } 8036: 8036: template 8036: inline QNoDebug &operator<<(const T &) { return *this; } 8036: }; 8036: 8036: inline QDebug &QDebug::operator=(const QDebug &other) 8036: { 8036: if (this != &other) { 8036: QDebug copy(other); 8036: qSwap(stream, copy.stream); 8036: } 8036: return *this; 8036: } 8036: 8036: namespace QtPrivate { 8036: 8036: template 8036: inline QDebug printSequentialContainer(QDebug debug, const char *which, const SequentialContainer &c) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << which << '('; 8036: typename SequentialContainer::const_iterator it = c.begin(), end = c.end(); 8036: if (it != end) { 8036: debug << *it; 8036: ++it; 8036: } 8036: while (it != end) { 8036: debug << ", " << *it; 8036: ++it; 8036: } 8036: debug << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QList &list) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "" , list); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QVector &vec) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "QVector", vec); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const std::vector &vec) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "std::vector", vec); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const std::list &vec) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "std::list", vec); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const std::map &map) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "std::map", map); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const std::multimap &map) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "std::multimap", map); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QMap &map) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << "QMap("; 8036: for (typename QMap::const_iterator it = map.constBegin(); 8036: it != map.constEnd(); ++it) { 8036: debug << '(' << it.key() << ", " << it.value() << ')'; 8036: } 8036: debug << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QHash &hash) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << "QHash("; 8036: for (typename QHash::const_iterator it = hash.constBegin(); 8036: it != hash.constEnd(); ++it) 8036: debug << '(' << it.key() << ", " << it.value() << ')'; 8036: debug << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QPair &pair) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << "QPair(" << pair.first << ',' << pair.second << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const std::pair &pair) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << "std::pair(" << pair.first << ',' << pair.second << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QSet &set) 8036: { 8036: return QtPrivate::printSequentialContainer(debug, "QSet", set); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QContiguousCache &cache) 8036: { 8036: const bool oldSetting = debug.autoInsertSpaces(); 8036: debug.nospace() << "QContiguousCache("; 8036: for (int i = cache.firstIndex(); i <= cache.lastIndex(); ++i) { 8036: debug << cache[i]; 8036: if (i != cache.lastIndex()) 8036: debug << ", "; 8036: } 8036: debug << ')'; 8036: debug.setAutoInsertSpaces(oldSetting); 8036: return debug.maybeSpace(); 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QSharedPointer &ptr) 8036: { 8036: QDebugStateSaver saver(debug); 8036: debug.nospace() << "QSharedPointer(" << ptr.data() << ")"; 8036: return debug; 8036: } 8036: 8036: __attribute__((visibility("default"))) void qt_QMetaEnum_flagDebugOperator(QDebug &debug, size_t sizeofT, int value); 8036: 8036: template 8036: void qt_QMetaEnum_flagDebugOperator(QDebug &debug, size_t sizeofT, Int value) 8036: { 8036: const QDebugStateSaver saver(debug); 8036: debug.resetFormat(); 8036: debug.nospace() << "QFlags(" << hex << showbase; 8036: bool needSeparator = false; 8036: for (uint i = 0; i < sizeofT * 8; ++i) { 8036: if (value & (Int(1) << i)) { 8036: if (needSeparator) 8036: debug << '|'; 8036: else 8036: needSeparator = true; 8036: debug << (Int(1) << i); 8036: } 8036: } 8036: debug << ')'; 8036: } 8036: 8036: 8036: __attribute__((visibility("default"))) QDebug qt_QMetaEnum_debugOperator(QDebug&, int value, const QMetaObject *meta, const char *name); 8036: __attribute__((visibility("default"))) QDebug qt_QMetaEnum_flagDebugOperator(QDebug &dbg, quint64 value, const QMetaObject *meta, const char *name); 8036: 8036: template 8036: typename std::enable_if::Value, QDebug>::type 8036: operator<<(QDebug dbg, T value) 8036: { 8036: const QMetaObject *obj = qt_getEnumMetaObject(value); 8036: const char *name = qt_getEnumName(value); 8036: return qt_QMetaEnum_debugOperator(dbg, typename QFlags::Int(value), obj, name); 8036: } 8036: 8036: template 8036: inline typename std::enable_if< 8036: QtPrivate::IsQEnumHelper::Value || QtPrivate::IsQEnumHelper >::Value, 8036: QDebug>::type 8036: qt_QMetaEnum_flagDebugOperator_helper(QDebug debug, const QFlags &flags) 8036: { 8036: const QMetaObject *obj = qt_getEnumMetaObject(T()); 8036: const char *name = qt_getEnumName(T()); 8036: return qt_QMetaEnum_flagDebugOperator(debug, quint64(flags), obj, name); 8036: } 8036: 8036: template 8036: inline typename std::enable_if< 8036: !QtPrivate::IsQEnumHelper::Value && !QtPrivate::IsQEnumHelper >::Value, 8036: QDebug>::type 8036: qt_QMetaEnum_flagDebugOperator_helper(QDebug debug, const QFlags &flags) 8036: 8036: 8036: 8036: 8036: { 8036: qt_QMetaEnum_flagDebugOperator(debug, sizeof(T), typename QFlags::Int(flags)); 8036: return debug; 8036: } 8036: 8036: template 8036: inline QDebug operator<<(QDebug debug, const QFlags &flags) 8036: { 8036: 8036: 8036: return qt_QMetaEnum_flagDebugOperator_helper(debug, flags); 8036: } 8036: # 485 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qdebug.h" 3 4 8036: 8036: # 48 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: class QHostAddress; 8036: 8036: class QNetworkProxy; 8036: 8036: class QAbstractSocketPrivate; 8036: class QAuthenticator; 8036: 8036: class __attribute__((visibility("default"))) QAbstractSocket : public QIODevice 8036: { 8036: public: 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 62 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qabstractsocket.h" 3 4 8036: struct QPrivateSignal {}; 8036: public: 8036: enum SocketType { 8036: TcpSocket, 8036: UdpSocket, 8036: SctpSocket, 8036: UnknownSocketType = -1 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketType) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketType) noexcept { return "SocketType"; } 8036: enum NetworkLayerProtocol { 8036: IPv4Protocol, 8036: IPv6Protocol, 8036: AnyIPProtocol, 8036: UnknownNetworkLayerProtocol = -1 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(NetworkLayerProtocol) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(NetworkLayerProtocol) noexcept { return "NetworkLayerProtocol"; } 8036: enum SocketError { 8036: ConnectionRefusedError, 8036: RemoteHostClosedError, 8036: HostNotFoundError, 8036: SocketAccessError, 8036: SocketResourceError, 8036: SocketTimeoutError, 8036: DatagramTooLargeError, 8036: NetworkError, 8036: AddressInUseError, 8036: SocketAddressNotAvailableError, 8036: UnsupportedSocketOperationError, 8036: UnfinishedSocketOperationError, 8036: ProxyAuthenticationRequiredError, 8036: SslHandshakeFailedError, 8036: ProxyConnectionRefusedError, 8036: ProxyConnectionClosedError, 8036: ProxyConnectionTimeoutError, 8036: ProxyNotFoundError, 8036: ProxyProtocolError, 8036: OperationError, 8036: SslInternalError, 8036: SslInvalidUserDataError, 8036: TemporaryError, 8036: 8036: UnknownSocketError = -1 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketError) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketError) noexcept { return "SocketError"; } 8036: enum SocketState { 8036: UnconnectedState, 8036: HostLookupState, 8036: ConnectingState, 8036: ConnectedState, 8036: BoundState, 8036: ListeningState, 8036: ClosingState 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketState) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketState) noexcept { return "SocketState"; } 8036: enum SocketOption { 8036: LowDelayOption, 8036: KeepAliveOption, 8036: MulticastTtlOption, 8036: MulticastLoopbackOption, 8036: TypeOfServiceOption, 8036: SendBufferSizeSocketOption, 8036: ReceiveBufferSizeSocketOption 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketOption) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketOption) noexcept { return "SocketOption"; } 8036: enum BindFlag { 8036: DefaultForPlatform = 0x0, 8036: ShareAddress = 0x1, 8036: DontShareAddress = 0x2, 8036: ReuseAddressHint = 0x4 8036: }; 8036: typedef QFlags BindMode; 8036: enum PauseMode { 8036: PauseNever = 0x0, 8036: PauseOnSslErrors = 0x1 8036: }; 8036: typedef QFlags PauseModes; 8036: 8036: QAbstractSocket(SocketType socketType, QObject *parent); 8036: virtual ~QAbstractSocket(); 8036: 8036: virtual void resume(); 8036: PauseModes pauseMode() const; 8036: void setPauseMode(PauseModes pauseMode); 8036: 8036: 8036: bool bind(const QHostAddress &address, quint16 port = 0, BindMode mode = DefaultForPlatform); 8036: bool bind(quint16 port = 0, BindMode mode = DefaultForPlatform); 8036: 8036: 8036: virtual void connectToHost(const QString &hostName, quint16 port, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol); 8036: virtual void connectToHost(const QHostAddress &address, quint16 port, OpenMode mode = ReadWrite); 8036: virtual void disconnectFromHost(); 8036: 8036: bool isValid() const; 8036: 8036: qint64 bytesAvailable() const override; 8036: qint64 bytesToWrite() const override; 8036: 8036: bool canReadLine() const override; 8036: 8036: quint16 localPort() const; 8036: QHostAddress localAddress() const; 8036: quint16 peerPort() const; 8036: QHostAddress peerAddress() const; 8036: QString peerName() const; 8036: 8036: qint64 readBufferSize() const; 8036: virtual void setReadBufferSize(qint64 size); 8036: 8036: void abort(); 8036: 8036: virtual qintptr socketDescriptor() const; 8036: virtual bool setSocketDescriptor(qintptr socketDescriptor, SocketState state = ConnectedState, 8036: OpenMode openMode = ReadWrite); 8036: 8036: virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); 8036: virtual QVariant socketOption(QAbstractSocket::SocketOption option); 8036: 8036: SocketType socketType() const; 8036: SocketState state() const; 8036: SocketError error() const; 8036: 8036: 8036: void close() override; 8036: bool isSequential() const override; 8036: bool atEnd() const override; 8036: bool flush(); 8036: 8036: 8036: virtual bool waitForConnected(int msecs = 30000); 8036: bool waitForReadyRead(int msecs = 30000) override; 8036: bool waitForBytesWritten(int msecs = 30000) override; 8036: virtual bool waitForDisconnected(int msecs = 30000); 8036: 8036: 8036: void setProxy(const QNetworkProxy &networkProxy); 8036: QNetworkProxy proxy() const; 8036: 8036: 8036: public : 8036: void hostFound(); 8036: void connected(); 8036: void disconnected(); 8036: void stateChanged(QAbstractSocket::SocketState); 8036: void error(QAbstractSocket::SocketError); 8036: 8036: void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator); 8036: 8036: 8036: protected: 8036: qint64 readData(char *data, qint64 maxlen) override; 8036: qint64 readLineData(char *data, qint64 maxlen) override; 8036: qint64 writeData(const char *data, qint64 len) override; 8036: 8036: void setSocketState(SocketState state); 8036: void setSocketError(SocketError socketError); 8036: void setLocalPort(quint16 port); 8036: void setLocalAddress(const QHostAddress &address); 8036: void setPeerPort(quint16 port); 8036: void setPeerAddress(const QHostAddress &address); 8036: void setPeerName(const QString &name); 8036: 8036: QAbstractSocket(SocketType socketType, QAbstractSocketPrivate &dd, QObject *parent = nullptr); 8036: 8036: private: 8036: inline QAbstractSocketPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QAbstractSocketPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QAbstractSocketPrivate; 8036: QAbstractSocket(const QAbstractSocket &) = delete; QAbstractSocket &operator=(const QAbstractSocket &) = delete; 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: constexpr inline QFlags operator|(QAbstractSocket::BindMode::enum_type f1, QAbstractSocket::BindMode::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QAbstractSocket::BindMode::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QAbstractSocket::BindMode::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: constexpr inline QFlags operator|(QAbstractSocket::PauseModes::enum_type f1, QAbstractSocket::PauseModes::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QAbstractSocket::PauseModes::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QAbstractSocket::PauseModes::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, QAbstractSocket::SocketError); 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, QAbstractSocket::SocketState); 8036: 8036: 8036: 8036: 8036: template <> struct QMetaTypeId< QAbstractSocket::SocketState > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QAbstractSocket::SocketState >("QAbstractSocket::SocketState", reinterpret_cast< QAbstractSocket::SocketState *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: template <> struct QMetaTypeId< QAbstractSocket::SocketError > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QAbstractSocket::SocketError >("QAbstractSocket::SocketError", reinterpret_cast< QAbstractSocket::SocketError *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 2 3 4 8036: 8036: static_assert(bool(1 == 1), "Required feature " "localserver" " for file " "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" " not available."); 8036: 8036: 8036: 8036: class QLocalSocketPrivate; 8036: 8036: class __attribute__((visibility("default"))) QLocalSocket : public QIODevice 8036: { 8036: public: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: struct QPrivateSignal {}; 8036: inline QLocalSocketPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QLocalSocketPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QLocalSocketPrivate; 8036: 8036: public: 8036: enum LocalSocketError 8036: { 8036: ConnectionRefusedError = QAbstractSocket::ConnectionRefusedError, 8036: PeerClosedError = QAbstractSocket::RemoteHostClosedError, 8036: ServerNotFoundError = QAbstractSocket::HostNotFoundError, 8036: SocketAccessError = QAbstractSocket::SocketAccessError, 8036: SocketResourceError = QAbstractSocket::SocketResourceError, 8036: SocketTimeoutError = QAbstractSocket::SocketTimeoutError, 8036: DatagramTooLargeError = QAbstractSocket::DatagramTooLargeError, 8036: ConnectionError = QAbstractSocket::NetworkError, 8036: UnsupportedSocketOperationError = QAbstractSocket::UnsupportedSocketOperationError, 8036: UnknownSocketError = QAbstractSocket::UnknownSocketError, 8036: OperationError = QAbstractSocket::OperationError 8036: }; 8036: 8036: enum LocalSocketState 8036: { 8036: UnconnectedState = QAbstractSocket::UnconnectedState, 8036: ConnectingState = QAbstractSocket::ConnectingState, 8036: ConnectedState = QAbstractSocket::ConnectedState, 8036: ClosingState = QAbstractSocket::ClosingState 8036: }; 8036: 8036: QLocalSocket(QObject *parent = nullptr); 8036: ~QLocalSocket(); 8036: 8036: void connectToServer(OpenMode openMode = ReadWrite); 8036: void connectToServer(const QString &name, OpenMode openMode = ReadWrite); 8036: void disconnectFromServer(); 8036: 8036: void setServerName(const QString &name); 8036: QString serverName() const; 8036: QString fullServerName() const; 8036: 8036: void abort(); 8036: virtual bool isSequential() const override; 8036: virtual qint64 bytesAvailable() const override; 8036: virtual qint64 bytesToWrite() const override; 8036: virtual bool canReadLine() const override; 8036: virtual bool open(OpenMode openMode = ReadWrite) override; 8036: virtual void close() override; 8036: LocalSocketError error() const; 8036: bool flush(); 8036: bool isValid() const; 8036: qint64 readBufferSize() const; 8036: void setReadBufferSize(qint64 size); 8036: 8036: bool setSocketDescriptor(qintptr socketDescriptor, 8036: LocalSocketState socketState = ConnectedState, 8036: OpenMode openMode = ReadWrite); 8036: qintptr socketDescriptor() const; 8036: 8036: LocalSocketState state() const; 8036: bool waitForBytesWritten(int msecs = 30000) override; 8036: bool waitForConnected(int msecs = 30000); 8036: bool waitForDisconnected(int msecs = 30000); 8036: bool waitForReadyRead(int msecs = 30000) override; 8036: 8036: public : 8036: void connected(); 8036: void disconnected(); 8036: void error(QLocalSocket::LocalSocketError socketError); 8036: void stateChanged(QLocalSocket::LocalSocketState socketState); 8036: 8036: protected: 8036: virtual qint64 readData(char*, qint64) override; 8036: virtual qint64 writeData(const char*, qint64) override; 8036: 8036: private: 8036: QLocalSocket(const QLocalSocket &) = delete; QLocalSocket &operator=(const QLocalSocket &) = delete; 8036: # 137 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalsocket.h" 3 4 8036: 8036: 8036: 8036: 8036: 8036: }; 8036: 8036: 8036: 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, QLocalSocket::LocalSocketError); 8036: __attribute__((visibility("default"))) QDebug operator<<(QDebug, QLocalSocket::LocalSocketState); 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/QLocalSocket" 2 3 4 8036: # 61 "/<>/src/debconf.h" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/QLocalServer" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: static_assert(bool(1 == 1), "Required feature " "localserver" " for file " "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" " not available."); 8036: 8036: 8036: 8036: class QLocalSocket; 8036: class QLocalServerPrivate; 8036: 8036: class __attribute__((visibility("default"))) QLocalServer : public QObject 8036: { 8036: public: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/qlocalserver.h" 3 4 8036: struct QPrivateSignal {}; 8036: inline QLocalServerPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QLocalServerPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QLocalServerPrivate; 8036: 8036: 8036: public : 8036: void newConnection(); 8036: 8036: public: 8036: enum SocketOption { 8036: NoOptions = 0x0, 8036: UserAccessOption = 0x01, 8036: GroupAccessOption = 0x2, 8036: OtherAccessOption = 0x4, 8036: WorldAccessOption = 0x7 8036: }; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketOption) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketOption) noexcept { return "SocketOption"; } 8036: typedef QFlags SocketOptions; 8036: friend constexpr const QMetaObject *qt_getEnumMetaObject(SocketOptions) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(SocketOptions) noexcept { return "SocketOptions"; } 8036: 8036: explicit QLocalServer(QObject *parent = nullptr); 8036: ~QLocalServer(); 8036: 8036: void close(); 8036: QString errorString() const; 8036: virtual bool hasPendingConnections() const; 8036: bool isListening() const; 8036: bool listen(const QString &name); 8036: bool listen(qintptr socketDescriptor); 8036: int maxPendingConnections() const; 8036: virtual QLocalSocket *nextPendingConnection(); 8036: QString serverName() const; 8036: QString fullServerName() const; 8036: static bool removeServer(const QString &name); 8036: QAbstractSocket::SocketError serverError() const; 8036: void setMaxPendingConnections(int numConnections); 8036: bool waitForNewConnection(int msec = 0, bool *timedOut = nullptr); 8036: 8036: void setSocketOptions(SocketOptions options); 8036: SocketOptions socketOptions() const; 8036: 8036: protected: 8036: virtual void incomingConnection(quintptr socketDescriptor); 8036: 8036: private: 8036: QLocalServer(const QLocalServer &) = delete; QLocalServer &operator=(const QLocalServer &) = delete; 8036: 8036: }; 8036: 8036: constexpr inline QFlags operator|(QLocalServer::SocketOptions::enum_type f1, QLocalServer::SocketOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QLocalServer::SocketOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QLocalServer::SocketOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtNetwork/QLocalServer" 2 3 4 8036: # 62 "/<>/src/debconf.h" 2 8036: 8036: 8036: # 63 "/<>/src/debconf.h" 8036: class QSocketNotifier; 8036: 8036: namespace DebconfKde { 8036: 8036: 8036: 8036: 8036: 8036: class DebconfFrontend : public QObject { 8036: 8036: # 72 "/<>/src/debconf.h" 3 4 8036: public: 8036: # 72 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic push 8036: # 72 "/<>/src/debconf.h" 8036: 8036: # 72 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 72 "/<>/src/debconf.h" 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 72 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 72 "/<>/src/debconf.h" 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 72 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic pop 8036: # 72 "/<>/src/debconf.h" 8036: struct QPrivateSignal {}; 8036: 8036: 8036: 8036: # 75 "/<>/src/debconf.h" 8036: public: 8036: typedef enum { 8036: Choices, 8036: Description, 8036: ExtendedDescription, 8036: Type, 8036: UnknownPropertyKey = -1 8036: } PropertyKey; 8036: 8036: typedef enum { 8036: String, 8036: Password, 8036: Progress, 8036: Boolean, 8036: Select, 8036: Multiselect, 8036: Note, 8036: Error, 8036: Title, 8036: Text, 8036: UnknownTypeKey = -1 8036: } TypeKey; 8036: 8036: explicit DebconfFrontend(QObject *parent = 0); 8036: virtual ~DebconfFrontend(); 8036: 8036: QString value(const QString &key) const; 8036: void setValue(const QString &key, const QString &value); 8036: 8036: QString property(const QString &key, PropertyKey p) const; 8036: 8036: TypeKey type(const QString &string) const; 8036: 8036: 8036: 8036: 8036: void say(const QString &string); 8036: 8036: 8036: 8036: 8036: void next(); 8036: 8036: 8036: 8036: void back(); 8036: 8036: 8036: 8036: virtual void cancel(); 8036: 8036: 8036: # 126 "/<>/src/debconf.h" 3 4 8036: public 8036: # 126 "/<>/src/debconf.h" 8036: : 8036: void go(const QString &title, const QStringList &input); 8036: void progress(const QString ¶m); 8036: 8036: 8036: 8036: void finished(); 8036: void backup(bool capable); 8036: 8036: protected : 8036: 8036: 8036: 8036: virtual bool process(); 8036: 8036: 8036: 8036: 8036: virtual void disconnected(); 8036: 8036: protected: 8036: 8036: 8036: 8036: 8036: virtual QIODevice* getReadDevice() const = 0; 8036: 8036: 8036: 8036: 8036: virtual QIODevice* getWriteDevice() const = 0; 8036: 8036: 8036: 8036: 8036: virtual void reset(); 8036: 8036: private: 8036: void cmd_capb(const QString &caps); 8036: void cmd_set(const QString ¶m); 8036: void cmd_get(const QString ¶m); 8036: void cmd_input(const QString ¶m); 8036: void cmd_go(const QString &); 8036: void cmd_title(const QString ¶m); 8036: void cmd_data(const QString ¶m); 8036: void cmd_subst(const QString ¶m); 8036: void cmd_progress(const QString ¶m); 8036: void cmd_x_ping(const QString ¶m); 8036: void cmd_version(const QString ¶m); 8036: void cmd_x_loadtemplatefile(const QString ¶m); 8036: void cmd_info(const QString ¶m); 8036: void cmd_fget(const QString ¶m); 8036: void cmd_fset(const QString ¶m); 8036: void cmd_beginblock(const QString ¶m); 8036: void cmd_endblock(const QString ¶m); 8036: void cmd_stop(const QString ¶m); 8036: struct Cmd { 8036: const char *cmd; 8036: void (DebconfFrontend::*run)(const QString &); 8036: }; 8036: static const Cmd commands[]; 8036: 8036: 8036: QString substitute(const QString &key, const QString &rest) const; 8036: 8036: 8036: 8036: template static int enumFromString(const QString &str, const char *enumName); 8036: PropertyKey propertyKeyFromString(const QString &string); 8036: 8036: typedef QHash Properties; 8036: typedef QHash Substitutions; 8036: typedef QHash Flags; 8036: 8036: QHash m_data; 8036: QHash m_subst; 8036: QHash m_values; 8036: QHash m_flags; 8036: QString m_title; 8036: QStringList m_input; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: class DebconfFrontendSocket : public DebconfFrontend { 8036: 8036: # 214 "/<>/src/debconf.h" 3 4 8036: public: 8036: # 214 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic push 8036: # 214 "/<>/src/debconf.h" 8036: 8036: # 214 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 214 "/<>/src/debconf.h" 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 214 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 214 "/<>/src/debconf.h" 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 214 "/<>/src/debconf.h" 8036: #pragma GCC diagnostic pop 8036: # 214 "/<>/src/debconf.h" 8036: struct QPrivateSignal {}; 8036: 8036: 8036: # 216 "/<>/src/debconf.h" 8036: public: 8036: 8036: 8036: 8036: 8036: 8036: explicit DebconfFrontendSocket(const QString &socketName, QObject *parent = 0); 8036: 8036: 8036: 8036: 8036: virtual ~DebconfFrontendSocket(); 8036: 8036: 8036: 8036: 8036: void cancel(); 8036: 8036: protected: 8036: inline QIODevice* getReadDevice() const { return m_socket; } 8036: inline QIODevice* getWriteDevice() const { return m_socket; } 8036: void reset(); 8036: 8036: private : 8036: 8036: 8036: 8036: 8036: void newConnection(); 8036: 8036: private: 8036: QLocalServer *m_server; 8036: QLocalSocket *m_socket; 8036: }; 8036: 8036: 8036: 8036: 8036: 8036: 8036: class DebconfFrontendFifo : public DebconfFrontend { 8036: 8036: public: 8036: 8036: 8036: 8036: 8036: explicit DebconfFrontendFifo(int readfd, int writefd, QObject *parent = 0); 8036: 8036: 8036: 8036: 8036: void cancel(); 8036: 8036: protected: 8036: QIODevice* getReadDevice() const { return m_readf; } 8036: QIODevice* getWriteDevice() const { return m_writef; } 8036: void reset(); 8036: bool process(); 8036: 8036: private: 8036: QFile *m_readf; 8036: QFile *m_writef; 8036: QSocketNotifier *m_readnotifier; 8036: }; 8036: 8036: } 8036: # 53 "/<>/src/debconf.cpp" 2 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QSocketNotifier" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 1 3 4 8036: # 45 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: 8036: 8036: 8036: # 47 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: class QSocketNotifierPrivate; 8036: class __attribute__((visibility("default"))) QSocketNotifier : public QObject 8036: { 8036: public: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: #pragma GCC diagnostic push 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wsuggest-override" 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: #pragma GCC diagnostic ignored "-Wattributes" 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: #pragma GCC diagnostic pop 8036: # 50 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qsocketnotifier.h" 3 4 8036: struct QPrivateSignal {}; 8036: inline QSocketNotifierPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QSocketNotifierPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QSocketNotifierPrivate; 8036: 8036: public: 8036: enum Type { Read, Write, Exception }; 8036: 8036: QSocketNotifier(qintptr socket, Type, QObject *parent = nullptr); 8036: ~QSocketNotifier(); 8036: 8036: qintptr socket() const; 8036: Type type() const; 8036: 8036: bool isEnabled() const; 8036: 8036: public : 8036: void setEnabled(bool); 8036: 8036: public : 8036: void activated(int socket, QPrivateSignal); 8036: 8036: protected: 8036: bool event(QEvent *) override; 8036: 8036: private: 8036: QSocketNotifier(const QSocketNotifier &) = delete; QSocketNotifier &operator=(const QSocketNotifier &) = delete; 8036: }; 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QSocketNotifier" 2 3 4 8036: # 55 "/<>/src/debconf.cpp" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QRegExp" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qregexp.h" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QRegExp" 2 3 4 8036: # 56 "/<>/src/debconf.cpp" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QStringBuilder" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringbuilder.h" 1 3 4 8036: # 55 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8036: 8036: 8036: 8036: struct __attribute__((visibility("default"))) QAbstractConcatenable 8036: { 8036: protected: 8036: static void convertFromAscii(const char *a, int len, QChar *&out) noexcept; 8036: static inline void convertFromAscii(char a, QChar *&out) noexcept 8036: { 8036: *out++ = QLatin1Char(a); 8036: } 8036: static void appendLatin1To(const char *a, int len, QChar *out) noexcept; 8036: }; 8036: 8036: template struct QConcatenable {}; 8036: 8036: namespace QtStringBuilder { 8036: template struct ConvertToTypeHelper 8036: { typedef A ConvertTo; }; 8036: template struct ConvertToTypeHelper 8036: { typedef QString ConvertTo; }; 8036: } 8036: 8036: template 8036: struct QStringBuilderCommon 8036: { 8036: T toUpper() const { return resolved().toUpper(); } 8036: T toLower() const { return resolved().toLower(); } 8036: 8036: protected: 8036: T resolved() const { return *static_cast(this); } 8036: }; 8036: 8036: template 8036: struct QStringBuilderBase : public QStringBuilderCommon 8036: { 8036: }; 8036: 8036: template 8036: struct QStringBuilderBase : public QStringBuilderCommon 8036: { 8036: QByteArray toLatin1() const { return this->resolved().toLatin1(); } 8036: QByteArray toUtf8() const { return this->resolved().toUtf8(); } 8036: QByteArray toLocal8Bit() const { return this->resolved().toLocal8Bit(); } 8036: }; 8036: 8036: template 8036: class QStringBuilder : public QStringBuilderBase, typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo> 8036: { 8036: public: 8036: QStringBuilder(const A &a_, const B &b_) : a(a_), b(b_) {} 8036: private: 8036: friend class QByteArray; 8036: friend class QString; 8036: template T convertTo() const 8036: { 8036: const uint len = QConcatenable< QStringBuilder >::size(*this); 8036: T s(len, Qt::Uninitialized); 8036: 8036: 8036: 8036: typename T::iterator d = const_cast(s.constData()); 8036: typename T::const_iterator const start = d; 8036: QConcatenable< QStringBuilder >::appendTo(*this, d); 8036: 8036: if (!QConcatenable< QStringBuilder >::ExactSize && int(len) != d - start) { 8036: 8036: 8036: s.resize(d - start); 8036: } 8036: return s; 8036: } 8036: 8036: typedef QConcatenable > Concatenable; 8036: typedef typename Concatenable::ConvertTo ConvertTo; 8036: public: 8036: operator ConvertTo() const { return convertTo(); } 8036: 8036: int size() const { return Concatenable::size(*this); } 8036: 8036: const A &a; 8036: const B &b; 8036: }; 8036: 8036: template <> 8036: class QStringBuilder : public QStringBuilderBase, QString> 8036: { 8036: public: 8036: QStringBuilder(const QString &a_, const QString &b_) : a(a_), b(b_) {} 8036: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8036: 8036: operator QString() const 8036: { QString r(a); r += b; return r; } 8036: 8036: const QString &a; 8036: const QString &b; 8036: 8036: private: 8036: QStringBuilder &operator=(const QStringBuilder &) = delete; 8036: }; 8036: 8036: template <> 8036: class QStringBuilder : public QStringBuilderBase, QByteArray> 8036: { 8036: public: 8036: QStringBuilder(const QByteArray &a_, const QByteArray &b_) : a(a_), b(b_) {} 8036: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8036: 8036: operator QByteArray() const 8036: { QByteArray r(a); r += b; return r; } 8036: 8036: const QByteArray &a; 8036: const QByteArray &b; 8036: 8036: private: 8036: QStringBuilder &operator=(const QStringBuilder &) = delete; 8036: }; 8036: 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef char type; 8036: typedef QByteArray ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const char) { return 1; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: static inline void appendTo(const char c, char *&out) 8036: { *out++ = c; } 8036: }; 8036: 8036: template <> struct QConcatenable 8036: { 8036: typedef QLatin1Char type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QLatin1Char) { return 1; } 8036: static inline void appendTo(const QLatin1Char c, QChar *&out) 8036: { *out++ = c; } 8036: static inline void appendTo(const QLatin1Char c, char *&out) 8036: { *out++ = c.toLatin1(); } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QChar type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QChar) { return 1; } 8036: static inline void appendTo(const QChar c, QChar *&out) 8036: { *out++ = c; } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QChar::SpecialCharacter type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QChar::SpecialCharacter) { return 1; } 8036: static inline void appendTo(const QChar::SpecialCharacter c, QChar *&out) 8036: { *out++ = c; } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QCharRef type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(QCharRef) { return 1; } 8036: static inline void appendTo(QCharRef c, QChar *&out) 8036: { *out++ = QChar(c); } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QLatin1String type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QLatin1String a) { return a.size(); } 8036: static inline void appendTo(const QLatin1String a, QChar *&out) 8036: { 8036: appendLatin1To(a.latin1(), a.size(), out); 8036: out += a.size(); 8036: } 8036: static inline void appendTo(const QLatin1String a, char *&out) 8036: { 8036: if (const char *data = a.data()) { 8036: memcpy(out, data, a.size()); 8036: out += a.size(); 8036: } 8036: } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QString type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QString &a) { return a.size(); } 8036: static inline void appendTo(const QString &a, QChar *&out) 8036: { 8036: const int n = a.size(); 8036: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8036: out += n; 8036: } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QStringRef type; 8036: typedef QString ConvertTo; 8036: enum { ExactSize = true }; 8036: static int size(const QStringRef &a) { return a.size(); } 8036: static inline void appendTo(const QStringRef &a, QChar *&out) 8036: { 8036: const int n = a.size(); 8036: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8036: out += n; 8036: } 8036: }; 8036: 8036: template struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef const char type[N]; 8036: typedef QByteArray ConvertTo; 8036: enum { ExactSize = false }; 8036: static int size(const char[N]) { return N - 1; } 8036: 8036: 8036: 8036: 8036: 8036: 8036: static inline void appendTo(const char a[N], char *&out) 8036: { 8036: while (*a) 8036: *out++ = *a++; 8036: } 8036: }; 8036: 8036: template struct QConcatenable : QConcatenable 8036: { 8036: typedef char type[N]; 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef char const *type; 8036: typedef QByteArray ConvertTo; 8036: enum { ExactSize = false }; 8036: static int size(const char *a) { return qstrlen(a); } 8036: 8036: 8036: 8036: 8036: static inline void appendTo(const char *a, char *&out) 8036: { 8036: if (!a) 8036: return; 8036: while (*a) 8036: *out++ = *a++; 8036: } 8036: }; 8036: 8036: template <> struct QConcatenable : private QAbstractConcatenable 8036: { 8036: typedef QByteArray type; 8036: typedef QByteArray ConvertTo; 8036: enum { ExactSize = false }; 8036: static int size(const QByteArray &ba) { return ba.size(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: static inline void appendTo(const QByteArray &ba, char *&out) 8036: { 8036: const char *a = ba.constData(); 8036: const char * const end = ba.end(); 8036: while (a != end) 8036: *out++ = *a++; 8036: } 8036: }; 8036: 8036: 8036: template 8036: struct QConcatenable< QStringBuilder > 8036: { 8036: typedef QStringBuilder type; 8036: typedef typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo ConvertTo; 8036: enum { ExactSize = QConcatenable::ExactSize && QConcatenable::ExactSize }; 8036: static int size(const type &p) 8036: { 8036: return QConcatenable::size(p.a) + QConcatenable::size(p.b); 8036: } 8036: template static inline void appendTo(const type &p, T *&out) 8036: { 8036: QConcatenable::appendTo(p.a, out); 8036: QConcatenable::appendTo(p.b, out); 8036: } 8036: }; 8036: 8036: template 8036: QStringBuilder::type, typename QConcatenable::type> 8036: operator%(const A &a, const B &b) 8036: { 8036: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8036: } 8036: # 380 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8036: namespace QtStringBuilder { 8036: template 8036: QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder &b, char) 8036: { 8036: 8036: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8036: a.reserve(len); 8036: char *it = a.data() + a.size(); 8036: QConcatenable< QStringBuilder >::appendTo(b, it); 8036: a.resize(len); 8036: return a; 8036: } 8036: # 400 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8036: } 8036: 8036: template 8036: QByteArray &operator+=(QByteArray &a, const QStringBuilder &b) 8036: { 8036: return QtStringBuilder::appendToByteArray(a, b, 8036: typename QConcatenable< QStringBuilder >::ConvertTo::value_type()); 8036: } 8036: 8036: template 8036: QString &operator+=(QString &a, const QStringBuilder &b) 8036: { 8036: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8036: a.reserve(len); 8036: QChar *it = a.data() + a.size(); 8036: QConcatenable< QStringBuilder >::appendTo(b, it); 8036: a.resize(int(it - a.constData())); 8036: return a; 8036: } 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QStringBuilder" 2 3 4 8036: # 57 "/<>/src/debconf.cpp" 2 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QFile" 1 3 4 8036: # 58 "/<>/src/debconf.cpp" 2 8036: # 1 "/usr/include/c++/8/cstdio" 1 3 8036: # 39 "/usr/include/c++/8/cstdio" 3 8036: 8036: # 40 "/usr/include/c++/8/cstdio" 3 8036: # 59 "/<>/src/debconf.cpp" 2 8036: # 1 "/usr/include/unistd.h" 1 3 4 8036: # 27 "/usr/include/unistd.h" 3 4 8036: extern "C" { 8036: # 205 "/usr/include/unistd.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/posix_opt.h" 1 3 4 8036: # 206 "/usr/include/unistd.h" 2 3 4 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/environments.h" 1 3 4 8036: # 22 "/usr/include/powerpc64le-linux-gnu/bits/environments.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/wordsize.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/environments.h" 2 3 4 8036: # 210 "/usr/include/unistd.h" 2 3 4 8036: # 229 "/usr/include/unistd.h" 3 4 8036: # 1 "/usr/lib/gcc/powerpc64le-linux-gnu/8/include/stddef.h" 1 3 4 8036: # 230 "/usr/include/unistd.h" 2 3 4 8036: # 277 "/usr/include/unistd.h" 3 4 8036: typedef __socklen_t socklen_t; 8036: # 290 "/usr/include/unistd.h" 3 4 8036: extern int access (const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern int euidaccess (const char *__name, int __type) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern int eaccess (const char *__name, int __type) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int faccessat (int __fd, const char *__file, int __type, int __flag) 8036: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8036: # 337 "/usr/include/unistd.h" 3 4 8036: extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); 8036: # 348 "/usr/include/unistd.h" 3 4 8036: extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int close (int __fd); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern ssize_t write (int __fd, const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); 8036: # 379 "/usr/include/unistd.h" 3 4 8036: extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, 8036: __off_t __offset) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, 8036: __off_t __offset) __attribute__ ((__warn_unused_result__)); 8036: # 407 "/usr/include/unistd.h" 3 4 8036: extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, 8036: __off64_t __offset) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, 8036: __off64_t __offset) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int pipe (int __pipedes[2]) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int pipe2 (int __pipedes[2], int __flags) throw () __attribute__ ((__warn_unused_result__)); 8036: # 435 "/usr/include/unistd.h" 3 4 8036: extern unsigned int alarm (unsigned int __seconds) throw (); 8036: # 447 "/usr/include/unistd.h" 3 4 8036: extern unsigned int sleep (unsigned int __seconds); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) 8036: throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int usleep (__useconds_t __useconds); 8036: # 472 "/usr/include/unistd.h" 3 4 8036: extern int pause (void); 8036: 8036: 8036: 8036: extern int chown (const char *__file, __uid_t __owner, __gid_t __group) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fchownat (int __fd, const char *__file, __uid_t __owner, 8036: __gid_t __group, int __flag) 8036: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int chdir (const char *__path) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int fchdir (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8036: # 514 "/usr/include/unistd.h" 3 4 8036: extern char *getcwd (char *__buf, size_t __size) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern char *get_current_dir_name (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *getwd (char *__buf) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int dup (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern int dup2 (int __fd, int __fd2) throw (); 8036: 8036: 8036: 8036: 8036: extern int dup3 (int __fd, int __fd2, int __flags) throw (); 8036: 8036: 8036: 8036: extern char **__environ; 8036: 8036: extern char **environ; 8036: 8036: 8036: 8036: 8036: 8036: extern int execve (const char *__path, char *const __argv[], 8036: char *const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: 8036: extern int execv (const char *__path, char *const __argv[]) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int execle (const char *__path, const char *__arg, ...) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int execl (const char *__path, const char *__arg, ...) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern int execvp (const char *__file, char *const __argv[]) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int execlp (const char *__file, const char *__arg, ...) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: extern int execvpe (const char *__file, char *const __argv[], 8036: char *const __envp[]) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: 8036: 8036: extern int nice (int __inc) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern void _exit (int __status) __attribute__ ((__noreturn__)); 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/confname.h" 1 3 4 8036: # 24 "/usr/include/powerpc64le-linux-gnu/bits/confname.h" 3 4 8036: enum 8036: { 8036: _PC_LINK_MAX, 8036: 8036: _PC_MAX_CANON, 8036: 8036: _PC_MAX_INPUT, 8036: 8036: _PC_NAME_MAX, 8036: 8036: _PC_PATH_MAX, 8036: 8036: _PC_PIPE_BUF, 8036: 8036: _PC_CHOWN_RESTRICTED, 8036: 8036: _PC_NO_TRUNC, 8036: 8036: _PC_VDISABLE, 8036: 8036: _PC_SYNC_IO, 8036: 8036: _PC_ASYNC_IO, 8036: 8036: _PC_PRIO_IO, 8036: 8036: _PC_SOCK_MAXBUF, 8036: 8036: _PC_FILESIZEBITS, 8036: 8036: _PC_REC_INCR_XFER_SIZE, 8036: 8036: _PC_REC_MAX_XFER_SIZE, 8036: 8036: _PC_REC_MIN_XFER_SIZE, 8036: 8036: _PC_REC_XFER_ALIGN, 8036: 8036: _PC_ALLOC_SIZE_MIN, 8036: 8036: _PC_SYMLINK_MAX, 8036: 8036: _PC_2_SYMLINKS 8036: 8036: }; 8036: 8036: 8036: enum 8036: { 8036: _SC_ARG_MAX, 8036: 8036: _SC_CHILD_MAX, 8036: 8036: _SC_CLK_TCK, 8036: 8036: _SC_NGROUPS_MAX, 8036: 8036: _SC_OPEN_MAX, 8036: 8036: _SC_STREAM_MAX, 8036: 8036: _SC_TZNAME_MAX, 8036: 8036: _SC_JOB_CONTROL, 8036: 8036: _SC_SAVED_IDS, 8036: 8036: _SC_REALTIME_SIGNALS, 8036: 8036: _SC_PRIORITY_SCHEDULING, 8036: 8036: _SC_TIMERS, 8036: 8036: _SC_ASYNCHRONOUS_IO, 8036: 8036: _SC_PRIORITIZED_IO, 8036: 8036: _SC_SYNCHRONIZED_IO, 8036: 8036: _SC_FSYNC, 8036: 8036: _SC_MAPPED_FILES, 8036: 8036: _SC_MEMLOCK, 8036: 8036: _SC_MEMLOCK_RANGE, 8036: 8036: _SC_MEMORY_PROTECTION, 8036: 8036: _SC_MESSAGE_PASSING, 8036: 8036: _SC_SEMAPHORES, 8036: 8036: _SC_SHARED_MEMORY_OBJECTS, 8036: 8036: _SC_AIO_LISTIO_MAX, 8036: 8036: _SC_AIO_MAX, 8036: 8036: _SC_AIO_PRIO_DELTA_MAX, 8036: 8036: _SC_DELAYTIMER_MAX, 8036: 8036: _SC_MQ_OPEN_MAX, 8036: 8036: _SC_MQ_PRIO_MAX, 8036: 8036: _SC_VERSION, 8036: 8036: _SC_PAGESIZE, 8036: 8036: 8036: _SC_RTSIG_MAX, 8036: 8036: _SC_SEM_NSEMS_MAX, 8036: 8036: _SC_SEM_VALUE_MAX, 8036: 8036: _SC_SIGQUEUE_MAX, 8036: 8036: _SC_TIMER_MAX, 8036: 8036: 8036: 8036: 8036: _SC_BC_BASE_MAX, 8036: 8036: _SC_BC_DIM_MAX, 8036: 8036: _SC_BC_SCALE_MAX, 8036: 8036: _SC_BC_STRING_MAX, 8036: 8036: _SC_COLL_WEIGHTS_MAX, 8036: 8036: _SC_EQUIV_CLASS_MAX, 8036: 8036: _SC_EXPR_NEST_MAX, 8036: 8036: _SC_LINE_MAX, 8036: 8036: _SC_RE_DUP_MAX, 8036: 8036: _SC_CHARCLASS_NAME_MAX, 8036: 8036: 8036: _SC_2_VERSION, 8036: 8036: _SC_2_C_BIND, 8036: 8036: _SC_2_C_DEV, 8036: 8036: _SC_2_FORT_DEV, 8036: 8036: _SC_2_FORT_RUN, 8036: 8036: _SC_2_SW_DEV, 8036: 8036: _SC_2_LOCALEDEF, 8036: 8036: 8036: _SC_PII, 8036: 8036: _SC_PII_XTI, 8036: 8036: _SC_PII_SOCKET, 8036: 8036: _SC_PII_INTERNET, 8036: 8036: _SC_PII_OSI, 8036: 8036: _SC_POLL, 8036: 8036: _SC_SELECT, 8036: 8036: _SC_UIO_MAXIOV, 8036: 8036: _SC_IOV_MAX = _SC_UIO_MAXIOV, 8036: 8036: _SC_PII_INTERNET_STREAM, 8036: 8036: _SC_PII_INTERNET_DGRAM, 8036: 8036: _SC_PII_OSI_COTS, 8036: 8036: _SC_PII_OSI_CLTS, 8036: 8036: _SC_PII_OSI_M, 8036: 8036: _SC_T_IOV_MAX, 8036: 8036: 8036: 8036: _SC_THREADS, 8036: 8036: _SC_THREAD_SAFE_FUNCTIONS, 8036: 8036: _SC_GETGR_R_SIZE_MAX, 8036: 8036: _SC_GETPW_R_SIZE_MAX, 8036: 8036: _SC_LOGIN_NAME_MAX, 8036: 8036: _SC_TTY_NAME_MAX, 8036: 8036: _SC_THREAD_DESTRUCTOR_ITERATIONS, 8036: 8036: _SC_THREAD_KEYS_MAX, 8036: 8036: _SC_THREAD_STACK_MIN, 8036: 8036: _SC_THREAD_THREADS_MAX, 8036: 8036: _SC_THREAD_ATTR_STACKADDR, 8036: 8036: _SC_THREAD_ATTR_STACKSIZE, 8036: 8036: _SC_THREAD_PRIORITY_SCHEDULING, 8036: 8036: _SC_THREAD_PRIO_INHERIT, 8036: 8036: _SC_THREAD_PRIO_PROTECT, 8036: 8036: _SC_THREAD_PROCESS_SHARED, 8036: 8036: 8036: _SC_NPROCESSORS_CONF, 8036: 8036: _SC_NPROCESSORS_ONLN, 8036: 8036: _SC_PHYS_PAGES, 8036: 8036: _SC_AVPHYS_PAGES, 8036: 8036: _SC_ATEXIT_MAX, 8036: 8036: _SC_PASS_MAX, 8036: 8036: 8036: _SC_XOPEN_VERSION, 8036: 8036: _SC_XOPEN_XCU_VERSION, 8036: 8036: _SC_XOPEN_UNIX, 8036: 8036: _SC_XOPEN_CRYPT, 8036: 8036: _SC_XOPEN_ENH_I18N, 8036: 8036: _SC_XOPEN_SHM, 8036: 8036: 8036: _SC_2_CHAR_TERM, 8036: 8036: _SC_2_C_VERSION, 8036: 8036: _SC_2_UPE, 8036: 8036: 8036: _SC_XOPEN_XPG2, 8036: 8036: _SC_XOPEN_XPG3, 8036: 8036: _SC_XOPEN_XPG4, 8036: 8036: 8036: _SC_CHAR_BIT, 8036: 8036: _SC_CHAR_MAX, 8036: 8036: _SC_CHAR_MIN, 8036: 8036: _SC_INT_MAX, 8036: 8036: _SC_INT_MIN, 8036: 8036: _SC_LONG_BIT, 8036: 8036: _SC_WORD_BIT, 8036: 8036: _SC_MB_LEN_MAX, 8036: 8036: _SC_NZERO, 8036: 8036: _SC_SSIZE_MAX, 8036: 8036: _SC_SCHAR_MAX, 8036: 8036: _SC_SCHAR_MIN, 8036: 8036: _SC_SHRT_MAX, 8036: 8036: _SC_SHRT_MIN, 8036: 8036: _SC_UCHAR_MAX, 8036: 8036: _SC_UINT_MAX, 8036: 8036: _SC_ULONG_MAX, 8036: 8036: _SC_USHRT_MAX, 8036: 8036: 8036: _SC_NL_ARGMAX, 8036: 8036: _SC_NL_LANGMAX, 8036: 8036: _SC_NL_MSGMAX, 8036: 8036: _SC_NL_NMAX, 8036: 8036: _SC_NL_SETMAX, 8036: 8036: _SC_NL_TEXTMAX, 8036: 8036: 8036: _SC_XBS5_ILP32_OFF32, 8036: 8036: _SC_XBS5_ILP32_OFFBIG, 8036: 8036: _SC_XBS5_LP64_OFF64, 8036: 8036: _SC_XBS5_LPBIG_OFFBIG, 8036: 8036: 8036: _SC_XOPEN_LEGACY, 8036: 8036: _SC_XOPEN_REALTIME, 8036: 8036: _SC_XOPEN_REALTIME_THREADS, 8036: 8036: 8036: _SC_ADVISORY_INFO, 8036: 8036: _SC_BARRIERS, 8036: 8036: _SC_BASE, 8036: 8036: _SC_C_LANG_SUPPORT, 8036: 8036: _SC_C_LANG_SUPPORT_R, 8036: 8036: _SC_CLOCK_SELECTION, 8036: 8036: _SC_CPUTIME, 8036: 8036: _SC_THREAD_CPUTIME, 8036: 8036: _SC_DEVICE_IO, 8036: 8036: _SC_DEVICE_SPECIFIC, 8036: 8036: _SC_DEVICE_SPECIFIC_R, 8036: 8036: _SC_FD_MGMT, 8036: 8036: _SC_FIFO, 8036: 8036: _SC_PIPE, 8036: 8036: _SC_FILE_ATTRIBUTES, 8036: 8036: _SC_FILE_LOCKING, 8036: 8036: _SC_FILE_SYSTEM, 8036: 8036: _SC_MONOTONIC_CLOCK, 8036: 8036: _SC_MULTI_PROCESS, 8036: 8036: _SC_SINGLE_PROCESS, 8036: 8036: _SC_NETWORKING, 8036: 8036: _SC_READER_WRITER_LOCKS, 8036: 8036: _SC_SPIN_LOCKS, 8036: 8036: _SC_REGEXP, 8036: 8036: _SC_REGEX_VERSION, 8036: 8036: _SC_SHELL, 8036: 8036: _SC_SIGNALS, 8036: 8036: _SC_SPAWN, 8036: 8036: _SC_SPORADIC_SERVER, 8036: 8036: _SC_THREAD_SPORADIC_SERVER, 8036: 8036: _SC_SYSTEM_DATABASE, 8036: 8036: _SC_SYSTEM_DATABASE_R, 8036: 8036: _SC_TIMEOUTS, 8036: 8036: _SC_TYPED_MEMORY_OBJECTS, 8036: 8036: _SC_USER_GROUPS, 8036: 8036: _SC_USER_GROUPS_R, 8036: 8036: _SC_2_PBS, 8036: 8036: _SC_2_PBS_ACCOUNTING, 8036: 8036: _SC_2_PBS_LOCATE, 8036: 8036: _SC_2_PBS_MESSAGE, 8036: 8036: _SC_2_PBS_TRACK, 8036: 8036: _SC_SYMLOOP_MAX, 8036: 8036: _SC_STREAMS, 8036: 8036: _SC_2_PBS_CHECKPOINT, 8036: 8036: 8036: _SC_V6_ILP32_OFF32, 8036: 8036: _SC_V6_ILP32_OFFBIG, 8036: 8036: _SC_V6_LP64_OFF64, 8036: 8036: _SC_V6_LPBIG_OFFBIG, 8036: 8036: 8036: _SC_HOST_NAME_MAX, 8036: 8036: _SC_TRACE, 8036: 8036: _SC_TRACE_EVENT_FILTER, 8036: 8036: _SC_TRACE_INHERIT, 8036: 8036: _SC_TRACE_LOG, 8036: 8036: 8036: _SC_LEVEL1_ICACHE_SIZE, 8036: 8036: _SC_LEVEL1_ICACHE_ASSOC, 8036: 8036: _SC_LEVEL1_ICACHE_LINESIZE, 8036: 8036: _SC_LEVEL1_DCACHE_SIZE, 8036: 8036: _SC_LEVEL1_DCACHE_ASSOC, 8036: 8036: _SC_LEVEL1_DCACHE_LINESIZE, 8036: 8036: _SC_LEVEL2_CACHE_SIZE, 8036: 8036: _SC_LEVEL2_CACHE_ASSOC, 8036: 8036: _SC_LEVEL2_CACHE_LINESIZE, 8036: 8036: _SC_LEVEL3_CACHE_SIZE, 8036: 8036: _SC_LEVEL3_CACHE_ASSOC, 8036: 8036: _SC_LEVEL3_CACHE_LINESIZE, 8036: 8036: _SC_LEVEL4_CACHE_SIZE, 8036: 8036: _SC_LEVEL4_CACHE_ASSOC, 8036: 8036: _SC_LEVEL4_CACHE_LINESIZE, 8036: 8036: 8036: 8036: _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 8036: 8036: _SC_RAW_SOCKETS, 8036: 8036: 8036: _SC_V7_ILP32_OFF32, 8036: 8036: _SC_V7_ILP32_OFFBIG, 8036: 8036: _SC_V7_LP64_OFF64, 8036: 8036: _SC_V7_LPBIG_OFFBIG, 8036: 8036: 8036: _SC_SS_REPL_MAX, 8036: 8036: 8036: _SC_TRACE_EVENT_NAME_MAX, 8036: 8036: _SC_TRACE_NAME_MAX, 8036: 8036: _SC_TRACE_SYS_MAX, 8036: 8036: _SC_TRACE_USER_EVENT_MAX, 8036: 8036: 8036: _SC_XOPEN_STREAMS, 8036: 8036: 8036: _SC_THREAD_ROBUST_PRIO_INHERIT, 8036: 8036: _SC_THREAD_ROBUST_PRIO_PROTECT 8036: 8036: }; 8036: 8036: 8036: enum 8036: { 8036: _CS_PATH, 8036: 8036: 8036: _CS_V6_WIDTH_RESTRICTED_ENVS, 8036: 8036: 8036: 8036: _CS_GNU_LIBC_VERSION, 8036: 8036: _CS_GNU_LIBPTHREAD_VERSION, 8036: 8036: 8036: _CS_V5_WIDTH_RESTRICTED_ENVS, 8036: 8036: 8036: 8036: _CS_V7_WIDTH_RESTRICTED_ENVS, 8036: 8036: 8036: 8036: _CS_LFS_CFLAGS = 1000, 8036: 8036: _CS_LFS_LDFLAGS, 8036: 8036: _CS_LFS_LIBS, 8036: 8036: _CS_LFS_LINTFLAGS, 8036: 8036: _CS_LFS64_CFLAGS, 8036: 8036: _CS_LFS64_LDFLAGS, 8036: 8036: _CS_LFS64_LIBS, 8036: 8036: _CS_LFS64_LINTFLAGS, 8036: 8036: 8036: _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 8036: 8036: _CS_XBS5_ILP32_OFF32_LDFLAGS, 8036: 8036: _CS_XBS5_ILP32_OFF32_LIBS, 8036: 8036: _CS_XBS5_ILP32_OFF32_LINTFLAGS, 8036: 8036: _CS_XBS5_ILP32_OFFBIG_CFLAGS, 8036: 8036: _CS_XBS5_ILP32_OFFBIG_LDFLAGS, 8036: 8036: _CS_XBS5_ILP32_OFFBIG_LIBS, 8036: 8036: _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, 8036: 8036: _CS_XBS5_LP64_OFF64_CFLAGS, 8036: 8036: _CS_XBS5_LP64_OFF64_LDFLAGS, 8036: 8036: _CS_XBS5_LP64_OFF64_LIBS, 8036: 8036: _CS_XBS5_LP64_OFF64_LINTFLAGS, 8036: 8036: _CS_XBS5_LPBIG_OFFBIG_CFLAGS, 8036: 8036: _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, 8036: 8036: _CS_XBS5_LPBIG_OFFBIG_LIBS, 8036: 8036: _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, 8036: 8036: 8036: _CS_POSIX_V6_ILP32_OFF32_CFLAGS, 8036: 8036: _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, 8036: 8036: _CS_POSIX_V6_ILP32_OFF32_LIBS, 8036: 8036: _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, 8036: 8036: _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, 8036: 8036: _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, 8036: 8036: _CS_POSIX_V6_ILP32_OFFBIG_LIBS, 8036: 8036: _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, 8036: 8036: _CS_POSIX_V6_LP64_OFF64_CFLAGS, 8036: 8036: _CS_POSIX_V6_LP64_OFF64_LDFLAGS, 8036: 8036: _CS_POSIX_V6_LP64_OFF64_LIBS, 8036: 8036: _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, 8036: 8036: _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, 8036: 8036: _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, 8036: 8036: _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, 8036: 8036: _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, 8036: 8036: 8036: _CS_POSIX_V7_ILP32_OFF32_CFLAGS, 8036: 8036: _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, 8036: 8036: _CS_POSIX_V7_ILP32_OFF32_LIBS, 8036: 8036: _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, 8036: 8036: _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, 8036: 8036: _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, 8036: 8036: _CS_POSIX_V7_ILP32_OFFBIG_LIBS, 8036: 8036: _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, 8036: 8036: _CS_POSIX_V7_LP64_OFF64_CFLAGS, 8036: 8036: _CS_POSIX_V7_LP64_OFF64_LDFLAGS, 8036: 8036: _CS_POSIX_V7_LP64_OFF64_LIBS, 8036: 8036: _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, 8036: 8036: _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, 8036: 8036: _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, 8036: 8036: _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, 8036: 8036: _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, 8036: 8036: 8036: _CS_V6_ENV, 8036: 8036: _CS_V7_ENV 8036: 8036: }; 8036: # 613 "/usr/include/unistd.h" 2 3 4 8036: 8036: 8036: extern long int pathconf (const char *__path, int __name) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: extern long int fpathconf (int __fd, int __name) throw (); 8036: 8036: 8036: extern long int sysconf (int __name) throw (); 8036: 8036: 8036: 8036: extern size_t confstr (int __name, char *__buf, size_t __len) throw (); 8036: 8036: 8036: 8036: 8036: extern __pid_t getpid (void) throw (); 8036: 8036: 8036: extern __pid_t getppid (void) throw (); 8036: 8036: 8036: extern __pid_t getpgrp (void) throw (); 8036: 8036: 8036: extern __pid_t __getpgid (__pid_t __pid) throw (); 8036: 8036: extern __pid_t getpgid (__pid_t __pid) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); 8036: # 663 "/usr/include/unistd.h" 3 4 8036: extern int setpgrp (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __pid_t setsid (void) throw (); 8036: 8036: 8036: 8036: extern __pid_t getsid (__pid_t __pid) throw (); 8036: 8036: 8036: 8036: extern __uid_t getuid (void) throw (); 8036: 8036: 8036: extern __uid_t geteuid (void) throw (); 8036: 8036: 8036: extern __gid_t getgid (void) throw (); 8036: 8036: 8036: extern __gid_t getegid (void) throw (); 8036: 8036: 8036: 8036: 8036: extern int getgroups (int __size, __gid_t __list[]) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int group_member (__gid_t __gid) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int setuid (__uid_t __uid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int setreuid (__uid_t __ruid, __uid_t __euid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int seteuid (__uid_t __uid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int setgid (__gid_t __gid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int setregid (__gid_t __rgid, __gid_t __egid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int setegid (__gid_t __gid) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) 8036: throw (); 8036: 8036: 8036: 8036: extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) 8036: throw (); 8036: 8036: 8036: 8036: extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __pid_t fork (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern __pid_t vfork (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern char *ttyname (int __fd) throw (); 8036: 8036: 8036: 8036: extern int ttyname_r (int __fd, char *__buf, size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int isatty (int __fd) throw (); 8036: 8036: 8036: 8036: 8036: extern int ttyslot (void) throw (); 8036: 8036: 8036: 8036: 8036: extern int link (const char *__from, const char *__to) 8036: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int linkat (int __fromfd, const char *__from, int __tofd, 8036: const char *__to, int __flags) 8036: throw () __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int symlink (const char *__from, const char *__to) 8036: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern ssize_t readlink (const char *__restrict __path, 8036: char *__restrict __buf, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: extern int symlinkat (const char *__from, int __tofd, 8036: const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: extern ssize_t readlinkat (int __fd, const char *__restrict __path, 8036: char *__restrict __buf, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int unlink (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern int unlinkat (int __fd, const char *__name, int __flag) 8036: throw () __attribute__ ((__nonnull__ (2))); 8036: 8036: 8036: 8036: extern int rmdir (const char *__path) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: extern __pid_t tcgetpgrp (int __fd) throw (); 8036: 8036: 8036: extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *getlogin (void); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: extern int setlogin (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/getopt_posix.h" 1 3 4 8036: # 27 "/usr/include/powerpc64le-linux-gnu/bits/getopt_posix.h" 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/getopt_core.h" 1 3 4 8036: # 28 "/usr/include/powerpc64le-linux-gnu/bits/getopt_core.h" 3 4 8036: extern "C" { 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *optarg; 8036: # 50 "/usr/include/powerpc64le-linux-gnu/bits/getopt_core.h" 3 4 8036: extern int optind; 8036: 8036: 8036: 8036: 8036: extern int opterr; 8036: 8036: 8036: 8036: extern int optopt; 8036: # 91 "/usr/include/powerpc64le-linux-gnu/bits/getopt_core.h" 3 4 8036: extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) 8036: throw () __attribute__ ((__nonnull__ (2, 3))); 8036: 8036: } 8036: # 28 "/usr/include/powerpc64le-linux-gnu/bits/getopt_posix.h" 2 3 4 8036: 8036: extern "C" { 8036: # 49 "/usr/include/powerpc64le-linux-gnu/bits/getopt_posix.h" 3 4 8036: } 8036: # 873 "/usr/include/unistd.h" 2 3 4 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int sethostname (const char *__name, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern int sethostid (long int __id) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int getdomainname (char *__name, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: extern int setdomainname (const char *__name, size_t __len) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern int vhangup (void) throw (); 8036: 8036: 8036: extern int revoke (const char *__file) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int profil (unsigned short int *__sample_buffer, size_t __size, 8036: size_t __offset, unsigned int __scale) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: extern int acct (const char *__name) throw (); 8036: 8036: 8036: 8036: extern char *getusershell (void) throw (); 8036: extern void endusershell (void) throw (); 8036: extern void setusershell (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int daemon (int __nochdir, int __noclose) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int chroot (const char *__path) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern int fsync (int __fd); 8036: 8036: 8036: 8036: 8036: 8036: extern int syncfs (int __fd) throw (); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern long int gethostid (void); 8036: 8036: 8036: extern void sync (void) throw (); 8036: 8036: 8036: 8036: 8036: 8036: extern int getpagesize (void) throw () __attribute__ ((__const__)); 8036: 8036: 8036: 8036: 8036: extern int getdtablesize (void) throw (); 8036: # 994 "/usr/include/unistd.h" 3 4 8036: extern int truncate (const char *__file, __off_t __length) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 1006 "/usr/include/unistd.h" 3 4 8036: extern int truncate64 (const char *__file, __off64_t __length) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: # 1017 "/usr/include/unistd.h" 3 4 8036: extern int ftruncate (int __fd, __off_t __length) throw () __attribute__ ((__warn_unused_result__)); 8036: # 1027 "/usr/include/unistd.h" 3 4 8036: extern int ftruncate64 (int __fd, __off64_t __length) throw () __attribute__ ((__warn_unused_result__)); 8036: # 1038 "/usr/include/unistd.h" 3 4 8036: extern int brk (void *__addr) throw () __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: 8036: extern void *sbrk (intptr_t __delta) throw (); 8036: # 1059 "/usr/include/unistd.h" 3 4 8036: extern long int syscall (long int __sysno, ...) throw (); 8036: # 1082 "/usr/include/unistd.h" 3 4 8036: extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__)); 8036: # 1092 "/usr/include/unistd.h" 3 4 8036: extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__)); 8036: # 1113 "/usr/include/unistd.h" 3 4 8036: extern int fdatasync (int __fildes); 8036: 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern char *crypt (const char *__key, const char *__salt) 8036: throw () __attribute__ ((__nonnull__ (1, 2))); 8036: 8036: 8036: 8036: extern void encrypt (char *__glibc_block, int __edflag) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: 8036: 8036: 8036: 8036: 8036: 8036: extern void swab (const void *__restrict __from, void *__restrict __to, 8036: ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8036: # 1162 "/usr/include/unistd.h" 3 4 8036: int getentropy (void *__buffer, size_t __length) __attribute__ ((__warn_unused_result__)); 8036: 8036: 8036: 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/bits/unistd.h" 1 3 4 8036: # 23 "/usr/include/powerpc64le-linux-gnu/bits/unistd.h" 3 4 8036: extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, 8036: size_t __buflen) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") 8036: __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 8036: read (int __fd, void *__buf, size_t __nbytes) 8036: { 8036: if (__builtin_object_size (__buf, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__nbytes)) 8036: return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); 8036: 8036: if (__nbytes > __builtin_object_size (__buf, 0)) 8036: return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); 8036: } 8036: return __read_alias (__fd, __buf, __nbytes); 8036: } 8036: 8036: 8036: extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, 8036: __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, 8036: __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") 8036: 8036: __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))) 8036: ; 8036: extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") 8036: 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))) 8036: ; 8036: 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 8036: pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) 8036: { 8036: if (__builtin_object_size (__buf, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__nbytes)) 8036: return __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); 8036: 8036: if ( __nbytes > __builtin_object_size (__buf, 0)) 8036: return __pread_chk_warn (__fd, __buf, __nbytes, __offset, 8036: __builtin_object_size (__buf, 0)); 8036: } 8036: return __pread_alias (__fd, __buf, __nbytes, __offset); 8036: } 8036: # 104 "/usr/include/powerpc64le-linux-gnu/bits/unistd.h" 3 4 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t 8036: pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) 8036: { 8036: if (__builtin_object_size (__buf, 0) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__nbytes)) 8036: return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); 8036: 8036: if ( __nbytes > __builtin_object_size (__buf, 0)) 8036: return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, 8036: __builtin_object_size (__buf, 0)); 8036: } 8036: 8036: return __pread64_alias (__fd, __buf, __nbytes, __offset); 8036: } 8036: 8036: 8036: 8036: 8036: extern ssize_t __readlink_chk (const char *__restrict __path, 8036: char *__restrict __buf, size_t __len, 8036: size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __readlink_alias (const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __asm__ ("" "readlink") 8036: 8036: 8036: __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __readlink_chk_warn (const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__readlink_chk") 8036: 8036: 8036: 8036: __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t 8036: __attribute__ ((__leaf__)) readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) throw () 8036: 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if ( __len > __builtin_object_size (__buf, 2 > 1)) 8036: return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __readlink_alias (__path, __buf, __len); 8036: } 8036: 8036: 8036: 8036: extern ssize_t __readlinkat_chk (int __fd, const char *__restrict __path, 8036: char *__restrict __buf, size_t __len, 8036: size_t __buflen) 8036: throw () __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __readlinkat_alias (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __asm__ ("" "readlinkat") 8036: 8036: 8036: 8036: __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); 8036: extern ssize_t __readlinkat_chk_warn (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__readlinkat_chk") 8036: 8036: 8036: 8036: __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))) 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t 8036: __attribute__ ((__leaf__)) readlinkat (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) throw () 8036: 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__len > __builtin_object_size (__buf, 2 > 1)) 8036: return __readlinkat_chk_warn (__fd, __path, __buf, __len, 8036: __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __readlinkat_alias (__fd, __path, __buf, __len); 8036: } 8036: 8036: 8036: extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: extern char *__getcwd_alias (char *__buf, size_t __size) throw () __asm__ ("" "getcwd") 8036: __attribute__ ((__warn_unused_result__)); 8036: extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) throw () __asm__ ("" "__getcwd_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8036: __attribute__ ((__leaf__)) getcwd (char *__buf, size_t __size) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__size)) 8036: return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__size > __builtin_object_size (__buf, 2 > 1)) 8036: return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __getcwd_alias (__buf, __size); 8036: } 8036: 8036: 8036: extern char *__getwd_chk (char *__buf, size_t buflen) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: extern char *__getwd_warn (char *__buf) throw () __asm__ ("" "getwd") 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * 8036: __attribute__ ((__leaf__)) getwd (char *__buf) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); 8036: return __getwd_warn (__buf); 8036: } 8036: 8036: 8036: extern size_t __confstr_chk (int __name, char *__buf, size_t __len, 8036: size_t __buflen) throw (); 8036: extern size_t __confstr_alias (int __name, char *__buf, size_t __len) throw () __asm__ ("" "confstr") 8036: ; 8036: extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__confstr_chk") 8036: 8036: 8036: __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8036: __attribute__ ((__leaf__)) confstr (int __name, char *__buf, size_t __len) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__len)) 8036: return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__builtin_object_size (__buf, 2 > 1) < __len) 8036: return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __confstr_alias (__name, __buf, __len); 8036: } 8036: 8036: 8036: extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) 8036: throw () __attribute__ ((__warn_unused_result__)); 8036: extern int __getgroups_alias (int __size, __gid_t __list[]) throw () __asm__ ("" "getgroups") 8036: __attribute__ ((__warn_unused_result__)); 8036: extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) throw () __asm__ ("" "__getgroups_chk") 8036: 8036: 8036: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) getgroups (int __size, __gid_t __list[]) throw () 8036: { 8036: if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__size) || __size < 0) 8036: return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); 8036: 8036: if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) 8036: return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); 8036: } 8036: return __getgroups_alias (__size, __list); 8036: } 8036: 8036: 8036: extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, 8036: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8036: extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ttyname_r") 8036: 8036: __attribute__ ((__nonnull__ (2))); 8036: extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ttyname_r_chk") 8036: 8036: 8036: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) ttyname_r (int __fd, char *__buf, size_t __buflen) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__buflen)) 8036: return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8036: return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __ttyname_r_alias (__fd, __buf, __buflen); 8036: } 8036: 8036: 8036: 8036: extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) 8036: __attribute__ ((__nonnull__ (1))); 8036: extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") 8036: __attribute__ ((__nonnull__ (1))); 8036: extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") 8036: 8036: 8036: __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: getlogin_r (char *__buf, size_t __buflen) 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__buflen)) 8036: return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8036: return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __getlogin_r_alias (__buf, __buflen); 8036: } 8036: 8036: 8036: 8036: 8036: extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) 8036: throw () __attribute__ ((__nonnull__ (1))); 8036: extern int __gethostname_alias (char *__buf, size_t __buflen) throw () __asm__ ("" "gethostname") 8036: __attribute__ ((__nonnull__ (1))); 8036: extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__gethostname_chk") 8036: 8036: 8036: __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))) 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) gethostname (char *__buf, size_t __buflen) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__buflen)) 8036: return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8036: return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __gethostname_alias (__buf, __buflen); 8036: } 8036: 8036: 8036: 8036: 8036: extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) 8036: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: extern int __getdomainname_alias (char *__buf, size_t __buflen) throw () __asm__ ("" "getdomainname") 8036: 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8036: extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__getdomainname_chk") 8036: 8036: 8036: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))) 8036: 8036: ; 8036: 8036: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8036: __attribute__ ((__leaf__)) getdomainname (char *__buf, size_t __buflen) throw () 8036: { 8036: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8036: { 8036: if (!__builtin_constant_p (__buflen)) 8036: return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: 8036: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8036: return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8036: } 8036: return __getdomainname_alias (__buf, __buflen); 8036: } 8036: # 1168 "/usr/include/unistd.h" 2 3 4 8036: 8036: 8036: } 8036: # 60 "/<>/src/debconf.cpp" 2 8036: 8036: # 1 "/<>/src/Debug_p.h" 1 8036: # 23 "/<>/src/Debug_p.h" 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QLoggingCategory" 1 3 4 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qloggingcategory.h" 1 3 4 8036: # 46 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qloggingcategory.h" 3 4 8036: 8036: 8036: class __attribute__((visibility("default"))) QLoggingCategory 8036: { 8036: QLoggingCategory(const QLoggingCategory &) = delete; QLoggingCategory &operator=(const QLoggingCategory &) = delete; 8036: public: 8036: 8036: explicit QLoggingCategory(const char *category); 8036: QLoggingCategory(const char *category, QtMsgType severityLevel); 8036: ~QLoggingCategory(); 8036: 8036: bool isEnabled(QtMsgType type) const; 8036: void setEnabled(QtMsgType type, bool enable); 8036: 8036: 8036: bool isDebugEnabled() const { return bools.enabledDebug.load(); } 8036: bool isInfoEnabled() const { return bools.enabledInfo.load(); } 8036: bool isWarningEnabled() const { return bools.enabledWarning.load(); } 8036: bool isCriticalEnabled() const { return bools.enabledCritical.load(); } 8036: 8036: 8036: 8036: 8036: 8036: 8036: const char *categoryName() const { return name; } 8036: 8036: 8036: QLoggingCategory &operator()() { return *this; } 8036: const QLoggingCategory &operator()() const { return *this; } 8036: 8036: static QLoggingCategory *defaultCategory(); 8036: 8036: typedef void (*CategoryFilter)(QLoggingCategory*); 8036: static CategoryFilter installFilter(CategoryFilter); 8036: 8036: static void setFilterRules(const QString &rules); 8036: 8036: private: 8036: void init(const char *category, QtMsgType severityLevel); 8036: 8036: void *d; 8036: const char *name; 8036: 8036: 8036: enum { DebugShift = 0, WarningShift = 8, CriticalShift = 16, InfoShift = 24 }; 8036: 8036: 8036: 8036: 8036: struct AtomicBools { 8036: 8036: QBasicAtomicInteger enabledDebug; 8036: QBasicAtomicInteger enabledWarning; 8036: QBasicAtomicInteger enabledCritical; 8036: QBasicAtomicInteger enabledInfo; 8036: 8036: }; 8036: union { 8036: AtomicBools bools; 8036: QBasicAtomicInt enabled; 8036: }; 8036: bool placeholder[4]; 8036: }; 8036: # 167 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/qloggingcategory.h" 3 4 8036: 8036: # 1 "/usr/include/powerpc64le-linux-gnu/qt5/QtCore/QLoggingCategory" 2 3 4 8036: # 24 "/<>/src/Debug_p.h" 2 8036: 8036: extern const QLoggingCategory & 8036: # 25 "/<>/src/Debug_p.h" 8036: DEBCONF 8036: # 25 "/<>/src/Debug_p.h" 3 4 8036: (); 8036: # 62 "/<>/src/debconf.cpp" 2 8036: 8036: 8036: # 63 "/<>/src/debconf.cpp" 8036: namespace DebconfKde { 8036: 8036: const DebconfFrontend::Cmd DebconfFrontend::commands[] = { 8036: { "SET", &DebconfFrontend::cmd_set }, 8036: { "GO", &DebconfFrontend::cmd_go }, 8036: { "TITLE", &DebconfFrontend::cmd_title }, 8036: { "SETTITLE", &DebconfFrontend::cmd_title }, 8036: { "DATA", &DebconfFrontend::cmd_data }, 8036: { "SUBST", &DebconfFrontend::cmd_subst }, 8036: { "INPUT", &DebconfFrontend::cmd_input }, 8036: { "GET", &DebconfFrontend::cmd_get }, 8036: { "CAPB", &DebconfFrontend::cmd_capb }, 8036: { "PROGRESS", &DebconfFrontend::cmd_progress }, 8036: { "X_PING", &DebconfFrontend::cmd_x_ping }, 8036: { "VERSION", &DebconfFrontend::cmd_version }, 8036: { "X_LOADTEMPLATEFILE", &DebconfFrontend::cmd_x_loadtemplatefile }, 8036: { "INFO", &DebconfFrontend::cmd_info }, 8036: { "FGET", &DebconfFrontend::cmd_fget }, 8036: { "FSET", &DebconfFrontend::cmd_fset }, 8036: { "BEGINBLOCK", &DebconfFrontend::cmd_beginblock }, 8036: { "ENDBLOCK", &DebconfFrontend::cmd_endblock }, 8036: { "STOP", &DebconfFrontend::cmd_stop }, 8036: { 0, 0 } }; 8036: 8036: DebconfFrontend::DebconfFrontend(QObject *parent) 8036: : QObject(parent) 8036: { 8036: } 8036: 8036: DebconfFrontend::~DebconfFrontend() 8036: { 8036: } 8036: 8036: void DebconfFrontend::disconnected() 8036: { 8036: reset(); 8036: finished(); 8036: } 8036: 8036: QString DebconfFrontend::value(const QString &key) const 8036: { 8036: return m_values[key]; 8036: } 8036: 8036: void DebconfFrontend::setValue(const QString &key, const QString &value) 8036: { 8036: m_values[key] = value; 8036: } 8036: 8036: template int DebconfFrontend::enumFromString(const QString &str, const char *enumName) 8036: { 8036: QString realName(str); 8036: realName.replace(0, 1, str.at(0).toUpper()); 8036: int pos; 8036: while ((pos = realName.indexOf(QLatin1Char( '_' ))) != -1) { 8036: if (pos + 1 >= realName.size()) { 8036: realName.chop(1); 8036: } else{ 8036: realName.replace(pos, 2, realName.at(pos + 1).toUpper()); 8036: } 8036: } 8036: 8036: int id = T::staticMetaObject.indexOfEnumerator(enumName); 8036: QMetaEnum e = T::staticMetaObject.enumerator(id); 8036: int enumValue = e.keyToValue(realName.toLatin1().data()); 8036: 8036: if(enumValue == -1) { 8036: enumValue = e.keyToValue(QString( 8036: # 130 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 130 "/<>/src/debconf.cpp" 8036: "Unknown" 8036: # 130 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 130 "/<>/src/debconf.cpp" 8036: "Unknown" 8036: # 130 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 130 "/<>/src/debconf.cpp" 8036: ).append(QLatin1String( enumName )).toLatin1().data()); 8036: 8036: # 131 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 131 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 131 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 131 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 131 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 131 "/<>/src/debconf.cpp" 8036: << "enumFromString (" <>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 131 "/<>/src/debconf.cpp" 8036: "Unknown" 8036: # 131 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 131 "/<>/src/debconf.cpp" 8036: "Unknown" 8036: # 131 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 131 "/<>/src/debconf.cpp" 8036: ).append(QLatin1String( enumName )) << ", enum value" << enumValue; 8036: } 8036: return enumValue; 8036: } 8036: 8036: DebconfFrontend::PropertyKey DebconfFrontend::propertyKeyFromString(const QString &string) 8036: { 8036: return static_cast(enumFromString(string, "PropertyKey" )); 8036: } 8036: 8036: DebconfFrontend::TypeKey DebconfFrontend::type(const QString &string) const 8036: { 8036: return static_cast(enumFromString(property(string, Type), "TypeKey" )); 8036: } 8036: 8036: void DebconfFrontend::reset() 8036: { 8036: backup(false); 8036: m_data.clear(); 8036: m_subst.clear(); 8036: m_values.clear(); 8036: m_flags.clear(); 8036: } 8036: 8036: void DebconfFrontend::say(const QString &string) 8036: { 8036: 8036: # 157 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 157 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 157 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 157 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 157 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 157 "/<>/src/debconf.cpp" 8036: << "DEBCONF ---> " << string; 8036: QTextStream out(getWriteDevice()); 8036: out << string << "\n"; 8036: out.flush(); 8036: } 8036: 8036: QString DebconfFrontend::substitute(const QString &key, const QString &rest) const 8036: { 8036: Substitutions sub = m_subst[key]; 8036: QString result, var, escape; 8036: QRegExp rx( 8036: # 167 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 167 "/<>/src/debconf.cpp" 8036: "^(.*)(\\\\)?\\$\\{([^\\{\\}]+)\\}(.*)$" 8036: # 167 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 167 "/<>/src/debconf.cpp" 8036: "^(.*)(\\\\)?\\$\\{([^\\{\\}]+)\\}(.*)$" 8036: # 167 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 167 "/<>/src/debconf.cpp" 8036: ); 8036: QString last(rest); 8036: int pos = 0; 8036: while ( (pos = rx.indexIn(rest, pos)) != -1) { 8036: 8036: # 171 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 171 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 171 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 171 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 171 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 171 "/<>/src/debconf.cpp" 8036: << "var found! at" << pos; 8036: result += rx.cap(1); 8036: escape = rx.cap(2); 8036: var = rx.cap(3); 8036: last = rx.cap(4); 8036: if (!escape.isEmpty()) { 8036: result += QString(QLatin1Literal( "${" ) % var % QLatin1Char( '}' )); 8036: } else { 8036: result += sub.value(var); 8036: } 8036: pos += rx.matchedLength(); 8036: } 8036: return result + last; 8036: } 8036: 8036: QString DebconfFrontend::property(const QString &key, PropertyKey p) const 8036: { 8036: QString r = m_data.value(key).value(p); 8036: if (p == Description || p == Choices) { 8036: return substitute(key, r); 8036: } 8036: return r; 8036: } 8036: 8036: void DebconfFrontend::cmd_capb(const QString &caps) 8036: { 8036: backup(caps.split( 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 197 "/<>/src/debconf.cpp" 8036: ", " 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 197 "/<>/src/debconf.cpp" 8036: ", " 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 197 "/<>/src/debconf.cpp" 8036: ).contains( 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 197 "/<>/src/debconf.cpp" 8036: "backup" 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 197 "/<>/src/debconf.cpp" 8036: "backup" 8036: # 197 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 197 "/<>/src/debconf.cpp" 8036: )); 8036: say( 8036: # 198 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 198 "/<>/src/debconf.cpp" 8036: "0 backup" 8036: # 198 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 198 "/<>/src/debconf.cpp" 8036: "0 backup" 8036: # 198 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 198 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_set(const QString ¶m) 8036: { 8036: QString item = param.section(QLatin1Char( ' ' ), 0, 0); 8036: QString value = param.section(QLatin1Char( ' ' ), 1); 8036: m_values[item] = value; 8036: 8036: # 206 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 206 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 206 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 206 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 206 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 206 "/<>/src/debconf.cpp" 8036: << "# SET: [" << item << "] " << value; 8036: say( 8036: # 207 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 207 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 207 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 207 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 207 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 207 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_get(const QString ¶m) 8036: { 8036: say( 8036: # 212 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 212 "/<>/src/debconf.cpp" 8036: "0 " 8036: # 212 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 212 "/<>/src/debconf.cpp" 8036: "0 " 8036: # 212 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 212 "/<>/src/debconf.cpp" 8036: + m_values.value(param)); 8036: } 8036: 8036: void DebconfFrontend::cmd_input(const QString ¶m) 8036: { 8036: m_input.append(param.section(QLatin1Char( ' ' ), 1)); 8036: say( 8036: # 218 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 218 "/<>/src/debconf.cpp" 8036: "0 will ask" 8036: # 218 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 218 "/<>/src/debconf.cpp" 8036: "0 will ask" 8036: # 218 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 218 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_go(const QString &) 8036: { 8036: 8036: # 223 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 223 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 223 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 223 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 223 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 223 "/<>/src/debconf.cpp" 8036: << "# GO"; 8036: m_input.removeDuplicates(); 8036: go(m_title, m_input); 8036: m_input.clear(); 8036: } 8036: 8036: void DebconfFrontend::cmd_progress(const QString ¶m) 8036: { 8036: 8036: # 231 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 231 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 231 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 231 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 231 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 231 "/<>/src/debconf.cpp" 8036: << "DEBCONF: PROGRESS " << param; 8036: progress(param); 8036: } 8036: 8036: void DebconfFrontend::next() 8036: { 8036: m_input.clear(); 8036: say( 8036: # 238 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 238 "/<>/src/debconf.cpp" 8036: "0 ok, got the answers" 8036: # 238 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 238 "/<>/src/debconf.cpp" 8036: "0 ok, got the answers" 8036: # 238 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 238 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::back() 8036: { 8036: m_input.clear(); 8036: say( 8036: # 244 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 244 "/<>/src/debconf.cpp" 8036: "30 go back" 8036: # 244 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 244 "/<>/src/debconf.cpp" 8036: "30 go back" 8036: # 244 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 244 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cancel() 8036: { 8036: reset(); 8036: } 8036: 8036: void DebconfFrontend::cmd_title(const QString ¶m) 8036: { 8036: if (!property(param, Description).isEmpty()) { 8036: m_title = property(param, Description); 8036: } else { 8036: m_title = param; 8036: } 8036: 8036: # 259 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 259 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 259 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 259 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 259 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 259 "/<>/src/debconf.cpp" 8036: << "DEBCONF: TITLE " << m_title; 8036: say( 8036: # 260 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 260 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 260 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 260 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 260 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 260 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_data(const QString ¶m) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: QString item = param.section(QLatin1Char( ' ' ), 0, 0); 8036: QString type = param.section(QLatin1Char( ' ' ), 1, 1); 8036: QString value = param.section(QLatin1Char( ' ' ), 2); 8036: 8036: m_data[item][propertyKeyFromString(type)] = value; 8036: 8036: # 275 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 275 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 275 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 275 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 275 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 275 "/<>/src/debconf.cpp" 8036: << "# NOTED: [" << item << "] [" << type << "] " << value; 8036: say( 8036: # 276 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 276 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 276 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 276 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 276 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 276 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_subst(const QString ¶m) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: QString item = param.section(QLatin1Char( ' ' ), 0, 0); 8036: QString type = param.section(QLatin1Char( ' ' ), 1, 1); 8036: QString value = param.section(QLatin1Char( ' ' ), 2); 8036: 8036: m_subst[item][type] = value; 8036: 8036: # 291 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 291 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 291 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 291 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 291 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 291 "/<>/src/debconf.cpp" 8036: << "# SUBST: [" << item << "] [" << type << "] " << value; 8036: say( 8036: # 292 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 292 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 292 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 292 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 292 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 292 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_x_ping(const QString ¶m) 8036: { 8036: 8036: # 297 "/<>/src/debconf.cpp" 3 4 8036: (void) 8036: # 297 "/<>/src/debconf.cpp" 8036: param 8036: # 297 "/<>/src/debconf.cpp" 3 4 8036: ; 8036: # 297 "/<>/src/debconf.cpp" 8036: ; 8036: say( 8036: # 298 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 298 "/<>/src/debconf.cpp" 8036: "0 pong" 8036: # 298 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 298 "/<>/src/debconf.cpp" 8036: "0 pong" 8036: # 298 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 298 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_version(const QString ¶m) 8036: { 8036: if ( !param.isEmpty() ) { 8036: QString major_version_str = param.section(QLatin1Char( '.' ), 0, 0); 8036: bool ok = false; 8036: int major_version = major_version_str.toInt( &ok ); 8036: if ( !ok || (major_version != 2) ) { 8036: say( 8036: # 308 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 308 "/<>/src/debconf.cpp" 8036: "30 wrong or too old protocol version" 8036: # 308 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 308 "/<>/src/debconf.cpp" 8036: "30 wrong or too old protocol version" 8036: # 308 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 308 "/<>/src/debconf.cpp" 8036: ); 8036: return; 8036: } 8036: } 8036: 8036: say( 8036: # 313 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 313 "/<>/src/debconf.cpp" 8036: "0 2.1" 8036: # 313 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 313 "/<>/src/debconf.cpp" 8036: "0 2.1" 8036: # 313 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 313 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_x_loadtemplatefile(const QString ¶m) 8036: { 8036: QFile template_file(param); 8036: if (template_file.open(QFile::ReadOnly)) { 8036: QTextStream template_stream(&template_file); 8036: QString line = 8036: # 321 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 321 "/<>/src/debconf.cpp" 8036: "" 8036: # 321 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 321 "/<>/src/debconf.cpp" 8036: "" 8036: # 321 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 321 "/<>/src/debconf.cpp" 8036: ; 8036: int linecount = 0; 8036: QHash field_short_value; 8036: QHash field_long_value; 8036: QString last_field_name; 8036: while ( !line.isNull() ) { 8036: ++linecount; 8036: line = template_stream.readLine(); 8036: 8036: # 329 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 329 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 329 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 329 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 329 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 329 "/<>/src/debconf.cpp" 8036: << linecount << line; 8036: if ( line.isEmpty() ) { 8036: if (!last_field_name.isEmpty()) { 8036: 8036: 8036: # 333 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 333 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 333 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 333 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 333 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 333 "/<>/src/debconf.cpp" 8036: << "submit" << last_field_name; 8036: QString item = field_short_value[ 8036: # 334 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 334 "/<>/src/debconf.cpp" 8036: "template" 8036: # 334 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 334 "/<>/src/debconf.cpp" 8036: "template" 8036: # 334 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 334 "/<>/src/debconf.cpp" 8036: ]; 8036: QString type = field_short_value[ 8036: # 335 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 335 "/<>/src/debconf.cpp" 8036: "type" 8036: # 335 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 335 "/<>/src/debconf.cpp" 8036: "type" 8036: # 335 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 335 "/<>/src/debconf.cpp" 8036: ]; 8036: QString short_description = field_short_value[ 8036: # 336 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 336 "/<>/src/debconf.cpp" 8036: "description" 8036: # 336 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 336 "/<>/src/debconf.cpp" 8036: "description" 8036: # 336 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 336 "/<>/src/debconf.cpp" 8036: ]; 8036: QString long_description = field_long_value[ 8036: # 337 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 337 "/<>/src/debconf.cpp" 8036: "description" 8036: # 337 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 337 "/<>/src/debconf.cpp" 8036: "description" 8036: # 337 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 337 "/<>/src/debconf.cpp" 8036: ]; 8036: 8036: m_data[item][DebconfFrontend::Type] = type; 8036: m_data[item][DebconfFrontend::Description] = short_description; 8036: m_data[item][DebconfFrontend::ExtendedDescription] = long_description; 8036: 8036: 8036: field_short_value.clear(); 8036: field_long_value.clear(); 8036: last_field_name.clear(); 8036: } 8036: } else { 8036: if (!line.startsWith(QLatin1Char(' '))) { 8036: last_field_name = line.section( 8036: # 350 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 350 "/<>/src/debconf.cpp" 8036: ": " 8036: # 350 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 350 "/<>/src/debconf.cpp" 8036: ": " 8036: # 350 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 350 "/<>/src/debconf.cpp" 8036: , 0, 0).toLower(); 8036: field_short_value[last_field_name] = line.section( 8036: # 351 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 351 "/<>/src/debconf.cpp" 8036: ": " 8036: # 351 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 351 "/<>/src/debconf.cpp" 8036: ": " 8036: # 351 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 351 "/<>/src/debconf.cpp" 8036: , 1); 8036: } else { 8036: if ( field_long_value[last_field_name].isEmpty() ){ 8036: field_long_value[last_field_name] = line.remove(0, 1); 8036: } else { 8036: field_long_value[last_field_name].append(QLatin1Char('\n')); 8036: if ( !(line.trimmed() == 8036: # 357 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 357 "/<>/src/debconf.cpp" 8036: "." 8036: # 357 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 357 "/<>/src/debconf.cpp" 8036: "." 8036: # 357 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 357 "/<>/src/debconf.cpp" 8036: ) ) { 8036: field_long_value[last_field_name].append(line.remove(0, 1)); 8036: } 8036: } 8036: } 8036: } 8036: } 8036: } else { 8036: say( 8036: # 365 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 365 "/<>/src/debconf.cpp" 8036: "30 couldn't open file" 8036: # 365 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 365 "/<>/src/debconf.cpp" 8036: "30 couldn't open file" 8036: # 365 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 365 "/<>/src/debconf.cpp" 8036: ); 8036: return; 8036: } 8036: say( 8036: # 368 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 368 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 368 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 368 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 368 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 368 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_info(const QString ¶m) 8036: { 8036: 8036: # 373 "/<>/src/debconf.cpp" 3 4 8036: (void) 8036: # 373 "/<>/src/debconf.cpp" 8036: param 8036: # 373 "/<>/src/debconf.cpp" 3 4 8036: ; 8036: 8036: 8036: 8036: # 376 "/<>/src/debconf.cpp" 8036: say( 8036: # 376 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 376 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 376 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 376 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 376 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 376 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_fget(const QString ¶m) 8036: { 8036: 8036: 8036: 8036: 8036: QString question = param.section(QLatin1Char( ' ' ), 0, 0); 8036: QString flag = param.section(QLatin1Char( ' ' ), 1, 1); 8036: 8036: if (m_flags[question][flag]) { 8036: say( 8036: # 389 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 389 "/<>/src/debconf.cpp" 8036: "0 true" 8036: # 389 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 389 "/<>/src/debconf.cpp" 8036: "0 true" 8036: # 389 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 389 "/<>/src/debconf.cpp" 8036: ); 8036: } else { 8036: say( 8036: # 391 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 391 "/<>/src/debconf.cpp" 8036: "0 false" 8036: # 391 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 391 "/<>/src/debconf.cpp" 8036: "0 false" 8036: # 391 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 391 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: } 8036: 8036: void DebconfFrontend::cmd_fset(const QString ¶m) 8036: { 8036: 8036: 8036: 8036: 8036: 8036: QString question = param.section(QLatin1Char( ' ' ), 0, 0); 8036: QString flag = param.section(QLatin1Char( ' ' ), 1, 1); 8036: QString value = param.section(QLatin1Char( ' ' ), 2, 2); 8036: 8036: if ( value == 8036: # 406 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 406 "/<>/src/debconf.cpp" 8036: "false" 8036: # 406 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 406 "/<>/src/debconf.cpp" 8036: "false" 8036: # 406 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 406 "/<>/src/debconf.cpp" 8036: ) { 8036: m_flags[question][flag] = false; 8036: } else { 8036: m_flags[question][flag] = true; 8036: } 8036: say( 8036: # 411 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 411 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 411 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 411 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 411 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 411 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_beginblock(const QString ¶m) 8036: { 8036: 8036: # 416 "/<>/src/debconf.cpp" 3 4 8036: (void) 8036: # 416 "/<>/src/debconf.cpp" 8036: param 8036: # 416 "/<>/src/debconf.cpp" 3 4 8036: ; 8036: 8036: 8036: 8036: # 419 "/<>/src/debconf.cpp" 8036: say( 8036: # 419 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 419 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 419 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 419 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 419 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 419 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_endblock(const QString ¶m) 8036: { 8036: 8036: # 424 "/<>/src/debconf.cpp" 3 4 8036: (void) 8036: # 424 "/<>/src/debconf.cpp" 8036: param 8036: # 424 "/<>/src/debconf.cpp" 3 4 8036: ; 8036: 8036: 8036: 8036: # 427 "/<>/src/debconf.cpp" 8036: say( 8036: # 427 "/<>/src/debconf.cpp" 3 4 8036: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8036: # 427 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 427 "/<>/src/debconf.cpp" 3 4 8036: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8036: # 427 "/<>/src/debconf.cpp" 8036: "0 ok" 8036: # 427 "/<>/src/debconf.cpp" 3 4 8036: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8036: # 427 "/<>/src/debconf.cpp" 8036: ); 8036: } 8036: 8036: void DebconfFrontend::cmd_stop(const QString ¶m) 8036: { 8036: 8036: # 432 "/<>/src/debconf.cpp" 3 4 8036: (void) 8036: # 432 "/<>/src/debconf.cpp" 8036: param 8036: # 432 "/<>/src/debconf.cpp" 3 4 8036: ; 8036: 8036: 8036: # 434 "/<>/src/debconf.cpp" 8036: } 8036: 8036: bool DebconfFrontend::process() 8036: { 8036: QTextStream in(getReadDevice()); 8036: QString line = in.readLine(); 8036: 8036: if (line.isEmpty()) { 8036: return false; 8036: } 8036: 8036: QString command = line.section(QLatin1Char( ' ' ), 0, 0); 8036: QString value = line.section(QLatin1Char( ' ' ), 1); 8036: 8036: 8036: # 448 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 448 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 448 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 448 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 448 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 448 "/<>/src/debconf.cpp" 8036: << "DEBCONF <--- [" << command << "] " << value; 8036: const Cmd *c = commands; 8036: while (c->cmd != 0) { 8036: if (command == QLatin1String( c->cmd )) { 8036: (this->*(c->run))(value); 8036: return true; 8036: } 8036: ++ c; 8036: } 8036: return false; 8036: } 8036: 8036: DebconfFrontendSocket::DebconfFrontendSocket(const QString &socketName, QObject *parent) 8036: : DebconfFrontend(parent), m_socket(0) 8036: { 8036: m_server = new QLocalServer(this); 8036: QFile::remove(socketName); 8036: m_server->listen(socketName); 8036: connect(m_server, 8036: # 466 "/<>/src/debconf.cpp" 3 4 8036: "2" 8036: # 466 "/<>/src/debconf.cpp" 8036: "newConnection()", this, 8036: # 466 "/<>/src/debconf.cpp" 3 4 8036: "1" 8036: # 466 "/<>/src/debconf.cpp" 8036: "newConnection()"); 8036: } 8036: 8036: DebconfFrontendSocket::~DebconfFrontendSocket() 8036: { 8036: QFile::remove(m_server->fullServerName()); 8036: } 8036: 8036: void DebconfFrontendSocket::newConnection() 8036: { 8036: 8036: # 476 "/<>/src/debconf.cpp" 3 4 8036: for (bool qt_category_enabled = 8036: # 476 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 476 "/<>/src/debconf.cpp" 3 4 8036: ().isDebugEnabled(); qt_category_enabled; qt_category_enabled = false) QMessageLogger(nullptr, 0, nullptr, 8036: # 476 "/<>/src/debconf.cpp" 8036: DEBCONF 8036: # 476 "/<>/src/debconf.cpp" 3 4 8036: ().categoryName()).debug() 8036: # 476 "/<>/src/debconf.cpp" 8036: ; 8036: if (m_socket) { 8036: QLocalSocket *socket = m_server->nextPendingConnection(); 8036: socket->disconnectFromServer(); 8036: socket->deleteLater(); 8036: return; 8036: } 8036: 8036: m_socket = m_server->nextPendingConnection(); 8036: if (m_socket) { 8036: connect(m_socket, 8036: # 486 "/<>/src/debconf.cpp" 3 4 8036: "2" 8036: # 486 "/<>/src/debconf.cpp" 8036: "readyRead()", this, 8036: # 486 "/<>/src/debconf.cpp" 3 4 8036: "1" 8036: # 486 "/<>/src/debconf.cpp" 8036: "process()"); 8036: connect(m_socket, 8036: # 487 "/<>/src/debconf.cpp" 3 4 8036: "2" 8036: # 487 "/<>/src/debconf.cpp" 8036: "disconnected()", this, 8036: # 487 "/<>/src/debconf.cpp" 3 4 8036: "1" 8036: # 487 "/<>/src/debconf.cpp" 8036: "disconnected()"); 8036: } 8036: } 8036: 8036: void DebconfFrontendSocket::reset() 8036: { 8036: if (m_socket) { 8036: m_socket->deleteLater(); 8036: m_socket = 0; 8036: } 8036: DebconfFrontend::reset(); 8036: } 8036: 8036: void DebconfFrontendSocket::cancel() 8036: { 8036: if (m_socket) { 8036: m_socket->disconnectFromServer(); 8036: } 8036: DebconfFrontend::cancel(); 8036: } 8036: 8036: DebconfFrontendFifo::DebconfFrontendFifo(int readfd, int writefd, QObject *parent) 8036: : DebconfFrontend(parent) 8036: { 8036: m_readf = new QFile(this); 8036: 8036: 8036: 8036: FILE *readfh = ::fdopen(readfd, "rb"); 8036: m_readf->open(readfh, QIODevice::ReadOnly); 8036: 8036: m_writef = new QFile(this); 8036: m_writef->open(writefd, QIODevice::WriteOnly); 8036: 8036: 8036: m_readnotifier = new QSocketNotifier(readfd, QSocketNotifier::Read, this); 8036: connect(m_readnotifier, 8036: # 523 "/<>/src/debconf.cpp" 3 4 8036: "2" 8036: # 523 "/<>/src/debconf.cpp" 8036: "activated(int)", this, 8036: # 523 "/<>/src/debconf.cpp" 3 4 8036: "1" 8036: # 523 "/<>/src/debconf.cpp" 8036: "process()"); 8036: } 8036: 8036: void DebconfFrontendFifo::reset() 8036: { 8036: if (m_readf) { 8036: 8036: int readfd = m_readf->handle(); 8036: int writefd = m_writef->handle(); 8036: m_readnotifier->setEnabled(false); 8036: m_readf->close(); 8036: m_writef->close(); 8036: m_readf = m_writef = 0; 8036: 8036: 8036: ::close(readfd); 8036: ::close(writefd); 8036: } 8036: DebconfFrontend::reset(); 8036: } 8036: 8036: void DebconfFrontendFifo::cancel() 8036: { 8036: disconnected(); 8036: } 8036: 8036: bool DebconfFrontendFifo::process() 8036: { 8036: 8036: if (m_readf->atEnd()) { 8036: cancel(); 8036: return false; 8036: } 8036: return DebconfFrontend::process(); 8036: } 8036: 8036: } === END GCC DUMP === src/CMakeFiles/debconf-kde.dir/build.make:105: recipe for target 'src/CMakeFiles/debconf-kde.dir/debconf.cpp.o' failed make[3]: *** [src/CMakeFiles/debconf-kde.dir/debconf.cpp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' CMakeFiles/Makefile2:259: recipe for target 'src/CMakeFiles/debconf-kde.dir/all' failed make[2]: *** [src/CMakeFiles/debconf-kde.dir/all] Error 2 make[2]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' Makefile:143: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/<>/obj-powerpc64le-linux-gnu' dh_auto_build: cd obj-powerpc64le-linux-gnu && make -j4 returned exit code 2 debian/rules:7: recipe for target 'build-arch' failed make: *** [build-arch] Error 2 dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 20180115-1117 Finished -------- E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not removing build depends: as requested +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: ppc64el Build-Space: 13248 Build-Time: 12 Distribution: bionic Fail-Stage: build Host Architecture: ppc64el Install-Time: 33 Job: debconf-kde_1.0.2-1.dsc Machine Architecture: ppc64el Package: debconf-kde Package-Time: 46 Source-Version: 1.0.2-1 Space: 13248 Status: attempted Version: 1.0.2-1 -------------------------------------------------------------------------------- Finished at 20180115-1117 Build needed 00:00:46, 13248k disc space RUN: /usr/share/launchpad-buildd/slavebin/in-target scan-for-processes --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Scanning for processes to kill in build PACKAGEBUILD-14087662 RUN: /usr/share/launchpad-buildd/slavebin/in-target umount-chroot --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Stopping target for build PACKAGEBUILD-14087662 RUN: /usr/share/launchpad-buildd/slavebin/in-target remove-build --backend=chroot --series=bionic --arch=ppc64el PACKAGEBUILD-14087662 Removing build PACKAGEBUILD-14087662