log for com.github.shadowsocks:5030250

== Installed Android Tools ==2022-12-24 21:57:16,378 DEBUG: Reading 'config.yml'2022-12-24 21:57:16,397 WARNING: ipfs_cid not found, skipping CIDv1 generation2022-12-24 21:57:16,398 INFO: Creating log directory2022-12-24 21:57:16,398 INFO: Creating temporary directory2022-12-24 21:57:16,398 INFO: Creating output directory2022-12-24 21:57:16,455 DEBUG: Getting git vcs interface for https://github.com/shadowsocks/shadowsocks-android.git2022-12-24 21:57:16,456 DEBUG: Checking com.github.shadowsocks:50302502022-12-24 21:57:16,456 INFO: Building version 5.3.2-nightly (5030250) of com.github.shadowsocks2022-12-24 21:57:16,456 WARNING: Android NDK version 'r21e' could not be found!2022-12-24 21:57:16,456 WARNING: Configured versions:2022-12-24 21:57:16,457 INFO: Downloading https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip2022-12-24 21:57:16,462 DEBUG: Starting new HTTPS connection (1): dl.google.com:4432022-12-24 21:57:16,531 DEBUG: https://dl.google.com:443 "GET /android/repository/android-ndk-r21e-linux-x86_64.zip HTTP/1.1" 200 11906700722022-12-24 21:58:38,012 INFO: Unzipping to /opt/android-sdk/ndk2022-12-24 21:59:38,164 INFO: Set NDK r21e (21.4.7075529) up2022-12-24 21:59:38,179 INFO: Running 'sudo' commands in /home/vagrant2022-12-24 21:59:38,179 DEBUG: > sudo DEBIAN_FRONTEND=noninteractive bash -e -u -o pipefail -x -c apt-get update; apt-get install -y build-essential file+ apt-get updateGet:1 https://security.debian.org/debian-security bullseye-security InRelease [48.4 kB]Get:2 https://debian.osuosl.org/debian bullseye InRelease [116 kB]Get:3 https://debian.osuosl.org/debian bullseye-updates InRelease [44.1 kB]Get:4 https://security.debian.org/debian-security bullseye-security/main amd64 Packages [210 kB]Get:5 https://security.debian.org/debian-security bullseye-security/main Translation-en [136 kB]Get:6 https://debian.osuosl.org/debian bullseye-backports InRelease [49.0 kB]Get:7 https://debian.osuosl.org/debian bullseye/main amd64 Packages [8183 kB]Get:8 https://debian.osuosl.org/debian bullseye/main Translation-en [6240 kB]Get:9 https://debian.osuosl.org/debian bullseye-updates/main amd64 Packages [14.6 kB]Get:10 https://debian.osuosl.org/debian bullseye-updates/main Translation-en [7929 B]Get:11 https://debian.osuosl.org/debian bullseye-backports/main amd64 Packages [371 kB]Get:12 https://debian.osuosl.org/debian bullseye-backports/main Translation-en [307 kB]Fetched 15.7 MB in 16s (1008 kB/s)Reading package lists...+ apt-get install -y build-essential fileReading package lists...Building dependency tree...Reading state information...The following additional packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu bzip2 cpp cpp-10 dpkg-devg++ g++-10 gcc gcc-10 libasan6 libbinutils libc-dev-bin libc6-dev libcc1-0libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libgcc-10-dev libgomp1libisl23 libitm1 liblsan0 libmpc3 libmpfr6 libnsl-dev libstdc++-10-devlibtirpc-dev libtsan0 libubsan1 linux-libc-dev make xz-utilsSuggested packages:binutils-doc bzip2-doc cpp-doc gcc-10-locales debian-keyring g++-multilibg++-10-multilib gcc-10-doc gcc-multilib manpages-dev autoconf automakelibtool flex bison gdb gcc-doc gcc-10-multilib glibc-doc bzrlibstdc++-10-doc make-docRecommended packages:fakeroot libalgorithm-merge-perl manpages manpages-dev libc-devtoolslibfile-fcntllock-perlThe following NEW packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 cppcpp-10 dpkg-dev file g++ g++-10 gcc gcc-10 libasan6 libbinutils libc-dev-binlibc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perllibgcc-10-dev libgomp1 libisl23 libitm1 liblsan0 libmpc3 libmpfr6 libnsl-devlibstdc++-10-dev libtirpc-dev libtsan0 libubsan1 linux-libc-dev makexz-utils0 upgraded, 37 newly installed, 0 to remove and 14 not upgraded.Need to get 61.6 MB of archives.After this operation, 228 MB of additional disk space will be used.Get:1 https://debian.osuosl.org/debian bullseye/main amd64 bzip2 amd64 1.0.8-4 [49.3 kB]Get:2 https://debian.osuosl.org/debian bullseye/main amd64 file amd64 1:5.39-3 [69.1 kB]Get:3 https://debian.osuosl.org/debian bullseye/main amd64 xz-utils amd64 5.2.5-2.1~deb11u1 [220 kB]Get:4 https://debian.osuosl.org/debian bullseye/main amd64 binutils-common amd64 2.35.2-2 [2220 kB]Get:5 https://debian.osuosl.org/debian bullseye/main amd64 libbinutils amd64 2.35.2-2 [570 kB]Get:6 https://debian.osuosl.org/debian bullseye/main amd64 libctf-nobfd0 amd64 2.35.2-2 [110 kB]Get:7 https://debian.osuosl.org/debian bullseye/main amd64 libctf0 amd64 2.35.2-2 [53.2 kB]Get:8 https://debian.osuosl.org/debian bullseye/main amd64 binutils-x86-64-linux-gnu amd64 2.35.2-2 [1809 kB]Get:9 https://debian.osuosl.org/debian bullseye/main amd64 binutils amd64 2.35.2-2 [61.2 kB]Get:10 https://debian.osuosl.org/debian bullseye/main amd64 libc-dev-bin amd64 2.31-13+deb11u5 [276 kB]Get:11 https://debian.osuosl.org/debian bullseye/main amd64 linux-libc-dev amd64 5.10.158-2 [1571 kB]Get:12 https://debian.osuosl.org/debian bullseye/main amd64 libcrypt-dev amd64 1:4.4.18-4 [104 kB]Get:13 https://debian.osuosl.org/debian bullseye/main amd64 libtirpc-dev amd64 1.3.1-1+deb11u1 [191 kB]Get:14 https://debian.osuosl.org/debian bullseye/main amd64 libnsl-dev amd64 1.3.0-2 [66.4 kB]Get:15 https://debian.osuosl.org/debian bullseye/main amd64 libc6-dev amd64 2.31-13+deb11u5 [2359 kB]Get:16 https://debian.osuosl.org/debian bullseye/main amd64 libisl23 amd64 0.23-1 [676 kB]Get:17 https://debian.osuosl.org/debian bullseye/main amd64 libmpfr6 amd64 4.1.0-3 [2012 kB]Get:18 https://debian.osuosl.org/debian bullseye/main amd64 libmpc3 amd64 1.2.0-1 [45.0 kB]Get:19 https://debian.osuosl.org/debian bullseye/main amd64 cpp-10 amd64 10.2.1-6 [8528 kB]Get:20 https://debian.osuosl.org/debian bullseye/main amd64 cpp amd64 4:10.2.1-1 [19.7 kB]Get:21 https://debian.osuosl.org/debian bullseye/main amd64 libcc1-0 amd64 10.2.1-6 [47.0 kB]Get:22 https://debian.osuosl.org/debian bullseye/main amd64 libgomp1 amd64 10.2.1-6 [99.9 kB]Get:23 https://debian.osuosl.org/debian bullseye/main amd64 libitm1 amd64 10.2.1-6 [25.8 kB]Get:24 https://debian.osuosl.org/debian bullseye/main amd64 libasan6 amd64 10.2.1-6 [2065 kB]Get:25 https://debian.osuosl.org/debian bullseye/main amd64 liblsan0 amd64 10.2.1-6 [828 kB]Get:26 https://debian.osuosl.org/debian bullseye/main amd64 libtsan0 amd64 10.2.1-6 [2000 kB]Get:27 https://debian.osuosl.org/debian bullseye/main amd64 libubsan1 amd64 10.2.1-6 [777 kB]Get:28 https://debian.osuosl.org/debian bullseye/main amd64 libgcc-10-dev amd64 10.2.1-6 [2328 kB]Get:29 https://debian.osuosl.org/debian bullseye/main amd64 gcc-10 amd64 10.2.1-6 [17.0 MB]Get:30 https://debian.osuosl.org/debian bullseye/main amd64 gcc amd64 4:10.2.1-1 [5192 B]Get:31 https://debian.osuosl.org/debian bullseye/main amd64 libstdc++-10-dev amd64 10.2.1-6 [1741 kB]Get:32 https://debian.osuosl.org/debian bullseye/main amd64 g++-10 amd64 10.2.1-6 [9380 kB]Get:33 https://debian.osuosl.org/debian bullseye/main amd64 g++ amd64 4:10.2.1-1 [1644 B]Get:34 https://debian.osuosl.org/debian bullseye/main amd64 make amd64 4.3-4.1 [396 kB]Get:35 https://debian.osuosl.org/debian bullseye/main amd64 libdpkg-perl all 1.20.12 [1551 kB]Get:36 https://debian.osuosl.org/debian bullseye/main amd64 dpkg-dev all 1.20.12 [2312 kB]Get:37 https://debian.osuosl.org/debian bullseye/main amd64 build-essential amd64 12.9 [7704 B]debconf: delaying package configuration, since apt-utils is not installedFetched 61.6 MB in 5s (11.3 MB/s)Selecting previously unselected package bzip2.(Reading database ... 36772 files and directories currently installed.)Preparing to unpack .../00-bzip2_1.0.8-4_amd64.deb ...Unpacking bzip2 (1.0.8-4) ...Selecting previously unselected package file.Preparing to unpack .../01-file_1%3a5.39-3_amd64.deb ...Unpacking file (1:5.39-3) ...Selecting previously unselected package xz-utils.Preparing to unpack .../02-xz-utils_5.2.5-2.1~deb11u1_amd64.deb ...Unpacking xz-utils (5.2.5-2.1~deb11u1) ...Selecting previously unselected package binutils-common:amd64.Preparing to unpack .../03-binutils-common_2.35.2-2_amd64.deb ...Unpacking binutils-common:amd64 (2.35.2-2) ...Selecting previously unselected package libbinutils:amd64.Preparing to unpack .../04-libbinutils_2.35.2-2_amd64.deb ...Unpacking libbinutils:amd64 (2.35.2-2) ...Selecting previously unselected package libctf-nobfd0:amd64.Preparing to unpack .../05-libctf-nobfd0_2.35.2-2_amd64.deb ...Unpacking libctf-nobfd0:amd64 (2.35.2-2) ...Selecting previously unselected package libctf0:amd64.Preparing to unpack .../06-libctf0_2.35.2-2_amd64.deb ...Unpacking libctf0:amd64 (2.35.2-2) ...Selecting previously unselected package binutils-x86-64-linux-gnu.Preparing to unpack .../07-binutils-x86-64-linux-gnu_2.35.2-2_amd64.deb ...Unpacking binutils-x86-64-linux-gnu (2.35.2-2) ...Selecting previously unselected package binutils.Preparing to unpack .../08-binutils_2.35.2-2_amd64.deb ...Unpacking binutils (2.35.2-2) ...Selecting previously unselected package libc-dev-bin.Preparing to unpack .../09-libc-dev-bin_2.31-13+deb11u5_amd64.deb ...Unpacking libc-dev-bin (2.31-13+deb11u5) ...Selecting previously unselected package linux-libc-dev:amd64.Preparing to unpack .../10-linux-libc-dev_5.10.158-2_amd64.deb ...Unpacking linux-libc-dev:amd64 (5.10.158-2) ...Selecting previously unselected package libcrypt-dev:amd64.Preparing to unpack .../11-libcrypt-dev_1%3a4.4.18-4_amd64.deb ...Unpacking libcrypt-dev:amd64 (1:4.4.18-4) ...Selecting previously unselected package libtirpc-dev:amd64.Preparing to unpack .../12-libtirpc-dev_1.3.1-1+deb11u1_amd64.deb ...Unpacking libtirpc-dev:amd64 (1.3.1-1+deb11u1) ...Selecting previously unselected package libnsl-dev:amd64.Preparing to unpack .../13-libnsl-dev_1.3.0-2_amd64.deb ...Unpacking libnsl-dev:amd64 (1.3.0-2) ...Selecting previously unselected package libc6-dev:amd64.Preparing to unpack .../14-libc6-dev_2.31-13+deb11u5_amd64.deb ...Unpacking libc6-dev:amd64 (2.31-13+deb11u5) ...Selecting previously unselected package libisl23:amd64.Preparing to unpack .../15-libisl23_0.23-1_amd64.deb ...Unpacking libisl23:amd64 (0.23-1) ...Selecting previously unselected package libmpfr6:amd64.Preparing to unpack .../16-libmpfr6_4.1.0-3_amd64.deb ...Unpacking libmpfr6:amd64 (4.1.0-3) ...Selecting previously unselected package libmpc3:amd64.Preparing to unpack .../17-libmpc3_1.2.0-1_amd64.deb ...Unpacking libmpc3:amd64 (1.2.0-1) ...Selecting previously unselected package cpp-10.Preparing to unpack .../18-cpp-10_10.2.1-6_amd64.deb ...Unpacking cpp-10 (10.2.1-6) ...Selecting previously unselected package cpp.Preparing to unpack .../19-cpp_4%3a10.2.1-1_amd64.deb ...Unpacking cpp (4:10.2.1-1) ...Selecting previously unselected package libcc1-0:amd64.Preparing to unpack .../20-libcc1-0_10.2.1-6_amd64.deb ...Unpacking libcc1-0:amd64 (10.2.1-6) ...Selecting previously unselected package libgomp1:amd64.Preparing to unpack .../21-libgomp1_10.2.1-6_amd64.deb ...Unpacking libgomp1:amd64 (10.2.1-6) ...Selecting previously unselected package libitm1:amd64.Preparing to unpack .../22-libitm1_10.2.1-6_amd64.deb ...Unpacking libitm1:amd64 (10.2.1-6) ...Selecting previously unselected package libasan6:amd64.Preparing to unpack .../23-libasan6_10.2.1-6_amd64.deb ...Unpacking libasan6:amd64 (10.2.1-6) ...Selecting previously unselected package liblsan0:amd64.Preparing to unpack .../24-liblsan0_10.2.1-6_amd64.deb ...Unpacking liblsan0:amd64 (10.2.1-6) ...Selecting previously unselected package libtsan0:amd64.Preparing to unpack .../25-libtsan0_10.2.1-6_amd64.deb ...Unpacking libtsan0:amd64 (10.2.1-6) ...Selecting previously unselected package libubsan1:amd64.Preparing to unpack .../26-libubsan1_10.2.1-6_amd64.deb ...Unpacking libubsan1:amd64 (10.2.1-6) ...Selecting previously unselected package libgcc-10-dev:amd64.Preparing to unpack .../27-libgcc-10-dev_10.2.1-6_amd64.deb ...Unpacking libgcc-10-dev:amd64 (10.2.1-6) ...Selecting previously unselected package gcc-10.Preparing to unpack .../28-gcc-10_10.2.1-6_amd64.deb ...Unpacking gcc-10 (10.2.1-6) ...Selecting previously unselected package gcc.Preparing to unpack .../29-gcc_4%3a10.2.1-1_amd64.deb ...Unpacking gcc (4:10.2.1-1) ...Selecting previously unselected package libstdc++-10-dev:amd64.Preparing to unpack .../30-libstdc++-10-dev_10.2.1-6_amd64.deb ...Unpacking libstdc++-10-dev:amd64 (10.2.1-6) ...Selecting previously unselected package g++-10.Preparing to unpack .../31-g++-10_10.2.1-6_amd64.deb ...Unpacking g++-10 (10.2.1-6) ...Selecting previously unselected package g++.Preparing to unpack .../32-g++_4%3a10.2.1-1_amd64.deb ...Unpacking g++ (4:10.2.1-1) ...Selecting previously unselected package make.Preparing to unpack .../33-make_4.3-4.1_amd64.deb ...Unpacking make (4.3-4.1) ...Selecting previously unselected package libdpkg-perl.Preparing to unpack .../34-libdpkg-perl_1.20.12_all.deb ...Unpacking libdpkg-perl (1.20.12) ...Selecting previously unselected package dpkg-dev.Preparing to unpack .../35-dpkg-dev_1.20.12_all.deb ...Unpacking dpkg-dev (1.20.12) ...Selecting previously unselected package build-essential.Preparing to unpack .../36-build-essential_12.9_amd64.deb ...Unpacking build-essential (12.9) ...Setting up binutils-common:amd64 (2.35.2-2) ...Setting up linux-libc-dev:amd64 (5.10.158-2) ...Setting up libctf-nobfd0:amd64 (2.35.2-2) ...Setting up file (1:5.39-3) ...Setting up libgomp1:amd64 (10.2.1-6) ...Setting up bzip2 (1.0.8-4) ...Setting up libasan6:amd64 (10.2.1-6) ...Setting up libtirpc-dev:amd64 (1.3.1-1+deb11u1) ...Setting up make (4.3-4.1) ...Setting up libmpfr6:amd64 (4.1.0-3) ...Setting up xz-utils (5.2.5-2.1~deb11u1) ...update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto modeSetting up libmpc3:amd64 (1.2.0-1) ...Setting up libdpkg-perl (1.20.12) ...Setting up libubsan1:amd64 (10.2.1-6) ...Setting up libnsl-dev:amd64 (1.3.0-2) ...Setting up libcrypt-dev:amd64 (1:4.4.18-4) ...Setting up libbinutils:amd64 (2.35.2-2) ...Setting up libisl23:amd64 (0.23-1) ...Setting up libc-dev-bin (2.31-13+deb11u5) ...Setting up libcc1-0:amd64 (10.2.1-6) ...Setting up liblsan0:amd64 (10.2.1-6) ...Setting up cpp-10 (10.2.1-6) ...Setting up libitm1:amd64 (10.2.1-6) ...Setting up libtsan0:amd64 (10.2.1-6) ...Setting up libctf0:amd64 (2.35.2-2) ...Setting up libgcc-10-dev:amd64 (10.2.1-6) ...Setting up cpp (4:10.2.1-1) ...Setting up libc6-dev:amd64 (2.31-13+deb11u5) ...Setting up binutils-x86-64-linux-gnu (2.35.2-2) ...Setting up libstdc++-10-dev:amd64 (10.2.1-6) ...Setting up binutils (2.35.2-2) ...Setting up dpkg-dev (1.20.12) ...Setting up gcc-10 (10.2.1-6) ...Setting up g++-10 (10.2.1-6) ...Setting up gcc (4:10.2.1-1) ...Setting up g++ (4:10.2.1-1) ...update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto modeSetting up build-essential (12.9) ...Processing triggers for libc-bin (2.31-13+deb11u5) ...2022-12-24 22:01:36,900 DEBUG: > sudo passwd --lock rootpasswd: password expiry information changed.2022-12-24 22:01:37,313 DEBUG: > sudo SUDO_FORCE_REMOVE=yes dpkg --purge sudo(Reading database ... 40513 files and directories currently installed.)Removing sudo (1.9.5p2-3) ...Purging configuration files for sudo (1.9.5p2-3) ...dpkg: warning: while removing sudo, directory '/etc/sudoers.d' not empty so not removed2022-12-24 22:01:49,613 INFO: Getting source for revision 3b9fed2abecdd6905462c67eb268818756d7ed772022-12-24 22:01:49,614 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:49,614 DEBUG: > git rev-parse --show-toplevel2022-12-24 22:01:49,825 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:49,826 DEBUG: > git submodule foreach --recursive git reset --hard2022-12-24 22:01:50,640 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:50,641 DEBUG: > git reset --hard2022-12-24 22:01:50,954 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:50,955 DEBUG: > git submodule foreach --recursive git clean -dffx2022-12-24 22:01:51,267 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:51,267 DEBUG: > git clean -dffx2022-12-24 22:01:51,379 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:51,379 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com fetch origin2022-12-24 22:01:52,100 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:52,101 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com remote prune origin2022-12-24 22:01:52,714 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:52,715 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com fetch --prune --tags --force origin2022-12-24 22:01:53,328 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:53,329 DEBUG: > git remote set-head origin --auto2022-12-24 22:01:55,149 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:55,153 DEBUG: > git checkout -f 3b9fed2abecdd6905462c67eb268818756d7ed772022-12-24 22:01:56,869 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:56,870 DEBUG: > git clean -dffx2022-12-24 22:01:56,982 INFO: Initialising submodules2022-12-24 22:01:56,982 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:56,983 DEBUG: > git rev-parse --show-toplevel2022-12-24 22:01:59,594 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:01:59,594 DEBUG: > git submodule sync2022-12-24 22:02:00,209 DEBUG: Directory: build/com.github.shadowsocks2022-12-24 22:02:00,210 DEBUG: > git -c core.askpass=/bin/true -c core.sshCommand=/bin/false -c url.https://.insteadOf=ssh:// -c url.https://u:p@bitbucket.org/.insteadOf=git@bitbucket.org: -c url.https://u:p@bitbucket.org.insteadOf=git://bitbucket.org -c url.https://u:p@bitbucket.org.insteadOf=https://bitbucket.org -c url.https://u:p@github.com/.insteadOf=git@github.com: -c url.https://u:p@github.com.insteadOf=git://github.com -c url.https://u:p@github.com.insteadOf=https://github.com -c url.https://u:p@gitlab.com/.insteadOf=git@gitlab.com: -c url.https://u:p@gitlab.com.insteadOf=git://gitlab.com -c url.https://u:p@gitlab.com.insteadOf=https://gitlab.com submodule update --init --force --recursiveSubmodule path 'core/src/main/jni/badvpn': checked out 'fb01eb983915c9a09a690ad44c6028dd87500ec7'Submodule path 'core/src/main/jni/libancillary': checked out '311e5d14f593f16c785bc6605220517eb1f21f6b'Submodule path 'core/src/main/jni/libevent': checked out 'f29f07bc8c43eec96f227e6f6eede32b3af66168'Submodule path 'core/src/main/jni/redsocks': checked out 'd9954892ba96627748efab2901f38d7e20d6d0a2'Submodule path 'core/src/main/rust/shadowsocks-rust': checked out 'e3855b4a8d0b6b1e485341c9bacd69ce60cfcd16'2022-12-24 22:02:01,425 INFO: Collecting source libraries2022-12-24 22:02:01,469 DEBUG: Removing debuggable flags from build/srclib/rustup2022-12-24 22:02:01,506 INFO: Creating local.properties file at build/com.github.shadowsocks/local.properties2022-12-24 22:02:01,507 INFO: Creating local.properties file at build/com.github.shadowsocks/mobile/local.properties2022-12-24 22:02:01,508 DEBUG: Removing debuggable flags from build/com.github.shadowsocks/mobile2022-12-24 22:02:01,511 INFO: Removing specified files2022-12-24 22:02:01,512 INFO: Removing mobile/src/main/java/com/github/shadowsocks/ScannerActivity.kt2022-12-24 22:02:01,512 INFO: Removing core/src/main/jni/badvpn/lwip/test/fuzz/inputs2022-12-24 22:02:01,513 INFO: Removing core/src/main/jni/badvpn/lime2022-12-24 22:02:01,514 INFO: Removing tv2022-12-24 22:02:01,543 INFO: Running 'prebuild' commands in build/com.github.shadowsocks/mobile2022-12-24 22:02:01,543 DEBUG: Directory: build/com.github.shadowsocks/mobile2022-12-24 22:02:01,543 DEBUG: > bash -e -u -o pipefail -x -c -- echo "rust.rustcCommand=$HOME/.cargo/bin/rustc" >> ../local.properties; echo "rust.cargoCommand=$HOME/.cargo/bin/cargo" >> ../local.properties; echo "rust.pythonCommand=/usr/bin/python3" >> ../local.properties; sed -i -e '/gms/d' -e '/firebase/d' ../build.gradle.kts; sed -i -e '/gms/d' -e '/firebase/d' -e '/kotlinx-coroutines-play-services/d' ../core/build.gradle.kts; sed -i -e '/gms/d' -e '/firebase/d' -e '/mlkit/d' -e '/camera/d' build.gradle.kts; pushd ../core/src/main; sed -i -e '/firebase/,/>$/d' -e '/gms/,/>$/d' AndroidManifest.xml; sed -i -E -e '/service_subscription_working/s/%d(.*)%d/%1$d\1%2$d/' res/*/strings.xml; cd java/com/github/shadowsocks; sed -i -e '/firebase/Id' Core.kt bg/BaseService.kt; popd; pushd src/main; sed -i -z -E -e 's/<activity[^<]+ScannerActivity[^>]+>//' AndroidManifest.xml; sed -i -e '/CAMERA/d' AndroidManifest.xml; sed -i -e '/"scan"/,/shortcut>/d' res/xml/shortcuts.xml; sed -i -z -E -e 's/<item[^<]+action_scan_qr_code[^>]+>//' res/menu/profile_manager_menu.xml; cd java/com/github/shadowsocks; sed -i -e '/firebase/Id' MainActivity.kt; sed -i -e '/OssLicensesMenuActivity/d' AboutFragment.kt; sed -i -e '/ScannerActivity/d' -e '/action_scan_qr_code/,/^\s\+}/d' ProfilesFragment.kt; popd; sed -i -e '/isEnable/s/true/false/' ../buildSrc/src/main/kotlin/Helpers.kt/etc/bash.bashrc: line 7: PS1: unbound variable+ echo rust.rustcCommand=/home/vagrant/.cargo/bin/rustc+ echo rust.cargoCommand=/home/vagrant/.cargo/bin/cargo+ echo rust.pythonCommand=/usr/bin/python3+ sed -i -e /gms/d -e /firebase/d ../build.gradle.kts+ sed -i -e /gms/d -e /firebase/d -e /kotlinx-coroutines-play-services/d ../core/build.gradle.kts+ sed -i -e /gms/d -e /firebase/d -e /mlkit/d -e /camera/d build.gradle.kts+ pushd ../core/src/main~/build/com.github.shadowsocks/core/src/main ~/build/com.github.shadowsocks/mobile+ sed -i -e '/firebase/,/>$/d' -e '/gms/,/>$/d' AndroidManifest.xml+ sed -i -E -e '/service_subscription_working/s/%d(.*)%d/%1$d\1%2$d/' res/values-ar/strings.xml res/values-de/strings.xml res/values-es/strings.xml res/values-fa/strings.xml res/values-fr/strings.xml res/values-ja/strings.xml res/values-ko/strings.xml res/values-ru/strings.xml res/values-tr/strings.xml res/values-uk/strings.xml res/values-zh-rCN/strings.xml res/values-zh-rTW/strings.xml res/values/strings.xml+ cd java/com/github/shadowsocks+ sed -i -e /firebase/Id Core.kt bg/BaseService.kt+ popd~/build/com.github.shadowsocks/mobile+ pushd src/main~/build/com.github.shadowsocks/mobile/src/main ~/build/com.github.shadowsocks/mobile+ sed -i -z -E -e 's/<activity[^<]+ScannerActivity[^>]+>//' AndroidManifest.xml+ sed -i -e /CAMERA/d AndroidManifest.xml+ sed -i -e '/"scan"/,/shortcut>/d' res/xml/shortcuts.xml+ sed -i -z -E -e 's/<item[^<]+action_scan_qr_code[^>]+>//' res/menu/profile_manager_menu.xml+ cd java/com/github/shadowsocks+ sed -i -e /firebase/Id MainActivity.kt+ sed -i -e /OssLicensesMenuActivity/d AboutFragment.kt+ sed -i -e /ScannerActivity/d -e '/action_scan_qr_code/,/^\s\+}/d' ProfilesFragment.kt+ popd~/build/com.github.shadowsocks/mobile+ sed -i -e /isEnable/s/true/false/ ../buildSrc/src/main/kotlin/Helpers.kt2022-12-24 22:02:01,753 INFO: Cleaning Gradle project...2022-12-24 22:02:01,754 DEBUG: Directory: build/com.github.shadowsocks/mobile2022-12-24 22:02:01,755 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid cleanFound 7.6 via distributionUrlDownloading missing gradle version 7.6cachedir /home/vagrant/.cache/fdroidserver/home/vagrant/.cache/fdroidserver/gradle-7.6-bin.zip: OKRunning /opt/gradle/versions/7.6/bin/gradle cleanWelcome to Gradle 7.6!Here are the highlights of this release:- Added support for Java 19.- Introduced `--rerun` flag for individual task rerun.- Improved dependency block for test suites to be strongly typed.- Added a pluggable system for Java toolchains provisioning.For more details see https://docs.gradle.org/7.6/release-notes.htmlTo honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.6/userguide/gradle_daemon.html#sec:disabling_the_daemon.Daemon will be stopped at the end of the build> Task :buildSrc:pluginDescriptors> Task :buildSrc:processResources NO-SOURCE> Task :buildSrc:processTestResources NO-SOURCE> Task :buildSrc:compileKotlinw: /home/vagrant/build/com.github.shadowsocks/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/buildSrc/src/main/kotlin/Helpers.kt: (117, 65): 'VariantOutput' is deprecated. Deprecated in Java> Task :buildSrc:compileJava NO-SOURCE> Task :buildSrc:compileGroovy NO-SOURCE> Task :buildSrc:classes UP-TO-DATE> Task :buildSrc:inspectClassesForKotlinIC> Task :buildSrc:jar:jar: No valid plugin descriptors were found in META-INF/gradle-plugins> Task :buildSrc:assemble> Task :buildSrc:compileTestKotlin NO-SOURCE> Task :buildSrc:compileTestJava NO-SOURCE> Task :buildSrc:compileTestGroovy NO-SOURCE> Task :buildSrc:pluginUnderTestMetadata> Task :buildSrc:testClasses UP-TO-DATE> Task :buildSrc:test NO-SOURCE> Task :buildSrc:validatePlugins> Task :buildSrc:check> Task :buildSrc:build> Configure project :coreWARNING:The option setting 'android.enableResourceOptimizations=false' is deprecated.The current default is 'true'.It will be removed in version 8.0 of the Android Gradle plugin.Warning: No match found for [DefaultTaskExecutionRequest{args=[clean],projectPath='null',rootDir='null'}][CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir> Configure project :mobileWarning: No match found for [DefaultTaskExecutionRequest{args=[clean],projectPath='null',rootDir='null'}]> Configure project :pluginWARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.> Task :mobile:clean UP-TO-DATEDeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 3m 9s7 actionable tasks: 6 executed, 1 up-to-date2022-12-24 22:05:20,497 INFO: Scanning source for common problems...2022-12-24 22:05:20,509 DEBUG: scanner is configured to use signature data from: 'suss'2022-12-24 22:05:20,705 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar2022-12-24 22:05:20,706 INFO: Creating source tarball...2022-12-24 22:05:23,529 INFO: Running 'build' commands in build/com.github.shadowsocks/mobile2022-12-24 22:05:23,530 DEBUG: Directory: build/com.github.shadowsocks/mobile2022-12-24 22:05:23,530 DEBUG: > bash -e -u -o pipefail -x -c /home/vagrant/build/srclib/rustup/rustup-init.sh -y; source $HOME/.cargo/env; rustup default 1.65.0; cd ../core/src/main/rust/shadowsocks-rust; rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android/etc/bash.bashrc: line 7: PS1: unbound variable+ /home/vagrant/build/srclib/rustup/rustup-init.sh -yinfo: downloading installerinfo: profile set to 'default'info: default host triple is x86_64-unknown-linux-gnuinfo: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'info: latest update on 2022-12-15, rust version 1.66.0 (69f9c33d7 2022-12-12)info: downloading component 'cargo'info: downloading component 'clippy'info: downloading component 'rust-docs'info: downloading component 'rust-std'info: downloading component 'rustc'info: downloading component 'rustfmt'info: installing component 'cargo'info: installing component 'clippy'info: installing component 'rust-docs'info: installing component 'rust-std'info: installing component 'rustc'info: installing component 'rustfmt'info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'stable-x86_64-unknown-linux-gnu installed - rustc 1.66.0 (69f9c33d7 2022-12-12)Rust is installed now. Great!To get started you may need to restart your current shell.This would reload your PATH environment variable to includeCargo's bin directory ($HOME/.cargo/bin).To configure your current shell, run:source "$HOME/.cargo/env"+ source /home/vagrant/.cargo/env++ case ":${PATH}:" in++ export PATH=/home/vagrant/.cargo/bin:/opt/android-sdk/ndk/21.4.7075529:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/gradle/bin++ PATH=/home/vagrant/.cargo/bin:/opt/android-sdk/ndk/21.4.7075529:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/gradle/bin+ rustup default 1.65.0info: syncing channel updates for '1.65.0-x86_64-unknown-linux-gnu'info: latest update on 2022-11-03, rust version 1.65.0 (897e37553 2022-11-02)info: downloading component 'cargo'info: downloading component 'clippy'info: downloading component 'rust-docs'info: downloading component 'rust-std'info: downloading component 'rustc'info: downloading component 'rustfmt'info: installing component 'cargo'info: installing component 'clippy'info: installing component 'rust-docs'info: installing component 'rust-std'info: installing component 'rustc'info: installing component 'rustfmt'info: default toolchain set to '1.65.0-x86_64-unknown-linux-gnu'1.65.0-x86_64-unknown-linux-gnu installed - rustc 1.65.0 (897e37553 2022-11-02)+ cd ../core/src/main/rust/shadowsocks-rust+ rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-androidinfo: downloading component 'rust-std' for 'armv7-linux-androideabi'info: installing component 'rust-std' for 'armv7-linux-androideabi'info: downloading component 'rust-std' for 'aarch64-linux-android'info: installing component 'rust-std' for 'aarch64-linux-android'info: downloading component 'rust-std' for 'i686-linux-android'info: installing component 'rust-std' for 'i686-linux-android'info: downloading component 'rust-std' for 'x86_64-linux-android'info: installing component 'rust-std' for 'x86_64-linux-android'2022-12-24 22:07:24,662 INFO: Building Gradle project...2022-12-24 22:07:24,663 DEBUG: Directory: build/com.github.shadowsocks/mobile2022-12-24 22:07:24,663 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid assembleReleaseFound 7.6 via distributionUrlRunning /opt/gradle/versions/7.6/bin/gradle assembleReleaseTo honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.6/userguide/gradle_daemon.html#sec:disabling_the_daemon.Daemon will be stopped at the end of the build> Task :buildSrc:pluginDescriptors> Task :buildSrc:processResources NO-SOURCE> Task :buildSrc:processTestResources NO-SOURCE> Task :buildSrc:compileKotlinw: /home/vagrant/build/com.github.shadowsocks/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/buildSrc/src/main/kotlin/Helpers.kt: (117, 65): 'VariantOutput' is deprecated. Deprecated in Java> Task :buildSrc:compileJava NO-SOURCE> Task :buildSrc:compileGroovy NO-SOURCE> Task :buildSrc:classes UP-TO-DATE> Task :buildSrc:inspectClassesForKotlinIC> Task :buildSrc:jar:jar: No valid plugin descriptors were found in META-INF/gradle-plugins> Task :buildSrc:assemble> Task :buildSrc:compileTestKotlin NO-SOURCE> Task :buildSrc:compileTestJava NO-SOURCE> Task :buildSrc:compileTestGroovy NO-SOURCE> Task :buildSrc:pluginUnderTestMetadata> Task :buildSrc:testClasses UP-TO-DATE> Task :buildSrc:test NO-SOURCE> Task :buildSrc:validatePlugins> Task :buildSrc:check> Task :buildSrc:build> Configure project :coreWARNING:The option setting 'android.enableResourceOptimizations=false' is deprecated.The current default is 'true'.It will be removed in version 8.0 of the Android Gradle plugin.[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirWARNING:[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir> Configure project :pluginWARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.Exception while marshalling /opt/android-sdk/platforms/android-10/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-11/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-12/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-13/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-14/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-15/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-16/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-17/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-18/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-19/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-20/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-21/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-22/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-23/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-24/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-25/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-26/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-27/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-28/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-29/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-30/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-31/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-32/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-33/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-10/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-11/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-12/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-13/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-14/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-15/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-16/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-17/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-18/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-19/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-20/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-21/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-22/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-23/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-24/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-25/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-26/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-27/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-28/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-29/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-30/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-31/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-32/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-33/package.xml. Probably the SDK is read-onlyChecking the license for package Android SDK Build-Tools 33.0.1 in /opt/android-sdk/licensesLicense for package Android SDK Build-Tools 33.0.1 accepted.Preparing "Install Android SDK Build-Tools 33.0.1 (revision: 33.0.1)"."Install Android SDK Build-Tools 33.0.1 (revision: 33.0.1)" ready.Installing Android SDK Build-Tools 33.0.1 in /opt/android-sdk/build-tools/33.0.1"Install Android SDK Build-Tools 33.0.1 (revision: 33.0.1)" complete."Install Android SDK Build-Tools 33.0.1 (revision: 33.0.1)" finished.Exception while marshalling /opt/android-sdk/platforms/android-10/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-11/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-12/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-13/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-14/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-15/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-16/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-17/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-18/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-19/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-20/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-21/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-22/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-23/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-24/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-25/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-26/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-27/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-28/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-29/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-30/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-31/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-32/package.xml. Probably the SDK is read-onlyException while marshalling /opt/android-sdk/platforms/android-33/package.xml. Probably the SDK is read-only> Task :core:preBuild UP-TO-DATE> Task :core:preReleaseBuild UP-TO-DATE> Task :plugin:preBuild UP-TO-DATE> Task :plugin:preReleaseBuild UP-TO-DATE> Task :plugin:compileReleaseAidl NO-SOURCE> Task :core:compileReleaseAidl> Task :core:configureNdkBuildRelease[arm64-v8a]> Task :core:buildNdkBuildRelease[arm64-v8a]C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]C/C++:         arc4random_addrandom((unsigned char*)buf,C/C++:         ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warningC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:            (                                                          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:                      ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 4 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]C/C++:                 error = pipe2(&pump->request.read, O_NONBLOCK);C/C++:                         ^C/C++: 1 warning generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:450:63: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]C/C++:         if ((sock2 = accept(sock, (struct sockaddr *)&remote, &t)) == -1) {C/C++:                                                               ^~C/C++: /opt/android-sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/socket.h:301:71: note: passing argument to parameter '__addr_length' hereC/C++: __socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);C/C++:                                                                       ^C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warningC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:            (                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:                 ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         } while (p = p->next);C/C++:                  ~~^~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warningC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                  (          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparisonC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                    ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)C/C++:                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 14 warnings generated.> Task :core:configureNdkBuildRelease[armeabi-v7a]> Task :core:buildNdkBuildRelease[armeabi-v7a]C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]C/C++:         arc4random_addrandom((unsigned char*)buf,C/C++:         ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]C/C++:                 error = pipe2(&pump->request.read, O_NONBLOCK);C/C++:                         ^C/C++: 1 warning generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warningC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:            (                                                          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:                      ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 4 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warningC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:            (                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:                 ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         } while (p = p->next);C/C++:                  ~~^~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warningC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                  (          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparisonC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                    ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)C/C++:                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 13 warnings generated.> Task :core:configureNdkBuildRelease[x86]> Task :core:buildNdkBuildRelease[x86]C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]C/C++:         arc4random_addrandom((unsigned char*)buf,C/C++:         ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warningC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:            (                                                          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:                      ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 4 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]C/C++:                 error = pipe2(&pump->request.read, O_NONBLOCK);C/C++:                         ^C/C++: 1 warning generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warningC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:            (                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:                 ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         } while (p = p->next);C/C++:                  ~~^~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warningC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                  (          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparisonC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                    ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)C/C++:                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 13 warnings generated.> Task :core:configureNdkBuildRelease[x86_64]> Task :core:buildNdkBuildRelease[x86_64]C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/libevent/evutil_rand.c:198:2: warning: implicit declaration of function 'arc4random_addrandom' is invalid in C99 [-Wimplicit-function-declaration]C/C++:         arc4random_addrandom((unsigned char*)buf,C/C++:         ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:87:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: place parentheses around the assignment to silence this warningC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:            (                                                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:130:18: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (timer = (ref = BReactor__TimersTree_GetFirst(&bsys->timers_tree, 0)).link) {C/C++:                  ^C/C++:                  ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:183:56: warning: taking address of packed member 'data' of class or structure 'epoll_event' may result in an unaligned pointer value [-Waddress-of-packed-member]C/C++:         bfd->epoll_returned_ptr = (BFileDescriptor **)&event->data.ptr;C/C++:                                                        ^~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: place parentheses around the assignment to silence this warningC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:            (                                                          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:544:22: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (list_node = LinkedList1_GetFirst(&bsys->active_limits_list)) {C/C++:                      ^C/C++:                      ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/system/BReactor_badvpn.c:1021:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 5 warnings generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/redsocks/redsocks.c:625:11: warning: implicit declaration of function 'pipe2' is invalid in C99 [-Wimplicit-function-declaration]C/C++:                 error = pipe2(&pump->request.read, O_NONBLOCK);C/C++:                         ^C/C++: 1 warning generated.C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/flow/PacketPassFairQueue.c:174:20: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(res)C/C++:                    ^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 1 warning generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: 10 warnings generated.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:353:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:356:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = n1->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:360:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = n1->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[!side] = c) {C/C++:             ~~~~~~~~~~~~~~~~^~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:             (                  )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:368:29: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[!side] = c) {C/C++:                             ^C/C++:                             ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->parent = n2->parent) {C/C++:             ~~~~~~~~~~~^~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:             (                      )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:376:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->parent = n2->parent) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->parent = temp) {C/C++:             ~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:             (                )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:381:24: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->parent = temp) {C/C++:                        ^C/C++:                        ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[0] = n2->link[0]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:389:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[0] = n2->link[0]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[0] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:392:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[0] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n1->link[1] = n2->link[1]) {C/C++:             ~~~~~~~~~~~~^~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:             (                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:398:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n1->link[1] = n2->link[1]) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         if (n2->link[1] = temp) {C/C++:             ~~~~~~~~~~~~^~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: place parentheses around the assignment to silence this warningC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:             (                 )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/structure/BAVL.h:401:25: note: use '==' to turn this assignment into an equality comparisonC/C++:         if (n2->link[1] = temp) {C/C++:                         ^C/C++:                         ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:450:63: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]C/C++:         if ((sock2 = accept(sock, (struct sockaddr *)&remote, &t)) == -1) {C/C++:                                                               ^~C/C++: /opt/android-sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/socket.h:301:71: note: passing argument to parameter '__addr_length' hereC/C++: __socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);C/C++:                                                                       ^C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: place parentheses around the assignment to silence this warningC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:            (                                        )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:676:17: note: use '==' to turn this assignment into an equality comparisonC/C++:     while (node = LinkedList1_GetFirst(&tcp_clients)) {C/C++:                 ^C/C++:                 ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]C/C++:         } while (p = p->next);C/C++:                  ~~^~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: place parentheses around the assignment to silence this warningC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                  (          )C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1592:20: note: use '==' to turn this assignment into an equality comparisonC/C++:         } while (p = p->next);C/C++:                    ^C/C++:                    ==C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/tun2socks/tun2socks.c:1924:88: warning: expression result unused [-Wunused-value]C/C++:     ASSERT_EXECUTE(pbuf_copy_partial(p, client->buf + client->buf_used, p->tot_len, 0) == p->tot_len)C/C++:                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~C/C++: /home/vagrant/build/com.github.shadowsocks/core/src/main/jni/badvpn/misc/debug.h:116:34: note: expanded from macro 'ASSERT_EXECUTE'C/C++:     #define ASSERT_EXECUTE(e) { (e); }C/C++:                                  ^C/C++: 14 warnings generated.> Task :plugin:mergeReleaseJniLibFolders> Task :plugin:mergeReleaseNativeLibs NO-SOURCE> Task :plugin:copyReleaseJniLibsProjectOnly> Task :generateLinkerWrapper> Task :core:externalNativeBuildRelease> Task :core:cargoBuildArm[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirPython 3 detected.Updating crates.io indexDownloading crates ...Downloaded block-buffer v0.10.3Downloaded ctr v0.9.2Downloaded ecdsa v0.14.8Downloaded arrayvec v0.7.2Downloaded heck v0.4.0Downloaded lock_api v0.4.9Downloaded mio v0.8.5Downloaded opaque-debug v0.3.0Downloaded rand v0.8.5Downloaded pin-project-lite v0.2.9Downloaded serde v1.0.151Downloaded serde_json v1.0.89Downloaded spin v0.5.2Downloaded slab v0.4.7Downloaded spin v0.9.4Downloaded untrusted v0.7.1Downloaded walkdir v2.3.2Downloaded xdg v2.4.1Downloaded cpufeatures v0.2.5Downloaded num-integer v0.1.45Downloaded zeroize v1.5.7Downloaded universal-hash v0.5.0Downloaded serde_urlencoded v0.7.1Downloaded serde_derive v1.0.151Downloaded strsim v0.10.0Downloaded ryu v1.0.11Downloaded version_check v0.9.4Downloaded tracing-attributes v0.1.23Downloaded humantime v2.1.0Downloaded clap_lex v0.3.0Downloaded syn v1.0.105Downloaded tracing-core v0.1.30Downloaded hashbrown v0.12.3Downloaded dirs v4.0.0Downloaded thread-id v4.0.0Downloaded pest_meta v2.5.1Downloaded url v2.3.1Downloaded rpassword v7.2.0Downloaded sysexits v0.3.4Downloaded lru-cache v0.1.2Downloaded log-mdc v0.1.0Downloaded resolv-conf v0.7.0Downloaded log4rs v1.2.0Downloaded pest_generator v2.5.1Downloaded scopeguard v1.1.0Downloaded yaml-rust v0.4.5Downloaded tracing v0.1.37Downloaded rtoolbox v0.0.1Downloaded der v0.6.1Downloaded sendfd v0.4.3Downloaded shadowsocks-crypto v0.5.1Downloaded rustix v0.36.5Downloaded unsafe-any-ors v1.0.0Downloaded libc v0.2.138Downloaded aes-gcm-siv v0.11.1Downloaded ring-compat v0.5.1Downloaded termcolor v1.1.3Downloaded ring v0.16.20Downloaded blake3 v1.3.3Downloaded regex-syntax v0.6.28Downloaded tokio-tfo v0.2.0Downloaded pest v2.5.1Downloaded trust-dns-proto v0.22.0Downloaded build-time v0.1.2Downloaded typenum v1.16.0Downloaded parking_lot_core v0.9.5Downloaded unicode-ident v1.0.5Downloaded tinyvec v1.6.0Downloaded serde_yaml v0.8.26Downloaded parking_lot v0.12.1Downloaded p384 v0.11.2Downloaded trust-dns-resolver v0.22.0Downloaded tokio v1.23.0Downloaded clap v4.0.29Downloaded ccm v0.5.0Downloaded rand_core v0.6.4Downloaded rand_chacha v0.3.1Downloaded proc-macro2 v1.0.47Downloaded once_cell v1.16.0Downloaded os_str_bytes v6.4.1Downloaded typemap-ors v1.0.0Downloaded iprange v0.6.7Downloaded ppv-lite86 v0.2.17Downloaded p256 v0.11.1Downloaded num_cpus v1.14.0Downloaded destructure_traitobject v0.2.0Downloaded chacha20poly1305 v0.10.1Downloaded data-encoding v2.3.3Downloaded json5 v0.4.1Downloaded chacha20 v0.9.0Downloaded quick-error v1.2.3Downloaded inotify-sys v0.1.5Downloaded constant_time_eq v0.2.4Downloaded match_cfg v0.1.0Downloaded lru_time_cache v0.11.11Downloaded byte_string v1.0.0Downloaded md-5 v0.10.5Downloaded daemonize v0.4.1Downloaded const-oid v0.9.1Downloaded poly1305 v0.8.0Downloaded hostname v0.3.1Downloaded pest_derive v2.5.1Downloaded memchr v2.5.0Downloaded enum-as-inner v0.5.1Downloaded matches v0.1.9Downloaded linux-raw-sys v0.1.4Downloaded boxfnonce v0.1.1Downloaded cfg-if v1.0.0Downloaded log v0.4.17Downloaded io-lifetimes v1.0.3Downloaded directories v4.0.1Downloaded crypto-bigint v0.4.9Downloaded arc-swap v1.5.1Downloaded bitflags v1.3.2Downloaded autocfg v1.1.0Downloaded arrayref v0.3.6Downloaded base64ct v1.5.3Downloaded base16ct v0.1.1Downloaded aho-corasick v0.7.20Downloaded async-trait v0.1.59Downloaded signal-hook-registry v1.4.0Downloaded pin-project v1.0.12Downloaded percent-encoding v2.2.0Downloaded crossbeam-channel v0.5.6Downloaded hmac v0.12.1Downloaded digest v0.10.6Downloaded bytes v1.3.0Downloaded itoa v1.0.4Downloaded is-terminal v0.4.1Downloaded derivative v2.2.0Downloaded crossbeam-utils v0.8.14Downloaded base64 v0.13.1Downloaded anyhow v1.0.66Downloaded android_system_properties v0.1.5Downloaded crypto-common v0.1.6Downloaded terminal_size v0.2.3Downloaded subtle v2.4.1Downloaded regex v1.7.0Downloaded idna v0.2.3Downloaded notify v5.0.0Downloaded chrono v0.4.23Downloaded aes v0.8.2Downloaded aead v0.5.1Downloaded cc v1.0.78Downloaded aes-gcm v0.10.1Downloaded ucd-trie v0.1.5Downloaded cipher v0.4.3Downloaded byteorder v1.4.3Downloaded tokio-macros v1.8.2Downloaded unicode-normalization v0.1.22Downloaded unicode-bidi v0.3.8Downloaded tinyvec_macros v0.1.0Downloaded time v0.1.45Downloaded thiserror-impl v1.0.37Downloaded thiserror v1.0.37Downloaded spki v0.6.0Downloaded socket2 v0.4.7Downloaded futures-io v0.3.25Downloaded signature v1.6.4Downloaded sha1 v0.10.5Downloaded ordered-float v2.10.0Downloaded polyval v0.6.0Downloaded ipnet v2.7.0Downloaded smallvec v1.10.0Downloaded serde-value v0.7.0Downloaded linked-hash-map v0.5.6Downloaded lazy_static v1.4.0Downloaded inotify v0.9.6Downloaded indexmap v1.9.2Downloaded idna v0.3.0Downloaded sec1 v0.3.0Downloaded iana-time-zone v0.1.53Downloaded futures v0.3.25Downloaded same-file v1.0.6Downloaded pkcs8 v0.9.0Downloaded getrandom v0.2.8Downloaded generic-array v0.14.6Downloaded futures-util v0.3.25Downloaded pin-project-internal v1.0.12Downloaded futures-task v0.3.25Downloaded futures-sink v0.3.25Downloaded futures-macro v0.3.25Downloaded futures-core v0.3.25Downloaded futures-channel v0.3.25Downloaded form_urlencoded v1.1.0Downloaded filetime v0.2.19Downloaded elliptic-curve v0.12.3Downloaded quote v1.0.21Downloaded pin-utils v0.1.0Downloaded num-traits v0.2.15Downloaded hkdf v0.12.3Downloaded fnv v1.0.7Downloaded errno v0.2.8Downloaded ed25519 v1.5.2Downloaded dirs-sys v0.3.7Downloaded inout v0.1.3Downloaded ghash v0.5.0Downloaded futures-executor v0.3.25Downloading crates ...Downloaded env_logger v0.10.0Compiling libc v0.2.138Compiling proc-macro2 v1.0.47Compiling quote v1.0.21Compiling cfg-if v1.0.0Compiling unicode-ident v1.0.5Compiling syn v1.0.105Compiling autocfg v1.1.0Compiling typenum v1.16.0Compiling version_check v0.9.4Compiling serde_derive v1.0.151Compiling serde v1.0.151Compiling subtle v2.4.1Compiling thiserror v1.0.37Compiling memchr v2.5.0Compiling scopeguard v1.1.0Compiling parking_lot_core v0.9.5Compiling log v0.4.17Compiling futures-core v0.3.25Compiling zeroize v1.5.7Compiling pin-project-lite v0.2.9Compiling smallvec v1.10.0Compiling futures-channel v0.3.25Compiling futures-task v0.3.25Compiling futures-util v0.3.25Compiling opaque-debug v0.3.0Compiling tinyvec_macros v0.1.0Compiling futures-sink v0.3.25Compiling tinyvec v1.6.0Compiling bytes v1.3.0Compiling futures-io v0.3.25Compiling pin-utils v0.1.0Compiling unicode-bidi v0.3.8Compiling generic-array v0.14.6Compiling ppv-lite86 v0.2.17Compiling percent-encoding v2.2.0Compiling lock_api v0.4.9Compiling slab v0.4.7Compiling num-integer v0.1.45Compiling tokio v1.23.0Compiling num-traits v0.2.15Compiling bitflags v1.3.2Compiling linked-hash-map v0.5.6Compiling cc v1.0.78Compiling form_urlencoded v1.1.0Compiling io-lifetimes v1.0.3Compiling crossbeam-utils v0.8.14Compiling async-trait v0.1.59Compiling once_cell v1.16.0Compiling ucd-trie v0.1.5Compiling ryu v1.0.11Compiling matches v0.1.9Compiling tracing-core v0.1.30Compiling match_cfg v0.1.0Compiling serde_json v1.0.89Compiling itoa v1.0.4Compiling heck v0.4.0Compiling rustix v0.36.5Compiling ipnet v2.7.0Compiling indexmap v1.9.2Compiling data-encoding v2.3.3Compiling linux-raw-sys v0.1.4Compiling arrayref v0.3.6Compiling same-file v1.0.6Compiling quick-error v1.2.3Compiling lazy_static v1.4.0Compiling constant_time_eq v0.2.4Compiling arrayvec v0.7.2Compiling getrandom v0.2.8Compiling socket2 v0.4.7Compiling num_cpus v1.14.0Compiling signal-hook-registry v1.4.0Compiling hostname v0.3.1Compiling unicode-normalization v0.1.22Compiling errno v0.2.8Compiling resolv-conf v0.7.0Compiling rand_core v0.6.4Compiling crossbeam-channel v0.5.6Compiling filetime v0.2.19Compiling android_system_properties v0.1.5Compiling dirs-sys v0.3.7Compiling parking_lot v0.12.1Compiling rand_chacha v0.3.1Compiling walkdir v2.3.2Compiling blake3 v1.3.3Compiling lru-cache v0.1.2Compiling destructure_traitobject v0.2.0Compiling anyhow v1.0.66Compiling rand v0.8.5Compiling arc-swap v1.5.1Compiling hashbrown v0.12.3Compiling notify v5.0.0Compiling idna v0.3.0Compiling crypto-common v0.1.6Compiling inout v0.1.3Compiling block-buffer v0.10.3Compiling idna v0.2.3Compiling universal-hash v0.5.0Compiling aead v0.5.1Compiling ordered-float v2.10.0Compiling cipher v0.4.3Compiling digest v0.10.6Compiling polyval v0.6.0Compiling poly1305 v0.8.0Compiling time v0.1.45Compiling unsafe-any-ors v1.0.0Compiling iana-time-zone v0.1.53Compiling ctr v0.9.2Compiling aes v0.8.2Compiling ghash v0.5.0Compiling chacha20 v0.9.0Compiling hmac v0.12.1Compiling sha1 v0.10.5Compiling md-5 v0.10.5Compiling chacha20poly1305 v0.10.1Compiling ccm v0.5.0Compiling spin v0.9.4Compiling hkdf v0.12.3Compiling aes-gcm-siv v0.11.1Compiling aes-gcm v0.10.1Compiling yaml-rust v0.4.5Compiling aho-corasick v0.7.20Compiling byte_string v1.0.0Compiling base64 v0.13.1Compiling regex-syntax v0.6.28Compiling os_str_bytes v6.4.1Compiling lru_time_cache v0.11.11Compiling shadowsocks-crypto v0.5.1Compiling chrono v0.4.23Compiling terminal_size v0.2.3Compiling is-terminal v0.4.1Compiling typemap-ors v1.0.0Compiling dirs v4.0.0Compiling thread-id v4.0.0Compiling rtoolbox v0.0.1Compiling iprange v0.6.7Compiling clap_lex v0.3.0Compiling boxfnonce v0.1.1Compiling log-mdc v0.1.0Compiling fnv v1.0.7Compiling strsim v0.10.0Compiling termcolor v1.1.3Compiling byteorder v1.4.3Compiling humantime v2.1.0Compiling rpassword v7.2.0Compiling daemonize v0.4.1Compiling xdg v2.4.1Compiling directories v4.0.1Compiling sysexits v0.3.4Compiling clap v4.0.29Compiling regex v1.7.0Compiling thiserror-impl v1.0.37Compiling futures-macro v0.3.25Compiling tokio-macros v1.8.2Compiling tracing-attributes v0.1.23Compiling pin-project-internal v1.0.12Compiling enum-as-inner v0.5.1Compiling derivative v2.2.0Compiling build-time v0.1.2Compiling pin-project v1.0.12Compiling tracing v0.1.37Compiling pest v2.5.1Compiling pest_meta v2.5.1Compiling pest_generator v2.5.1Compiling pest_derive v2.5.1Compiling futures-executor v0.3.25Compiling futures v0.3.25Compiling url v2.3.1Compiling serde_urlencoded v0.7.1Compiling serde-value v0.7.0Compiling serde_yaml v0.8.26Compiling json5 v0.4.1Compiling mio v0.8.5Compiling log4rs v1.2.0Compiling trust-dns-proto v0.22.0Compiling tokio-tfo v0.2.0Compiling sendfd v0.4.3Compiling trust-dns-resolver v0.22.0Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.1 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 4m 28s> Task :core:cargoBuildArm64[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirPython 3 detected.Compiling libc v0.2.138Compiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling zeroize v1.5.7Compiling const-oid v0.9.1Compiling scopeguard v1.1.0Compiling pin-project-lite v0.2.9Compiling typenum v1.16.0Compiling serde v1.0.151Compiling memchr v2.5.0Compiling log v0.4.17Compiling futures-core v0.3.25Compiling generic-array v0.14.6Compiling lock_api v0.4.9Compiling parking_lot_core v0.9.5Compiling smallvec v1.10.0Compiling opaque-debug v0.3.0Compiling futures-task v0.3.25Compiling futures-channel v0.3.25Compiling slab v0.4.7Compiling base16ct v0.1.1Compiling futures-sink v0.3.25Compiling tinyvec_macros v0.1.0Compiling futures-util v0.3.25Compiling thiserror v1.0.37Compiling bytes v1.3.0Compiling pin-utils v0.1.0Compiling futures-io v0.3.25Compiling tinyvec v1.6.0Compiling tokio v1.23.0Compiling der v0.6.1Compiling percent-encoding v2.2.0Compiling linked-hash-map v0.5.6Compiling unicode-bidi v0.3.8Compiling ppv-lite86 v0.2.17Compiling bitflags v1.3.2Compiling num-traits v0.2.15Compiling ring v0.16.20Compiling form_urlencoded v1.1.0Compiling once_cell v1.16.0Compiling ryu v1.0.11Compiling base64ct v1.5.3Compiling crossbeam-utils v0.8.14Compiling io-lifetimes v1.0.3Compiling matches v0.1.9Compiling itoa v1.0.4Compiling match_cfg v0.1.0Compiling untrusted v0.7.1Compiling tracing-core v0.1.30Compiling ipnet v2.7.0Compiling spin v0.5.2Compiling serde_json v1.0.89Compiling rustix v0.36.5Compiling blake3 v1.3.3Compiling linux-raw-sys v0.1.4Compiling constant_time_eq v0.2.4Compiling quick-error v1.2.3Compiling arrayvec v0.7.2Compiling arrayref v0.3.6Compiling lazy_static v1.4.0Compiling data-encoding v2.3.3Compiling same-file v1.0.6Compiling indexmap v1.9.2Compiling pin-project v1.0.12Compiling lru-cache v0.1.2Compiling walkdir v2.3.2Compiling num-integer v0.1.45Compiling hashbrown v0.12.3Compiling destructure_traitobject v0.2.0Compiling ucd-trie v0.1.5Compiling spki v0.6.0Compiling tracing v0.1.37Compiling crossbeam-channel v0.5.6Compiling getrandom v0.2.8Compiling rand_core v0.6.4Compiling cpufeatures v0.2.5Compiling unicode-normalization v0.1.22Compiling num_cpus v1.14.0Compiling parking_lot v0.12.1Compiling signal-hook-registry v1.4.0Compiling socket2 v0.4.7Compiling hostname v0.3.1Compiling errno v0.2.8Compiling pkcs8 v0.9.0Compiling dirs-sys v0.3.7Compiling signature v1.6.4Compiling rand_chacha v0.3.1Compiling resolv-conf v0.7.0Compiling android_system_properties v0.1.5Compiling ed25519 v1.5.2Compiling filetime v0.2.19Compiling arc-swap v1.5.1Compiling crypto-common v0.1.6Compiling block-buffer v0.10.3Compiling inout v0.1.3Compiling universal-hash v0.5.0Compiling aead v0.5.1Compiling crypto-bigint v0.4.9Compiling digest v0.10.6Compiling cipher v0.4.3Compiling sec1 v0.3.0Compiling polyval v0.6.0Compiling rand v0.8.5Compiling poly1305 v0.8.0Compiling ordered-float v2.10.0Compiling idna v0.3.0Compiling ghash v0.5.0Compiling ctr v0.9.2Compiling aes v0.8.2Compiling chacha20 v0.9.0Compiling hmac v0.12.1Compiling idna v0.2.3Compiling md-5 v0.10.5Compiling hkdf v0.12.3Compiling ccm v0.5.0Compiling chacha20poly1305 v0.10.1Compiling sha1 v0.10.5Compiling notify v5.0.0Compiling aes-gcm v0.10.1Compiling aes-gcm-siv v0.11.1Compiling anyhow v1.0.66Compiling iana-time-zone v0.1.53Compiling time v0.1.45Compiling pest v2.5.1Compiling unsafe-any-ors v1.0.0Compiling spin v0.9.4Compiling yaml-rust v0.4.5Compiling aho-corasick v0.7.20Compiling elliptic-curve v0.12.3Compiling regex-syntax v0.6.28Compiling lru_time_cache v0.11.11Compiling byte_string v1.0.0Compiling base64 v0.13.1Compiling ecdsa v0.14.8Compiling os_str_bytes v6.4.1Compiling chrono v0.4.23Compiling typemap-ors v1.0.0Compiling is-terminal v0.4.1Compiling terminal_size v0.2.3Compiling dirs v4.0.0Compiling p384 v0.11.2Compiling url v2.3.1Compiling p256 v0.11.1Compiling serde_urlencoded v0.7.1Compiling serde-value v0.7.0Compiling serde_yaml v0.8.26Compiling clap_lex v0.3.0Compiling thread-id v4.0.0Compiling rtoolbox v0.0.1Compiling iprange v0.6.7Compiling mio v0.8.5Compiling futures-executor v0.3.25Compiling fnv v1.0.7Compiling byteorder v1.4.3Compiling boxfnonce v0.1.1Compiling humantime v2.1.0Compiling strsim v0.10.0Compiling futures v0.3.25Compiling log-mdc v0.1.0Compiling json5 v0.4.1Compiling termcolor v1.1.3Compiling daemonize v0.4.1Compiling rpassword v7.2.0Compiling xdg v2.4.1Compiling directories v4.0.1Compiling sysexits v0.3.4Compiling clap v4.0.29Compiling log4rs v1.2.0Compiling regex v1.7.0Compiling trust-dns-proto v0.22.0Compiling tokio-tfo v0.2.0Compiling sendfd v0.4.3Compiling trust-dns-resolver v0.22.0Compiling ring-compat v0.5.1Compiling shadowsocks-crypto v0.5.1Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.1 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 3m 38s> Task :core:cargoBuildX86[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirPython 3 detected.Compiling libc v0.2.138Compiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling cpufeatures v0.2.5Compiling pin-project-lite v0.2.9Compiling zeroize v1.5.7Compiling scopeguard v1.1.0Compiling typenum v1.16.0Compiling serde v1.0.151Compiling memchr v2.5.0Compiling futures-core v0.3.25Compiling log v0.4.17Compiling generic-array v0.14.6Compiling lock_api v0.4.9Compiling parking_lot_core v0.9.5Compiling smallvec v1.10.0Compiling slab v0.4.7Compiling futures-channel v0.3.25Compiling futures-task v0.3.25Compiling futures-sink v0.3.25Compiling tinyvec_macros v0.1.0Compiling opaque-debug v0.3.0Compiling futures-util v0.3.25Compiling thiserror v1.0.37Compiling pin-utils v0.1.0Compiling bytes v1.3.0Compiling futures-io v0.3.25Compiling tokio v1.23.0Compiling unicode-bidi v0.3.8Compiling tinyvec v1.6.0Compiling linked-hash-map v0.5.6Compiling ppv-lite86 v0.2.17Compiling percent-encoding v2.2.0Compiling bitflags v1.3.2Compiling num-traits v0.2.15Compiling ryu v1.0.11Compiling once_cell v1.16.0Compiling io-lifetimes v1.0.3Compiling crossbeam-utils v0.8.14Compiling ipnet v2.7.0Compiling form_urlencoded v1.1.0Compiling itoa v1.0.4Compiling matches v0.1.9Compiling match_cfg v0.1.0Compiling rustix v0.36.5Compiling tracing-core v0.1.30Compiling serde_json v1.0.89Compiling blake3 v1.3.3Compiling quick-error v1.2.3Compiling arrayref v0.3.6Compiling data-encoding v2.3.3Compiling same-file v1.0.6Compiling arrayvec v0.7.2Compiling linux-raw-sys v0.1.4Compiling constant_time_eq v0.2.4Compiling lazy_static v1.4.0Compiling indexmap v1.9.2Compiling pin-project v1.0.12Compiling walkdir v2.3.2Compiling lru-cache v0.1.2Compiling num-integer v0.1.45Compiling destructure_traitobject v0.2.0Compiling arc-swap v1.5.1Compiling ucd-trie v0.1.5Compiling hashbrown v0.12.3Compiling unsafe-any-ors v1.0.0Compiling tracing v0.1.37Compiling anyhow v1.0.66Compiling crossbeam-channel v0.5.6Compiling pest v2.5.1Compiling spin v0.9.4Compiling yaml-rust v0.4.5Compiling aho-corasick v0.7.20Compiling getrandom v0.2.8Compiling socket2 v0.4.7Compiling signal-hook-registry v1.4.0Compiling num_cpus v1.14.0Compiling hostname v0.3.1Compiling rand_core v0.6.4Compiling unicode-normalization v0.1.22Compiling errno v0.2.8Compiling parking_lot v0.12.1Compiling resolv-conf v0.7.0Compiling android_system_properties v0.1.5Compiling filetime v0.2.19Compiling dirs-sys v0.3.7Compiling rand_chacha v0.3.1Compiling notify v5.0.0Compiling iana-time-zone v0.1.53Compiling crypto-common v0.1.6Compiling inout v0.1.3Compiling block-buffer v0.10.3Compiling universal-hash v0.5.0Compiling cipher v0.4.3Compiling digest v0.10.6Compiling aead v0.5.1Compiling polyval v0.6.0Compiling rand v0.8.5Compiling poly1305 v0.8.0Compiling idna v0.3.0Compiling idna v0.2.3Compiling ctr v0.9.2Compiling aes v0.8.2Compiling hmac v0.12.1Compiling ghash v0.5.0Compiling chacha20 v0.9.0Compiling sha1 v0.10.5Compiling md-5 v0.10.5Compiling ccm v0.5.0Compiling ordered-float v2.10.0Compiling hkdf v0.12.3Compiling time v0.1.45Compiling chacha20poly1305 v0.10.1Compiling byte_string v1.0.0Compiling base64 v0.13.1Compiling lru_time_cache v0.11.11Compiling os_str_bytes v6.4.1Compiling regex-syntax v0.6.28Compiling terminal_size v0.2.3Compiling is-terminal v0.4.1Compiling aes-gcm-siv v0.11.1Compiling aes-gcm v0.10.1Compiling chrono v0.4.23Compiling dirs v4.0.0Compiling rtoolbox v0.0.1Compiling thread-id v4.0.0Compiling clap_lex v0.3.0Compiling typemap-ors v1.0.0Compiling iprange v0.6.7Compiling byteorder v1.4.3Compiling shadowsocks-crypto v0.5.1Compiling log-mdc v0.1.0Compiling boxfnonce v0.1.1Compiling fnv v1.0.7Compiling termcolor v1.1.3Compiling humantime v2.1.0Compiling strsim v0.10.0Compiling rpassword v7.2.0Compiling daemonize v0.4.1Compiling xdg v2.4.1Compiling directories v4.0.1Compiling sysexits v0.3.4Compiling clap v4.0.29Compiling futures-executor v0.3.25Compiling url v2.3.1Compiling serde_urlencoded v0.7.1Compiling serde-value v0.7.0Compiling json5 v0.4.1Compiling futures v0.3.25Compiling serde_yaml v0.8.26Compiling mio v0.8.5Compiling log4rs v1.2.0Compiling regex v1.7.0Compiling trust-dns-proto v0.22.0Compiling sendfd v0.4.3Compiling tokio-tfo v0.2.0Compiling trust-dns-resolver v0.22.0Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.1 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 3m 26s> Task :core:cargoBuildX86_64[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dirPython 3 detected.Compiling libc v0.2.138Compiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling zeroize v1.5.7Compiling const-oid v0.9.1Compiling cpufeatures v0.2.5Compiling scopeguard v1.1.0Compiling typenum v1.16.0Compiling serde v1.0.151Compiling memchr v2.5.0Compiling pin-project-lite v0.2.9Compiling futures-core v0.3.25Compiling generic-array v0.14.6Compiling lock_api v0.4.9Compiling log v0.4.17Compiling parking_lot_core v0.9.5Compiling opaque-debug v0.3.0Compiling smallvec v1.10.0Compiling futures-task v0.3.25Compiling futures-channel v0.3.25Compiling slab v0.4.7Compiling futures-sink v0.3.25Compiling base16ct v0.1.1Compiling tinyvec_macros v0.1.0Compiling futures-util v0.3.25Compiling thiserror v1.0.37Compiling bytes v1.3.0Compiling pin-utils v0.1.0Compiling futures-io v0.3.25Compiling tinyvec v1.6.0Compiling tokio v1.23.0Compiling der v0.6.1Compiling bitflags v1.3.2Compiling unicode-bidi v0.3.8Compiling percent-encoding v2.2.0Compiling ppv-lite86 v0.2.17Compiling linked-hash-map v0.5.6Compiling num-traits v0.2.15Compiling once_cell v1.16.0Compiling ryu v1.0.11Compiling base64ct v1.5.3Compiling io-lifetimes v1.0.3Compiling form_urlencoded v1.1.0Compiling crossbeam-utils v0.8.14Compiling ring v0.16.20Compiling spin v0.5.2Compiling untrusted v0.7.1Compiling tracing-core v0.1.30Compiling match_cfg v0.1.0Compiling itoa v1.0.4Compiling matches v0.1.9Compiling ipnet v2.7.0Compiling rustix v0.36.5Compiling serde_json v1.0.89Compiling blake3 v1.3.3Compiling lazy_static v1.4.0Compiling same-file v1.0.6Compiling linux-raw-sys v0.1.4Compiling arrayref v0.3.6Compiling arrayvec v0.7.2Compiling data-encoding v2.3.3Compiling constant_time_eq v0.2.4Compiling quick-error v1.2.3Compiling walkdir v2.3.2Compiling indexmap v1.9.2Compiling pin-project v1.0.12Compiling lru-cache v0.1.2Compiling num-integer v0.1.45Compiling tracing v0.1.37Compiling ucd-trie v0.1.5Compiling destructure_traitobject v0.2.0Compiling spki v0.6.0Compiling crossbeam-channel v0.5.6Compiling arc-swap v1.5.1Compiling hashbrown v0.12.3Compiling getrandom v0.2.8Compiling rand_core v0.6.4Compiling unicode-normalization v0.1.22Compiling socket2 v0.4.7Compiling parking_lot v0.12.1Compiling num_cpus v1.14.0Compiling signal-hook-registry v1.4.0Compiling pkcs8 v0.9.0Compiling errno v0.2.8Compiling hostname v0.3.1Compiling signature v1.6.4Compiling rand_chacha v0.3.1Compiling resolv-conf v0.7.0Compiling ed25519 v1.5.2Compiling crypto-common v0.1.6Compiling block-buffer v0.10.3Compiling inout v0.1.3Compiling universal-hash v0.5.0Compiling aead v0.5.1Compiling sec1 v0.3.0Compiling crypto-bigint v0.4.9Compiling digest v0.10.6Compiling cipher v0.4.3Compiling rand v0.8.5Compiling polyval v0.6.0Compiling poly1305 v0.8.0Compiling filetime v0.2.19Compiling hmac v0.12.1Compiling ghash v0.5.0Compiling sha1 v0.10.5Compiling ctr v0.9.2Compiling aes v0.8.2Compiling idna v0.3.0Compiling idna v0.2.3Compiling chacha20 v0.9.0Compiling hkdf v0.12.3Compiling md-5 v0.10.5Compiling android_system_properties v0.1.5Compiling ccm v0.5.0Compiling dirs-sys v0.3.7Compiling anyhow v1.0.66Compiling chacha20poly1305 v0.10.1Compiling iana-time-zone v0.1.53Compiling notify v5.0.0Compiling ordered-float v2.10.0Compiling elliptic-curve v0.12.3Compiling time v0.1.45Compiling pest v2.5.1Compiling unsafe-any-ors v1.0.0Compiling aes-gcm v0.10.1Compiling ecdsa v0.14.8Compiling aes-gcm-siv v0.11.1Compiling aho-corasick v0.7.20Compiling yaml-rust v0.4.5Compiling spin v0.9.4Compiling regex-syntax v0.6.28Compiling lru_time_cache v0.11.11Compiling p256 v0.11.1Compiling p384 v0.11.2Compiling os_str_bytes v6.4.1Compiling byte_string v1.0.0Compiling base64 v0.13.1Compiling terminal_size v0.2.3Compiling is-terminal v0.4.1Compiling chrono v0.4.23Compiling typemap-ors v1.0.0Compiling dirs v4.0.0Compiling rtoolbox v0.0.1Compiling clap_lex v0.3.0Compiling thread-id v4.0.0Compiling iprange v0.6.7Compiling strsim v0.10.0Compiling termcolor v1.1.3Compiling futures-executor v0.3.25Compiling byteorder v1.4.3Compiling log-mdc v0.1.0Compiling fnv v1.0.7Compiling humantime v2.1.0Compiling boxfnonce v0.1.1Compiling futures v0.3.25Compiling clap v4.0.29Compiling rpassword v7.2.0Compiling xdg v2.4.1Compiling daemonize v0.4.1Compiling directories v4.0.1Compiling sysexits v0.3.4Compiling url v2.3.1Compiling serde_urlencoded v0.7.1Compiling json5 v0.4.1Compiling serde-value v0.7.0Compiling serde_yaml v0.8.26Compiling mio v0.8.5Compiling log4rs v1.2.0Compiling regex v1.7.0Compiling trust-dns-proto v0.22.0Compiling sendfd v0.4.3Compiling tokio-tfo v0.2.0Compiling trust-dns-resolver v0.22.0Compiling ring-compat v0.5.1Compiling shadowsocks-crypto v0.5.1Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.1 (/home/vagrant/build/com.github.shadowsocks/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 3m 27s> Task :core:cargoBuild> Task :core:mergeReleaseJniLibFolders> Task :plugin:packageReleaseRenderscript NO-SOURCE> Task :core:compileReleaseRenderscript NO-SOURCE> Task :core:generateReleaseResValues> Task :core:extractDeepLinksForAarRelease> Task :core:generateReleaseBuildConfig> Task :core:generateReleaseResources> Task :core:mergeReleaseNativeLibs> Task :core:packageReleaseResources> Task :core:stripReleaseDebugSymbols[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir> Task :plugin:compileReleaseRenderscript NO-SOURCE> Task :plugin:generateReleaseResValues> Task :plugin:generateReleaseResources> Task :core:parseReleaseLocalResources> Task :plugin:packageReleaseResources> Task :core:copyReleaseJniLibsProjectAndLocalJars> Task :plugin:generateReleaseBuildConfig> Task :plugin:processReleaseManifest> Task :core:processReleaseManifest> Task :plugin:parseReleaseLocalResources> Task :plugin:javaPreCompileRelease> Task :core:javaPreCompileRelease> Task :core:mergeReleaseShaders> Task :core:compileReleaseShaders NO-SOURCE> Task :core:generateReleaseAssets UP-TO-DATE> Task :core:packageReleaseAssets> Task :core:packageReleaseRenderscript NO-SOURCE> Task :core:prepareReleaseArtProfile> Task :core:prepareLintJarForPublish> Task :core:processReleaseJavaRes NO-SOURCE> Task :plugin:stripReleaseDebugSymbols NO-SOURCE> Task :core:writeReleaseAarMetadata> Task :plugin:copyReleaseJniLibsProjectAndLocalJars> Task :plugin:extractDeepLinksForAarRelease> Task :plugin:mergeReleaseShaders> Task :plugin:compileReleaseShaders NO-SOURCE> Task :plugin:generateReleaseAssets UP-TO-DATE> Task :plugin:packageReleaseAssets> Task :plugin:prepareLintJarForPublish> Task :plugin:prepareReleaseArtProfile> Task :plugin:processReleaseJavaRes NO-SOURCE> Task :plugin:writeReleaseAarMetadata> Task :core:writeReleaseLintModelMetadata> Task :mobile:buildKotlinToolingMetadata> Task :mobile:preBuild UP-TO-DATE> Task :mobile:preReleaseBuild UP-TO-DATE> Task :mobile:compileReleaseAidl NO-SOURCE> Task :mobile:compileReleaseRenderscript NO-SOURCE> Task :plugin:generateReleaseRFile> Task :mobile:generateReleaseBuildConfig> Task :core:generateReleaseRFile> Task :mobile:generateReleaseResValues> Task :mobile:checkReleaseAarMetadata> Task :mobile:mapReleaseSourceSetPaths> Task :mobile:generateReleaseResources> Task :mobile:createReleaseCompatibleScreenManifests> Task :core:extractDeepLinksRelease> Task :mobile:extractDeepLinksRelease> Task :plugin:extractDeepLinksRelease> Task :mobile:processReleaseMainManifest> Task :mobile:processReleaseManifest> Task :mobile:javaPreCompileRelease> Task :mobile:extractProguardFiles> Task :plugin:writeReleaseLintModelMetadata> Task :mobile:mergeReleaseJniLibFolders> Task :core:copyReleaseJniLibsProjectOnly> Task :mobile:mergeReleaseResources> Task :mobile:checkReleaseDuplicateClasses> Task :mobile:processReleaseJavaRes NO-SOURCE> Task :mobile:mergeReleaseShaders> Task :mobile:compileReleaseShaders NO-SOURCE> Task :mobile:generateReleaseAssets UP-TO-DATE> Task :mobile:mergeReleaseNativeLibs> Task :mobile:mergeReleaseAssets> Task :mobile:compressReleaseAssets> Task :mobile:stripReleaseDebugSymbols[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir> Task :mobile:collectReleaseDependencies> Task :mobile:extractReleaseNativeSymbolTables[CXX5106] NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [21.4.7075529] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir> Task :mobile:sdkReleaseDependencyData> Task :mobile:processApplicationManifestReleaseForBundle> Task :mobile:writeReleaseAppMetadata> Task :mobile:mergeReleaseNativeDebugMetadata> Task :mobile:writeReleaseSigningConfigVersions> Task :mobile:processReleaseManifestForPackage> Task :mobile:mergeReleaseArtProfilewarn: removing resource com.github.shadowsocks:string/advanced without required default value.warn: removing resource com.github.shadowsocks:string/auto_connect_summary_v24 without required default value.warn: removing resource com.github.shadowsocks:string/invalid_server without required default value.warn: removing resource com.github.shadowsocks:string/night_mode without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_auto without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_off without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_on without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_system without required default value.warn: removing resource com.github.shadowsocks:string/received without required default value.warn: removing resource com.github.shadowsocks:string/sent without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_failure without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_summary without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_summary_unsupported without required default value.> Task :mobile:bundleReleaseResourceswarn: removing resource com.github.shadowsocks:string/advanced without required default value.warn: removing resource com.github.shadowsocks:string/auto_connect_summary_v24 without required default value.warn: removing resource com.github.shadowsocks:string/invalid_server without required default value.warn: removing resource com.github.shadowsocks:string/night_mode without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_auto without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_off without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_on without required default value.warn: removing resource com.github.shadowsocks:string/night_mode_system without required default value.warn: removing resource com.github.shadowsocks:string/received without required default value.warn: removing resource com.github.shadowsocks:string/sent without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_failure without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_summary without required default value.warn: removing resource com.github.shadowsocks:string/tcp_fastopen_summary_unsupported without required default value.> Task :mobile:processReleaseResources> Task :plugin:compileReleaseKotlinw: /home/vagrant/build/com.github.shadowsocks/plugin/src/main/java/com/github/shadowsocks/plugin/fragment/AlertDialogFragment.kt: (48, 85): 'getParcelable(String?): T?' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/plugin/src/main/java/com/github/shadowsocks/plugin/fragment/AlertDialogFragment.kt: (58, 52): 'getParcelable(String?): T?' is deprecated. Deprecated in Java> Task :plugin:compileReleaseJavaWithJavac> Task :plugin:bundleLibCompileToJarRelease> Task :plugin:extractReleaseAnnotations> Task :plugin:mergeReleaseGeneratedProguardFiles> Task :plugin:mergeReleaseConsumerProguardFiles> Task :plugin:bundleLibResRelease> Task :plugin:bundleLibRuntimeToJarRelease> Task :plugin:exportReleaseConsumerProguardFiles> Task :plugin:createFullJarRelease> Task :plugin:mergeReleaseJavaResource> Task :plugin:syncReleaseLibJars> Task :plugin:bundleReleaseLocalLintAar> Task :core:kaptGenerateStubsReleaseKotlin> Task :core:kaptReleaseKotlin> Task :core:compileReleaseKotlinw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/Core.kt: (142, 23): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/Core.kt: (143, 27): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/Core.kt: (161, 66): 'getPackageInfo(String, Int): PackageInfo!' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (72, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (78, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (82, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt: (121, 26): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/bg/BaseService.kt: (266, 13): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/bg/BaseService.kt: (343, 34): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt: (82, 21): The value 'true' assigned to 'var running: Boolean defined in com.github.shadowsocks.bg.GuardedProcessPool.Guard.looper' is never usedw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt: (87, 17): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/database/PrivateDatabase.kt: (50, 36): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/database/PublicDatabase.kt: (43, 36): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (51, 32): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (51, 44): This declaration needs opt-in. Its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (55, 25): This declaration needs opt-in. Its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt: (92, 19): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/plugin/PluginList.kt: (31, 35): 'queryIntentContentProviders(Intent, Int): (Mutable)List<ResolveInfo!>' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/plugin/PluginManager.kt: (150, 44): 'queryIntentContentProviders(Intent, Int): (Mutable)List<ResolveInfo!>' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/plugin/PluginManager.kt: (236, 76): 'get(String!): Any?' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/plugin/ResolvedPlugin.kt: (37, 50): 'get(String!): Any?' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: (111, 36): This declaration needs opt-in. Its usage should be marked with '@kotlinx.coroutines.ExperimentalCoroutinesApi' or '@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: (114, 21): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/utils/Utils.kt: (86, 64): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.w: /home/vagrant/build/com.github.shadowsocks/core/src/main/java/com/github/shadowsocks/utils/Utils.kt: (88, 9): This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.> Task :core:extractReleaseAnnotations> Task :core:compileReleaseJavaWithJavac> Task :core:mergeReleaseGeneratedProguardFiles> Task :core:mergeReleaseConsumerProguardFiles> Task :core:mergeReleaseJavaResource> Task :core:bundleLibResRelease> Task :core:bundleLibRuntimeToJarRelease> Task :core:bundleLibCompileToJarRelease> Task :core:syncReleaseLibJars> Task :core:bundleReleaseLocalLintAar> Task :core:createFullJarRelease> Task :core:exportReleaseConsumerProguardFiles> Task :mobile:compileReleaseKotlinw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/AppManager.kt: (79, 47): 'getInstalledPackages(Int): (Mutable)List<PackageInfo!>' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt: (211, 64): 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity'. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/ProfileConfigActivity.kt: (76, 57): 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity'. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/ProfileConfigFragment.kt: (166, 13): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/ProfileConfigFragment.kt: (217, 17): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/ProfilesFragment.kt: (242, 50): 'locale: Locale!' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/acl/CustomRulesFragment.kt: (90, 34): Conditional branch result of type URL is implicitly cast to Anyw: /home/vagrant/build/com.github.shadowsocks/mobile/src/main/java/com/github/shadowsocks/acl/CustomRulesFragment.kt: (90, 49): Conditional branch result of type Comparable<{String & Subnet}> is implicitly cast to Any> Task :mobile:compileReleaseJavaWithJavac> Task :mobile:mergeReleaseGeneratedProguardFiles> Task :mobile:mergeReleaseJavaResource> Task :mobile:minifyReleaseWithR8WARNING:/home/vagrant/build/com.github.shadowsocks/mobile/build/intermediates/merged_java_res/release/base.jar: R8: Unexpected reference to missing service class: META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.WARNING:Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /home/vagrant/build/com.github.shadowsocks/mobile/build/outputs/mapping/release/missing_rules.txt.WARNING:R8: Missing class lombok.Generated (referenced from: org.slf4j.Logger org.xbill.DNS.Compression.log and 2 other contexts)Missing class org.slf4j.impl.StaticLoggerBinder (referenced from: void org.slf4j.LoggerFactory.bind() and 3 other contexts)Missing class sun.net.spi.nameservice.NameServiceDescriptor (referenced from: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor)> Task :mobile:lintVitalAnalyzeRelease> Task :mobile:shrinkReleaseRes> Task :mobile:lintVitalReportRelease> Task :mobile:lintVitalRelease> Task :mobile:l8DexDesugarLibRelease> Task :mobile:compileReleaseArtProfile> Task :mobile:packageRelease> Task :mobile:createReleaseApkListingFileRedirect> Task :mobile:assembleReleaseDeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 20m 31s130 actionable tasks: 130 executed2022-12-24 22:27:56,711 DEBUG: Popen(['git', 'cat-file', '--batch-check'], cwd=/home/vagrant/build/com.github.shadowsocks, universal_newlines=False, shell=None, istream=<valid stream>)2022-12-24 22:27:56,726 INFO: Successfully built version 5.3.2-nightly of com.github.shadowsocks from 3b9fed2abecdd6905462c67eb268818756d7ed772022-12-24 22:27:57,113 DEBUG: AXML contains a RESOURCE MAP2022-12-24 22:27:57,113 DEBUG: Start of Namespace mapping: prefix 45: 'android' --> uri 140: 'http://schemas.android.com/apk/res/android'2022-12-24 22:27:57,116 DEBUG: Checking build/com.github.shadowsocks/mobile/build/outputs/apk/release/mobile-release-unsigned.apk2022-12-24 22:27:57,132 DEBUG: AXML contains a RESOURCE MAP2022-12-24 22:27:57,132 DEBUG: Start of Namespace mapping: prefix 45: 'android' --> uri 140: 'http://schemas.android.com/apk/res/android'2022-12-24 22:27:57,174 INFO: success: com.github.shadowsocks2022-12-24 22:27:57,175 INFO: Finished2022-12-24 22:27:57,175 INFO: 1 build succeeded