log for com.github.shadowsocks.tv:5030050

== Installed Android Tools ==2022-06-24 23:34:25,673 DEBUG: Reading 'config.yml'2022-06-24 23:34:25,683 INFO: Using /opt/android-sdk/build-tools/29.0.3/apksigner2022-06-24 23:34:25,685 INFO: Creating log directory2022-06-24 23:34:25,685 INFO: Creating temporary directory2022-06-24 23:34:25,685 INFO: Creating output directory2022-06-24 23:34:25,688 DEBUG: Getting git vcs interface for https://github.com/shadowsocks/shadowsocks-android.git2022-06-24 23:34:25,689 DEBUG: > git --versiongit version 2.11.02022-06-24 23:34:25,922 INFO: Using git version 2.11.02022-06-24 23:34:25,922 DEBUG: Checking 5.3.0-nightly2022-06-24 23:34:25,923 INFO: Building version 5.3.0-nightly (5030050) of com.github.shadowsocks.tv2022-06-24 23:34:25,923 WARNING: Android NDK version 'r21e' could not be found!2022-06-24 23:34:25,923 WARNING: Configured versions:2022-06-24 23:34:25,923 WARNING:   r23b: /opt/android-sdk/ndk/23.1.77796202022-06-24 23:34:25,924 INFO: Downloading https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip2022-06-24 23:34:25,937 DEBUG: Starting new HTTPS connection (1): dl.google.com2022-06-24 23:34:25,997 DEBUG: https://dl.google.com:443 "GET /android/repository/android-ndk-r21e-linux-x86_64.zip HTTP/1.1" 200 11906700722022-06-24 23:35:01,408 INFO: Unzipping to /opt/android-sdk/ndk2022-06-24 23:35:28,451 INFO: Set NDK r21e (21.4.7075529) up2022-06-24 23:35:28,456 INFO: Running 'sudo' commands in /home/vagrant2022-06-24 23:35:28,456 DEBUG: > sudo DEBIAN_FRONTEND=noninteractive bash -x -c apt-get update || apt-get update && apt-get install openjdk-11-jdk-headless && update-alternatives --auto java+ apt-get updateHit:1 http://security.debian.org/debian-security stretch/updates InReleaseIgn:2 http://deb.debian.org/debian stretch InReleaseHit:3 http://deb.debian.org/debian stretch-updates InReleaseGet:4 http://deb.debian.org/debian stretch-backports-sloppy InRelease [46.7 kB]Get:5 http://deb.debian.org/debian stretch-backports InRelease [91.8 kB]Get:6 http://deb.debian.org/debian testing InRelease [130 kB]Hit:7 http://deb.debian.org/debian stretch ReleaseGet:8 http://deb.debian.org/debian testing/main i386 Packages.diff/Index [63.6 kB]Get:10 http://deb.debian.org/debian testing/main amd64 Packages.diff/Index [63.6 kB]Get:11 http://deb.debian.org/debian testing/main Translation-en.diff/Index [63.6 kB]Get:12 http://deb.debian.org/debian testing/main i386 Packages T-2022-06-24-2010.09-F-2022-06-24-1413.16.pdiff [1,431 B]Get:12 http://deb.debian.org/debian testing/main i386 Packages T-2022-06-24-2010.09-F-2022-06-24-1413.16.pdiff [1,431 B]Get:13 http://deb.debian.org/debian testing/main amd64 Packages T-2022-06-24-2010.09-F-2022-06-24-1413.16.pdiff [1,438 B]Get:13 http://deb.debian.org/debian testing/main amd64 Packages T-2022-06-24-2010.09-F-2022-06-24-1413.16.pdiff [1,438 B]Get:14 http://deb.debian.org/debian testing/main Translation-en T-2022-06-24-1413.16-F-2022-06-24-1413.16.pdiff [85 B]Get:14 http://deb.debian.org/debian testing/main Translation-en T-2022-06-24-1413.16-F-2022-06-24-1413.16.pdiff [85 B]Fetched 462 kB in 10s (43.9 kB/s)Reading package lists...+ apt-get install openjdk-11-jdk-headlessReading package lists...Building dependency tree...Reading state information...The following additional packages will be installed:libasound2 libasound2-data openjdk-11-jre-headlessSuggested packages:libasound2-plugins alsa-utils openjdk-11-demo openjdk-11-source libnss-mdnsfonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-minchofonts-wqy-microhei | fonts-wqy-zenhei fonts-indicThe following NEW packages will be installed:libasound2 libasound2-data openjdk-11-jdk-headless openjdk-11-jre-headless0 upgraded, 4 newly installed, 0 to remove and 2 not upgraded.Need to get 230 MB of archives.After this operation, 374 MB of additional disk space will be used.Get:1 http://deb.debian.org/debian stretch/main amd64 libasound2-data all 1.1.3-5 [173 kB]Get:2 http://deb.debian.org/debian stretch/main amd64 libasound2 amd64 1.1.3-5 [497 kB]Get:3 http://deb.debian.org/debian stretch-backports/main amd64 openjdk-11-jre-headless amd64 11.0.6+10-1~bpo9+1 [37.4 MB]Get:4 http://deb.debian.org/debian stretch-backports/main amd64 openjdk-11-jdk-headless amd64 11.0.6+10-1~bpo9+1 [192 MB]Fetched 230 MB in 2s (106 MB/s)Selecting previously unselected package libasound2-data.(Reading database ... 65038 files and directories currently installed.)Preparing to unpack .../libasound2-data_1.1.3-5_all.deb ...Unpacking libasound2-data (1.1.3-5) ...Selecting previously unselected package libasound2:amd64.Preparing to unpack .../libasound2_1.1.3-5_amd64.deb ...Unpacking libasound2:amd64 (1.1.3-5) ...Selecting previously unselected package openjdk-11-jre-headless:amd64.Preparing to unpack .../openjdk-11-jre-headless_11.0.6+10-1~bpo9+1_amd64.deb ...Unpacking openjdk-11-jre-headless:amd64 (11.0.6+10-1~bpo9+1) ...Selecting previously unselected package openjdk-11-jdk-headless:amd64.Preparing to unpack .../openjdk-11-jdk-headless_11.0.6+10-1~bpo9+1_amd64.deb ...Unpacking openjdk-11-jdk-headless:amd64 (11.0.6+10-1~bpo9+1) ...Setting up libasound2-data (1.1.3-5) ...Setting up libasound2:amd64 (1.1.3-5) ...Processing triggers for libc-bin (2.24-11+deb9u4) ...Setting up openjdk-11-jre-headless:amd64 (11.0.6+10-1~bpo9+1) ...Setting up openjdk-11-jdk-headless:amd64 (11.0.6+10-1~bpo9+1) ...update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jimage to provide /usr/bin/jimage (jimage) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jlink to provide /usr/bin/jlink (jlink) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jmod to provide /usr/bin/jmod (jmod) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jshell to provide /usr/bin/jshell (jshell) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jaotc to provide /usr/bin/jaotc (jaotc) in auto modeupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode+ update-alternatives --auto javaupdate-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode2022-06-24 23:36:38,066 DEBUG: > sudo passwd --lock rootpasswd: password expiry information changed.2022-06-24 23:36:38,275 DEBUG: > sudo SUDO_FORCE_REMOVE=yes dpkg --purge sudo(Reading database ... 65695 files and directories currently installed.)Removing sudo (1.8.19p1-2.1+deb9u3) ...Purging configuration files for sudo (1.8.19p1-2.1+deb9u3) ...Processing triggers for systemd (232-25+deb9u13) ...2022-06-24 23:36:44,348 INFO: Getting source for revision 09c2290c1ba07336b11a6b7576886d202e14ac712022-06-24 23:36:44,349 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:44,349 DEBUG: > git rev-parse --show-toplevel2022-06-24 23:36:44,556 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:44,556 DEBUG: > git submodule foreach --recursive git reset --hard2022-06-24 23:36:45,076 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:45,076 DEBUG: > git reset --hard2022-06-24 23:36:45,284 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:45,285 DEBUG: > git submodule foreach --recursive git clean -dffx2022-06-24 23:36:45,592 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:45,593 DEBUG: > git clean -dffx2022-06-24 23:36:45,699 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:45,700 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-06-24 23:36:46,323 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:46,323 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-06-24 23:36:46,633 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:46,633 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-06-24 23:36:46,953 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:46,954 DEBUG: > git remote set-head origin --auto2022-06-24 23:36:47,365 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:47,366 DEBUG: > git checkout -f 09c2290c1ba07336b11a6b7576886d202e14ac712022-06-24 23:36:47,578 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:47,579 DEBUG: > git clean -dffx2022-06-24 23:36:47,694 INFO: Initialising submodules2022-06-24 23:36:47,695 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:47,696 DEBUG: > git rev-parse --show-toplevel2022-06-24 23:36:47,947 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:47,947 DEBUG: > git submodule sync2022-06-24 23:36:48,350 DEBUG: Directory: build/com.github.shadowsocks.tv2022-06-24 23:36:48,350 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 'e84e76a6821abdf75b5ba393d405b42d07d2dcdd'2022-06-24 23:36:48,859 INFO: Collecting source libraries2022-06-24 23:36:48,877 DEBUG: Removing debuggable flags from build/srclib/rustup2022-06-24 23:36:48,886 INFO: Creating local.properties file at build/com.github.shadowsocks.tv/local.properties2022-06-24 23:36:48,887 INFO: Creating local.properties file at build/com.github.shadowsocks.tv/tv/local.properties2022-06-24 23:36:48,887 DEBUG: Removing debuggable flags from build/com.github.shadowsocks.tv/tv2022-06-24 23:36:48,888 INFO: Removing specified files2022-06-24 23:36:48,888 INFO: Removing core/src/main/jni/badvpn/lwip/test/fuzz/inputs2022-06-24 23:36:48,889 INFO: Removing core/src/main/jni/badvpn/lime2022-06-24 23:36:48,890 INFO: Removing mobile2022-06-24 23:36:48,907 INFO: Running 'prebuild' commands in build/com.github.shadowsocks.tv/tv2022-06-24 23:36:48,907 DEBUG: Directory: build/com.github.shadowsocks.tv/tv2022-06-24 23:36:48,908 DEBUG: > bash -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 build.gradle.kts && sed -i -e '/gms/d' -e '/firebase/d' -e '/kotlinx-coroutines-play-services/d' ../core/build.gradle.kts && pushd ../core/src/main && 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 && sed -i -e '/OssLicensesMenuActivity/d' src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt && sed -i -z -E -e 's/<Preference[^<]+ossLicenses[^>]+>//' src/main/res/xml/pref_main.xml && sed -i -e '/isEnable/s/true/false/' ../buildSrc/src/main/kotlin/Helpers.kt+ 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 build.gradle.kts+ sed -i -e /gms/d -e /firebase/d -e /kotlinx-coroutines-play-services/d ../core/build.gradle.kts+ pushd ../core/src/main~/build/com.github.shadowsocks.tv/core/src/main ~/build/com.github.shadowsocks.tv/tv+ sed -i -E -e '/service_subscription_working/s/%d(.*)%d/%1$d\1%2$d/' res/values-ar/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/strings.xml res/values-tr/strings.xml res/values-zh-rCN/strings.xml res/values-zh-rTW/strings.xml+ cd java/com/github/shadowsocks+ sed -i -e /firebase/Id Core.kt bg/BaseService.kt+ popd~/build/com.github.shadowsocks.tv/tv+ sed -i -e /OssLicensesMenuActivity/d src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt+ sed -i -z -E -e 's/<Preference[^<]+ossLicenses[^>]+>//' src/main/res/xml/pref_main.xml+ sed -i -e /isEnable/s/true/false/ ../buildSrc/src/main/kotlin/Helpers.kt2022-06-24 23:36:49,115 INFO: Cleaning Gradle project...2022-06-24 23:36:49,116 DEBUG: Directory: build/com.github.shadowsocks.tv/tv2022-06-24 23:36:49,116 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid cleanFound 7.2 via distributionUrlDownloading missing gradle version 7.2cachedir /home/vagrant/.cache/fdroidserver/home/vagrant/.cache/fdroidserver/gradle-7.2-bin.zip: OKRunning /opt/gradle/versions/7.2/bin/gradle cleanWelcome to Gradle 7.2!Here are the highlights of this release:- Toolchain support for Scala- More cache hits when Java source files have platform-specific line endings- More resilient remote HTTP build cache behaviorFor more details see https://docs.gradle.org/7.2/release-notes.htmlTo honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.2/userguide/gradle_daemon.html#sec:disabling_the_daemon.Daemon will be stopped at the end of the build> Task :buildSrc:compileKotlinw: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (115, 65): 'VariantOutput' is deprecated. Deprecated in Java> Task :buildSrc:compileJava NO-SOURCE> Task :buildSrc:compileGroovy NO-SOURCE> Task :buildSrc:pluginDescriptors> Task :buildSrc:processResources 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:pluginUnderTestMetadata> Task :buildSrc:compileTestJava NO-SOURCE> Task :buildSrc:compileTestGroovy NO-SOURCE> Task :buildSrc:processTestResources NO-SOURCE> 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.enableR8.fullMode=true' is experimental.The current default is 'false'.WARNING: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-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-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 :pluginChecking the license for package Android SDK Build-Tools 32 in /opt/android-sdk/licensesLicense for package Android SDK Build-Tools 32 accepted.Preparing "Install Android SDK Build-Tools 32 (revision: 32.0.0)"."Install Android SDK Build-Tools 32 (revision: 32.0.0)" ready.Installing Android SDK Build-Tools 32 in /opt/android-sdk/build-tools/32.0.0"Install Android SDK Build-Tools 32 (revision: 32.0.0)" complete."Install Android SDK Build-Tools 32 (revision: 32.0.0)" finished.Checking the license for package Android SDK Platform 31 in /opt/android-sdk/licensesLicense for package Android SDK Platform 31 accepted.Preparing "Install Android SDK Platform 31 (revision: 1)"."Install Android SDK Platform 31 (revision: 1)" ready.Installing Android SDK Platform 31 in /opt/android-sdk/platforms/android-31"Install Android SDK Platform 31 (revision: 1)" complete."Install Android SDK Platform 31 (revision: 1)" finished.> Configure project :tvWarning: No match found for [DefaultTaskExecutionRequest{args=[clean],projectPath='null',rootDir='null'}]> Task :tv: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.2/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 1m 41s7 actionable tasks: 6 executed, 1 up-to-date2022-06-24 23:38:33,809 INFO: Scanning source for common problems...2022-06-24 23:38:33,817 INFO: Removing gradle-wrapper.jar at gradle/wrapper/gradle-wrapper.jar2022-06-24 23:38:33,915 INFO: Creating source tarball...2022-06-24 23:38:35,235 INFO: Running 'build' commands in build/com.github.shadowsocks.tv/tv2022-06-24 23:38:35,236 DEBUG: Directory: build/com.github.shadowsocks.tv/tv2022-06-24 23:38:35,236 DEBUG: > bash -x -c /home/vagrant/build/srclib/rustup/rustup-init.sh -y && source $HOME/.cargo/env && rustup toolchain install nightly-2022-06-21 && rustup default nightly-2022-06-21 && cd ../core/src/main/rust/shadowsocks-rust && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android+ /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-05-19, rust version 1.61.0 (fe5b13d68 2022-05-18)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.61.0 (fe5b13d68 2022-05-18)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 toolchain install nightly-2022-06-21info: syncing channel updates for 'nightly-2022-06-21-x86_64-unknown-linux-gnu'info: latest update on 2022-06-21, rust version 1.63.0-nightly (5750a6aa2 2022-06-20)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'nightly-2022-06-21-x86_64-unknown-linux-gnu installed - rustc 1.63.0-nightly (5750a6aa2 2022-06-20)info: checking for self-updates+ rustup default nightly-2022-06-21info: using existing install for 'nightly-2022-06-21-x86_64-unknown-linux-gnu'info: default toolchain set to 'nightly-2022-06-21-x86_64-unknown-linux-gnu'nightly-2022-06-21-x86_64-unknown-linux-gnu unchanged - rustc 1.63.0-nightly (5750a6aa2 2022-06-20)+ 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-06-24 23:39:13,249 INFO: Building Gradle project...2022-06-24 23:39:13,250 DEBUG: Directory: build/com.github.shadowsocks.tv/tv2022-06-24 23:39:13,250 DEBUG: > /home/vagrant/fdroidserver/gradlew-fdroid assembleFreedomReleaseFound 7.2 via distributionUrlRunning /opt/gradle/versions/7.2/bin/gradle assembleFreedomReleaseTo honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.2/userguide/gradle_daemon.html#sec:disabling_the_daemon.Daemon will be stopped at the end of the build> Task :buildSrc:compileKotlinw: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (2, 26): 'VariantOutput' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks.tv/buildSrc/src/main/kotlin/Helpers.kt: (115, 65): 'VariantOutput' is deprecated. Deprecated in Java> Task :buildSrc:compileJava NO-SOURCE> Task :buildSrc:compileGroovy NO-SOURCE> Task :buildSrc:pluginDescriptors> Task :buildSrc:processResources 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:pluginUnderTestMetadata> Task :buildSrc:compileTestJava NO-SOURCE> Task :buildSrc:compileTestGroovy NO-SOURCE> Task :buildSrc:processTestResources NO-SOURCE> 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.enableR8.fullMode=true' is experimental.The current default is 'false'.WARNING: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-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-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> 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 :plugin:packageReleaseRenderscript NO-SOURCE> Task :core:compileReleaseRenderscript NO-SOURCE> Task :core:generateReleaseBuildConfig> Task :core:generateReleaseResValues> Task :core:generateReleaseResources> Task :core:packageReleaseResources> Task :plugin:compileReleaseRenderscript NO-SOURCE> Task :plugin:generateReleaseResValues> Task :plugin:generateReleaseResources> Task :core:parseReleaseLocalResources> Task :core:processReleaseManifest/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/AndroidManifest.xml:113:9-114:40 Warning:provider#com.google.firebase.provider.FirebaseInitProvider was tagged at AndroidManifest.xml:113 to remove other declarations but no other declaration present> Task :plugin:packageReleaseResources> Task :plugin:parseReleaseLocalResources> Task :plugin:generateReleaseBuildConfig> Task :plugin:processReleaseManifest> Task :plugin:javaPreCompileRelease> Task :core:compileReleaseAidl> Task :tv:preBuild UP-TO-DATE> Task :tv:preFreedomReleaseBuild UP-TO-DATE> Task :tv:compileFreedomReleaseAidl NO-SOURCE> Task :core:packageReleaseRenderscript NO-SOURCE> Task :tv:compileFreedomReleaseRenderscript NO-SOURCE> Task :core:javaPreCompileRelease> Task :tv:generateFreedomReleaseBuildConfig> Task :core:writeReleaseAarMetadata> Task :plugin:writeReleaseAarMetadata> Task :tv:generateFreedomReleaseResValues> Task :tv:generateFreedomReleaseResources> Task :tv:createFreedomReleaseCompatibleScreenManifests> Task :core:extractDeepLinksRelease> Task :plugin:extractDeepLinksRelease> Task :tv:extractDeepLinksFreedomRelease> Task :plugin:generateReleaseRFile> Task :tv:mergeFreedomReleaseResources> Task :tv:processFreedomReleaseMainManifest/home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/AndroidManifest.xml:124:9-126:35 Warning:provider#com.google.firebase.provider.FirebaseInitProvider was tagged at AndroidManifest.xml:124 to remove other declarations but no other declaration present> Task :tv:processFreedomReleaseManifest> Task :tv:javaPreCompileFreedomRelease> Task :core:configureNdkBuildRelease> Task :core:buildNdkBuildReleaseC/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.c:32:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.c:37:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/udpgw_client/UdpGwClient.h:37:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/jni/badvpn/tun2socks/tun2socks.c:67:C/C++: In file included from /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/jni/badvpn/tun2socks/SocksUdpGwClient.h:42:C/C++: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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:stripReleaseDebugSymbols NO-SOURCE> Task :plugin:copyReleaseJniLibsProjectOnly> Task :core:externalNativeBuildRelease> Task :generateLinkerWrapper> 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-dirUpdating crates.io index> Task :tv:processFreedomReleaseManifestForPackage> Task :core:cargoBuildArmDownloading crates ...Downloaded aes-gcm-siv v0.10.3Downloaded base16ct v0.1.1Downloaded async-trait v0.1.56Downloaded arrayref v0.3.6Downloaded arrayvec v0.7.2Downloaded const-oid v0.7.1Downloaded cipher v0.4.3Downloaded byte_string v1.0.0Downloaded build-time v0.1.1Downloaded blake3 v1.3.1Downloaded aho-corasick v0.7.18Downloaded arc-swap v1.5.0Downloaded aes v0.8.1Downloaded atty v0.2.14Downloaded cfg-if v1.0.0Downloaded bitflags v1.3.2Downloaded ecdsa v0.13.4Downloaded pin-utils v0.1.0Downloaded p256 v0.10.1Downloaded pin-project-lite v0.2.9Downloaded pest_generator v2.1.3Downloaded polyval v0.5.3Downloaded poly1305 v0.7.2Downloaded ppv-lite86 v0.2.16Downloaded sha1-asm v0.5.1Downloaded signature v1.4.0Downloaded typemap v0.3.3Downloaded xdg v2.4.1Downloaded md5-asm v0.5.0Downloaded unsafe-any v0.4.2Downloaded bytes v1.1.0Downloaded chacha20poly1305 v0.9.0Downloaded inotify-sys v0.1.5Downloaded exitcode v1.1.2Downloaded enum-as-inner v0.4.0Downloaded futures-io v0.3.21Downloaded futures-core v0.3.21Downloaded derivative v2.2.0Downloaded tinyvec_macros v0.1.0Downloaded futures-sink v0.3.21Downloaded fnv v1.0.7Downloaded crossbeam-channel v0.5.4Downloaded futures-macro v0.3.21Downloaded ed25519 v1.5.2Downloaded crossbeam-utils v0.8.8Downloaded form_urlencoded v1.0.1Downloaded resolv-conf v0.7.0Downloaded scopeguard v1.1.0Downloaded terminal_size v0.1.17Downloaded spin v0.5.2Downloaded thiserror v1.0.31Downloaded subtle v2.4.1Downloaded tokio-macros v1.7.0Downloaded socket2 v0.4.4Downloaded untrusted v0.7.1Downloaded time v0.1.43Downloaded tinyvec v1.6.0Downloaded spin v0.9.3Downloaded serde v1.0.137Downloaded textwrap v0.15.0Downloaded version_check v0.9.4Downloaded unicode-ident v1.0.0Downloaded zeroize v1.3.0Downloaded walkdir v2.3.2Downloaded syn v1.0.96Downloaded trust-dns-resolver v0.21.2Downloaded yaml-rust v0.4.5Downloaded url v2.2.2Downloaded unicode-normalization v0.1.19Downloaded ghash v0.4.4Downloaded trust-dns-proto v0.21.2Downloaded tokio v1.18.2Downloaded os_str_bytes v6.1.0Downloaded lru-cache v0.1.2Downloaded opaque-debug v0.3.0Downloaded ring v0.16.20Downloaded percent-encoding v2.1.0Downloaded parking_lot v0.12.1Downloaded libc v0.2.126Downloaded num-traits v0.2.15Downloaded once_cell v1.12.0Downloaded log-mdc v0.1.0Downloaded humantime v2.1.0Downloaded mio v0.8.3Downloaded futures-executor v0.3.21Downloaded regex-syntax v0.6.26Downloaded num-integer v0.1.45Downloaded maplit v1.0.2Downloaded hmac v0.12.1Downloaded num_cpus v1.13.1Downloaded log4rs v1.1.1Downloaded regex v1.5.6Downloaded md-5 v0.10.1Downloaded serde_json v1.0.81Downloaded p384 v0.9.0Downloaded memchr v2.5.0Downloaded futures-task v0.3.21Downloaded typenum v1.15.0Downloaded matches v0.1.9Downloaded ucd-trie v0.1.3Downloaded idna v0.2.3Downloaded unicode-bidi v0.3.8Downloaded lru_time_cache v0.11.11Downloaded linked-hash-map v0.5.4Downloaded lazy_static v1.4.0Downloaded ipnet v2.5.0Downloaded smallvec v1.8.0Downloaded itoa v1.0.2Downloaded heck v0.4.0Downloaded directories v4.0.1Downloaded match_cfg v0.1.0Downloaded json5 v0.4.1Downloaded indexmap v1.8.2Downloaded hkdf v0.12.3Downloaded hashbrown v0.11.2Downloaded log v0.4.17Downloaded lock_api v0.4.7Downloaded hostname v0.3.1Downloaded generic-array v0.14.5Downloaded rand_chacha v0.3.1Downloaded getrandom v0.2.6Downloaded rand v0.8.5Downloaded universal-hash v0.4.1Downloaded slab v0.4.6Downloaded byteorder v1.4.3Downloaded serde_derive v1.0.137Downloaded thiserror-impl v1.0.31Downloaded ryu v1.0.10Downloaded cpufeatures v0.2.2Downloaded digest v0.9.0Downloaded termcolor v1.1.3Downloaded signal-hook-registry v1.4.0Downloaded generic-array v0.12.4Downloaded digest v0.8.1Downloaded fake-simd v0.1.2Downloaded strsim v0.10.0Downloaded serde_urlencoded v0.7.1Downloaded same-file v1.0.6Downloaded quote v1.0.18Downloaded proc-macro2 v1.0.39Downloaded iprange v0.6.7Downloaded inotify v0.9.6Downloaded ccm v0.4.4Downloaded rand_core v0.6.3Downloaded inout v0.1.3Downloaded futures-util v0.3.21Downloaded futures v0.3.21Downloaded quick-error v1.2.3Downloaded notify v5.0.0-pre.15Downloaded futures-channel v0.3.21Downloaded digest v0.10.3Downloaded data-encoding v2.3.2Downloaded ctr v0.8.0Downloaded dirs-sys v0.3.7Downloaded dirs v4.0.0Downloaded daemonize v0.4.1Downloaded filetime v0.2.16Downloaded elliptic-curve v0.11.12Downloaded clap v3.1.18Downloaded chrono v0.4.19Downloaded aes-gcm v0.9.4Downloaded cc v1.0.73Downloaded aes v0.7.5Downloaded tokio-tfo v0.2.0Downloaded traitobject v0.1.0Downloaded thread-id v4.0.0Downloaded serde_yaml v0.8.24Downloaded shadowsocks-crypto v0.4.0Downloaded sha-1 v0.8.2Downloaded sha1 v0.10.1Downloaded serde-value v0.7.0Downloaded sendfd v0.4.1Downloaded sec1 v0.2.1Downloaded rpassword v6.0.1Downloaded ring-compat v0.4.1Downloaded pin-project v1.0.10Downloaded pest v2.1.3Downloaded constant_time_eq v0.1.5Downloaded anyhow v1.0.57Downloaded pin-project-internal v1.0.10Downloaded crypto-common v0.1.3Downloaded cipher v0.3.0Downloaded pest_meta v2.1.3Downloaded clap_lex v0.2.0Downloaded base64 v0.13.0Downloaded parking_lot_core v0.9.3Downloaded boxfnonce v0.1.1Downloaded pest_derive v2.1.0Downloaded ordered-float v2.10.0Downloaded chacha20 v0.8.1Downloaded block-buffer v0.7.3Downloaded aead v0.4.3Downloaded opaque-debug v0.2.3Downloaded block-buffer v0.10.2Downloaded block-padding v0.1.5Downloaded byte-tools v0.3.1Downloaded der v0.5.1Downloaded crypto-bigint v0.3.2Downloaded autocfg v1.1.0Downloading crates ...Downloaded env_logger v0.9.0Compiling proc-macro2 v1.0.39Compiling libc v0.2.126Compiling unicode-ident v1.0.0Compiling syn v1.0.96Compiling autocfg v1.1.0Compiling cfg-if v1.0.0Compiling typenum v1.15.0Compiling version_check v0.9.4Compiling serde_derive v1.0.137Compiling serde v1.0.137Compiling subtle v2.4.1Compiling memchr v2.5.0Compiling scopeguard v1.1.0Compiling log v0.4.17Compiling parking_lot_core v0.9.3Compiling futures-core v0.3.21Compiling smallvec v1.8.0Compiling pin-project-lite v0.2.9Compiling futures-task v0.3.21Compiling opaque-debug v0.3.0Compiling futures-channel v0.3.21Compiling futures-sink v0.3.21Compiling futures-util v0.3.21Compiling bytes v1.1.0Compiling matches v0.1.9Compiling tinyvec_macros v0.1.0Compiling pin-utils v0.1.0Compiling slab v0.4.6Compiling futures-io v0.3.21Compiling lazy_static v1.4.0Compiling ryu v1.0.10Compiling linked-hash-map v0.5.4Compiling ppv-lite86 v0.2.16Compiling once_cell v1.12.0Compiling percent-encoding v2.1.0Compiling cc v1.0.73Compiling async-trait v0.1.56Compiling zeroize v1.3.0Compiling crossbeam-utils v0.8.8Compiling itoa v1.0.2Compiling unicode-bidi v0.3.8Compiling ucd-trie v0.1.3Compiling serde_json v1.0.81Compiling maplit v1.0.2Compiling ipnet v2.5.0Compiling match_cfg v0.1.0Compiling heck v0.4.0Compiling data-encoding v2.3.2Compiling constant_time_eq v0.1.5Compiling hashbrown v0.11.2Compiling arrayvec v0.7.2Compiling same-file v1.0.6Compiling arrayref v0.3.6Compiling quick-error v1.2.3Compiling bitflags v1.3.2Compiling traitobject v0.1.0Compiling anyhow v1.0.57Compiling arc-swap v1.5.0Compiling byte_string v1.0.0Compiling lru_time_cache v0.11.11Compiling os_str_bytes v6.1.0Compiling base64 v0.13.0Compiling regex-syntax v0.6.26Compiling byteorder v1.4.3Compiling fnv v1.0.7Compiling termcolor v1.1.3Compiling strsim v0.10.0Compiling boxfnonce v0.1.1Compiling log-mdc v0.1.0Compiling humantime v2.1.0Compiling exitcode v1.1.2Compiling generic-array v0.14.5Compiling lock_api v0.4.7Compiling num-integer v0.1.45Compiling num-traits v0.2.15Compiling indexmap v1.8.2Compiling tinyvec v1.6.0Compiling lru-cache v0.1.2Compiling yaml-rust v0.4.5Compiling form_urlencoded v1.0.1Compiling pest v2.1.3Compiling iprange v0.6.7Compiling blake3 v1.3.1Compiling walkdir v2.3.2Compiling unsafe-any v0.4.2Compiling clap_lex v0.2.0Compiling unicode-normalization v0.1.19Compiling pest_meta v2.1.3Compiling typemap v0.3.3Compiling getrandom v0.2.6Compiling num_cpus v1.13.1Compiling socket2 v0.4.4Compiling signal-hook-registry v1.4.0Compiling hostname v0.3.1Compiling filetime v0.2.16Compiling dirs-sys v0.3.7Compiling terminal_size v0.1.17Compiling time v0.1.43Compiling atty v0.2.14Compiling thread-id v4.0.0Compiling daemonize v0.4.1Compiling quote v1.0.18Compiling aho-corasick v0.7.18Compiling crossbeam-channel v0.5.4Compiling idna v0.2.3Compiling parking_lot v0.12.1Compiling spin v0.9.3Compiling rand_core v0.6.3Compiling resolv-conf v0.7.0Compiling dirs v4.0.0Compiling directories v4.0.1Compiling textwrap v0.15.0Compiling regex v1.5.6Compiling ordered-float v2.10.0Compiling notify v5.0.0-pre.15Compiling crypto-common v0.1.3Compiling cipher v0.3.0Compiling block-buffer v0.10.2Compiling universal-hash v0.4.1Compiling aead v0.4.3Compiling inout v0.1.3Compiling rand_chacha v0.3.1Compiling xdg v2.4.1Compiling clap v3.1.18Compiling chrono v0.4.19Compiling polyval v0.5.3Compiling poly1305 v0.7.2Compiling digest v0.10.3Compiling ctr v0.8.0Compiling chacha20 v0.8.1Compiling cipher v0.4.3Compiling rand v0.8.5Compiling ghash v0.4.4Compiling hmac v0.12.1Compiling sha1 v0.10.1Compiling md-5 v0.10.1Compiling aes v0.7.5Compiling ccm v0.4.4Compiling chacha20poly1305 v0.9.0Compiling aes v0.8.1Compiling hkdf v0.12.3Compiling aes-gcm-siv v0.10.3Compiling aes-gcm v0.9.4Compiling pest_generator v2.1.3Compiling shadowsocks-crypto v0.4.0Compiling futures-macro v0.3.21Compiling tokio-macros v1.7.0Compiling thiserror-impl v1.0.31Compiling pin-project-internal v1.0.10Compiling enum-as-inner v0.4.0Compiling pest_derive v2.1.0Compiling derivative v2.2.0Compiling build-time v0.1.1Compiling thiserror v1.0.31Compiling pin-project v1.0.10Compiling futures-executor v0.3.21Compiling futures v0.3.21Compiling url v2.2.2Compiling serde_urlencoded v0.7.1Compiling json5 v0.4.1Compiling serde_yaml v0.8.24Compiling serde-value v0.7.0Compiling mio v0.8.3Compiling tokio v1.18.2Compiling rpassword v6.0.1Compiling log4rs v1.1.1Compiling trust-dns-proto v0.21.2Compiling sendfd v0.4.1Compiling tokio-tfo v0.2.0Compiling trust-dns-resolver v0.21.2Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.0-alpha.5 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 3m 20s> 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-dirCompiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling zeroize v1.3.0Compiling opaque-debug v0.3.0Compiling scopeguard v1.1.0Compiling const-oid v0.7.1Compiling pin-project-lite v0.2.9Compiling smallvec v1.8.0Compiling futures-sink v0.3.21Compiling bytes v1.1.0Compiling tinyvec_macros v0.1.0Compiling pin-utils v0.1.0Compiling futures-io v0.3.21Compiling base16ct v0.1.1Compiling matches v0.1.9Compiling slab v0.4.6Compiling once_cell v1.12.0Compiling lazy_static v1.4.0Compiling percent-encoding v2.1.0Compiling ryu v1.0.10Compiling ppv-lite86 v0.2.16Compiling linked-hash-map v0.5.4Compiling itoa v1.0.2Compiling unicode-bidi v0.3.8Compiling match_cfg v0.1.0Compiling spin v0.5.2Compiling ipnet v2.5.0Compiling untrusted v0.7.1Compiling same-file v1.0.6Compiling hashbrown v0.11.2Compiling constant_time_eq v0.1.5Compiling quick-error v1.2.3Compiling data-encoding v2.3.2Compiling arrayvec v0.7.2Compiling bitflags v1.3.2Compiling arrayref v0.3.6Compiling traitobject v0.1.0Compiling ucd-trie v0.1.3Compiling arc-swap v1.5.0Compiling base64 v0.13.0Compiling lru_time_cache v0.11.11Compiling os_str_bytes v6.1.0Compiling regex-syntax v0.6.26Compiling byte_string v1.0.0Compiling strsim v0.10.0Compiling termcolor v1.1.3Compiling byteorder v1.4.3Compiling fnv v1.0.7Compiling humantime v2.1.0Compiling log-mdc v0.1.0Compiling boxfnonce v0.1.1Compiling exitcode v1.1.2Compiling libc v0.2.126Compiling typenum v1.15.0Compiling serde v1.0.137Compiling memchr v2.5.0Compiling futures-core v0.3.21Compiling parking_lot_core v0.9.3Compiling log v0.4.17Compiling futures-channel v0.3.21Compiling futures-task v0.3.21Compiling ring v0.16.20Compiling futures-util v0.3.21Compiling der v0.5.1Compiling tinyvec v1.6.0Compiling form_urlencoded v1.0.1Compiling crossbeam-utils v0.8.8Compiling serde_json v1.0.81Compiling lru-cache v0.1.2Compiling yaml-rust v0.4.5Compiling walkdir v2.3.2Compiling iprange v0.6.7Compiling unsafe-any v0.4.2Compiling anyhow v1.0.57Compiling pest v2.1.3Compiling clap_lex v0.2.0Compiling generic-array v0.14.5Compiling lock_api v0.4.7Compiling num-integer v0.1.45Compiling num-traits v0.2.15Compiling indexmap v1.8.2Compiling blake3 v1.3.1Compiling unicode-normalization v0.1.19Compiling typemap v0.3.3Compiling aho-corasick v0.7.18Compiling getrandom v0.2.6Compiling cpufeatures v0.2.2Compiling socket2 v0.4.4Compiling signal-hook-registry v1.4.0Compiling num_cpus v1.13.1Compiling hostname v0.3.1Compiling filetime v0.2.16Compiling dirs-sys v0.3.7Compiling time v0.1.43Compiling terminal_size v0.1.17Compiling thread-id v4.0.0Compiling atty v0.2.14Compiling daemonize v0.4.1Compiling crossbeam-channel v0.5.4Compiling spin v0.9.3Compiling idna v0.2.3Compiling rand_core v0.6.3Compiling regex v1.5.6Compiling crypto-common v0.1.3Compiling cipher v0.3.0Compiling block-buffer v0.10.2Compiling universal-hash v0.4.1Compiling aead v0.4.3Compiling sec1 v0.2.1Compiling digest v0.9.0Compiling inout v0.1.3Compiling parking_lot v0.12.1Compiling resolv-conf v0.7.0Compiling dirs v4.0.0Compiling directories v4.0.1Compiling textwrap v0.15.0Compiling notify v5.0.0-pre.15Compiling signature v1.4.0Compiling crypto-bigint v0.3.2Compiling rand_chacha v0.3.1Compiling ordered-float v2.10.0Compiling ctr v0.8.0Compiling chacha20 v0.8.1Compiling polyval v0.5.3Compiling poly1305 v0.7.2Compiling digest v0.10.3Compiling cipher v0.4.3Compiling xdg v2.4.1Compiling clap v3.1.18Compiling thiserror v1.0.31Compiling pin-project v1.0.10Compiling ed25519 v1.5.2Compiling rand v0.8.5Compiling chrono v0.4.19Compiling elliptic-curve v0.11.12Compiling aes v0.7.5Compiling ccm v0.4.4Compiling chacha20poly1305 v0.9.0Compiling ghash v0.4.4Compiling hmac v0.12.1Compiling sha1 v0.10.1Compiling md-5 v0.10.1Compiling aes v0.8.1Compiling ecdsa v0.13.4Compiling aes-gcm-siv v0.10.3Compiling aes-gcm v0.9.4Compiling hkdf v0.12.3Compiling p384 v0.9.0Compiling p256 v0.10.1Compiling futures-executor v0.3.21Compiling ring-compat v0.4.1Compiling futures v0.3.21Compiling url v2.2.2Compiling serde_urlencoded v0.7.1Compiling serde-value v0.7.0Compiling json5 v0.4.1Compiling serde_yaml v0.8.24Compiling shadowsocks-crypto v0.4.0Compiling mio v0.8.3Compiling rpassword v6.0.1Compiling tokio v1.18.2Compiling log4rs v1.1.1Compiling trust-dns-proto v0.21.2Compiling sendfd v0.4.1Compiling tokio-tfo v0.2.0Compiling trust-dns-resolver v0.21.2Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.0-alpha.5 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 2m 16s> 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-dirCompiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling cpufeatures v0.2.2Compiling scopeguard v1.1.0Compiling pin-project-lite v0.2.9Compiling smallvec v1.8.0Compiling opaque-debug v0.3.0Compiling futures-sink v0.3.21Compiling matches v0.1.9Compiling tinyvec_macros v0.1.0Compiling slab v0.4.6Compiling bytes v1.1.0Compiling futures-io v0.3.21Compiling pin-utils v0.1.0Compiling ryu v1.0.10Compiling lazy_static v1.4.0Compiling percent-encoding v2.1.0Compiling ppv-lite86 v0.2.16Compiling once_cell v1.12.0Compiling linked-hash-map v0.5.4Compiling zeroize v1.3.0Compiling itoa v1.0.2Compiling unicode-bidi v0.3.8Compiling ipnet v2.5.0Compiling match_cfg v0.1.0Compiling constant_time_eq v0.1.5Compiling bitflags v1.3.2Compiling data-encoding v2.3.2Compiling same-file v1.0.6Compiling arrayref v0.3.6Compiling arrayvec v0.7.2Compiling hashbrown v0.11.2Compiling quick-error v1.2.3Compiling ucd-trie v0.1.3Compiling traitobject v0.1.0Compiling arc-swap v1.5.0Compiling regex-syntax v0.6.26Compiling base64 v0.13.0Compiling os_str_bytes v6.1.0Compiling lru_time_cache v0.11.11Compiling byte_string v1.0.0Compiling byteorder v1.4.3Compiling fnv v1.0.7Compiling log-mdc v0.1.0Compiling strsim v0.10.0Compiling boxfnonce v0.1.1Compiling termcolor v1.1.3Compiling humantime v2.1.0Compiling exitcode v1.1.2Compiling libc v0.2.126Compiling typenum v1.15.0Compiling serde v1.0.137Compiling memchr v2.5.0Compiling futures-core v0.3.21Compiling parking_lot_core v0.9.3Compiling md5-asm v0.5.0Compiling sha1-asm v0.5.1Compiling log v0.4.17Compiling futures-channel v0.3.21Compiling futures-task v0.3.21Compiling futures-util v0.3.21Compiling tinyvec v1.6.0Compiling form_urlencoded v1.0.1Compiling crossbeam-utils v0.8.8Compiling serde_json v1.0.81Compiling lru-cache v0.1.2Compiling yaml-rust v0.4.5Compiling walkdir v2.3.2Compiling iprange v0.6.7Compiling pest v2.1.3Compiling unsafe-any v0.4.2Compiling anyhow v1.0.57Compiling clap_lex v0.2.0Compiling lock_api v0.4.7Compiling num-integer v0.1.45Compiling num-traits v0.2.15Compiling indexmap v1.8.2Compiling generic-array v0.14.5Compiling blake3 v1.3.1Compiling typemap v0.3.3Compiling unicode-normalization v0.1.19Compiling aho-corasick v0.7.18Compiling getrandom v0.2.6Compiling signal-hook-registry v1.4.0Compiling socket2 v0.4.4Compiling num_cpus v1.13.1Compiling hostname v0.3.1Compiling dirs-sys v0.3.7Compiling filetime v0.2.16Compiling terminal_size v0.1.17Compiling time v0.1.43Compiling atty v0.2.14Compiling thread-id v4.0.0Compiling daemonize v0.4.1Compiling crossbeam-channel v0.5.4Compiling spin v0.9.3Compiling parking_lot v0.12.1Compiling rand_core v0.6.3Compiling idna v0.2.3Compiling resolv-conf v0.7.0Compiling dirs v4.0.0Compiling directories v4.0.1Compiling regex v1.5.6Compiling textwrap v0.15.0Compiling ordered-float v2.10.0Compiling crypto-common v0.1.3Compiling cipher v0.3.0Compiling universal-hash v0.4.1Compiling block-buffer v0.10.2Compiling aead v0.4.3Compiling inout v0.1.3Compiling rand_chacha v0.3.1Compiling notify v5.0.0-pre.15Compiling xdg v2.4.1Compiling clap v3.1.18Compiling thiserror v1.0.31Compiling pin-project v1.0.10Compiling ctr v0.8.0Compiling chacha20 v0.8.1Compiling polyval v0.5.3Compiling poly1305 v0.7.2Compiling chrono v0.4.19Compiling digest v0.10.3Compiling cipher v0.4.3Compiling rand v0.8.5Compiling aes v0.7.5Compiling ccm v0.4.4Compiling ghash v0.4.4Compiling chacha20poly1305 v0.9.0Compiling hmac v0.12.1Compiling md-5 v0.10.1Compiling sha1 v0.10.1Compiling aes v0.8.1Compiling futures-executor v0.3.21Compiling aes-gcm-siv v0.10.3Compiling aes-gcm v0.9.4Compiling hkdf v0.12.3Compiling futures v0.3.21Compiling url v2.2.2Compiling serde_urlencoded v0.7.1Compiling json5 v0.4.1Compiling serde-value v0.7.0Compiling serde_yaml v0.8.24Compiling shadowsocks-crypto v0.4.0Compiling mio v0.8.3Compiling rpassword v6.0.1Compiling log4rs v1.1.1Compiling tokio v1.18.2Compiling trust-dns-proto v0.21.2Compiling tokio-tfo v0.2.0Compiling sendfd v0.4.1Compiling trust-dns-resolver v0.21.2Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.0-alpha.5 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 2m 09s> 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-dirCompiling cfg-if v1.0.0Compiling subtle v2.4.1Compiling zeroize v1.3.0Compiling cpufeatures v0.2.2Compiling scopeguard v1.1.0Compiling opaque-debug v0.3.0Compiling const-oid v0.7.1Compiling smallvec v1.8.0Compiling pin-project-lite v0.2.9Compiling futures-sink v0.3.21Compiling matches v0.1.9Compiling base16ct v0.1.1Compiling tinyvec_macros v0.1.0Compiling slab v0.4.6Compiling pin-utils v0.1.0Compiling bytes v1.1.0Compiling futures-io v0.3.21Compiling percent-encoding v2.1.0Compiling linked-hash-map v0.5.4Compiling lazy_static v1.4.0Compiling ryu v1.0.10Compiling once_cell v1.12.0Compiling ppv-lite86 v0.2.16Compiling itoa v1.0.2Compiling unicode-bidi v0.3.8Compiling ipnet v2.5.0Compiling untrusted v0.7.1Compiling spin v0.5.2Compiling match_cfg v0.1.0Compiling hashbrown v0.11.2Compiling arrayref v0.3.6Compiling constant_time_eq v0.1.5Compiling same-file v1.0.6Compiling arrayvec v0.7.2Compiling data-encoding v2.3.2Compiling quick-error v1.2.3Compiling bitflags v1.3.2Compiling traitobject v0.1.0Compiling arc-swap v1.5.0Compiling ucd-trie v0.1.3Compiling regex-syntax v0.6.26Compiling base64 v0.13.0Compiling os_str_bytes v6.1.0Compiling lru_time_cache v0.11.11Compiling byte_string v1.0.0Compiling fnv v1.0.7Compiling byteorder v1.4.3Compiling log-mdc v0.1.0Compiling boxfnonce v0.1.1Compiling strsim v0.10.0Compiling termcolor v1.1.3Compiling humantime v2.1.0Compiling exitcode v1.1.2Compiling libc v0.2.126Compiling typenum v1.15.0Compiling serde v1.0.137Compiling memchr v2.5.0Compiling parking_lot_core v0.9.3Compiling log v0.4.17Compiling futures-core v0.3.21Compiling futures-channel v0.3.21Compiling futures-task v0.3.21Compiling futures-util v0.3.21Compiling der v0.5.1Compiling tinyvec v1.6.0Compiling lru-cache v0.1.2Compiling yaml-rust v0.4.5Compiling form_urlencoded v1.0.1Compiling crossbeam-utils v0.8.8Compiling serde_json v1.0.81Compiling walkdir v2.3.2Compiling iprange v0.6.7Compiling anyhow v1.0.57Compiling unsafe-any v0.4.2Compiling pest v2.1.3Compiling clap_lex v0.2.0Compiling generic-array v0.14.5Compiling lock_api v0.4.7Compiling num-integer v0.1.45Compiling num-traits v0.2.15Compiling sha1-asm v0.5.1Compiling md5-asm v0.5.0Compiling ring v0.16.20Compiling blake3 v1.3.1Compiling indexmap v1.8.2Compiling typemap v0.3.3Compiling unicode-normalization v0.1.19Compiling getrandom v0.2.6Compiling signal-hook-registry v1.4.0Compiling socket2 v0.4.4Compiling num_cpus v1.13.1Compiling hostname v0.3.1Compiling filetime v0.2.16Compiling dirs-sys v0.3.7Compiling terminal_size v0.1.17Compiling time v0.1.43Compiling atty v0.2.14Compiling thread-id v4.0.0Compiling daemonize v0.4.1Compiling aho-corasick v0.7.18Compiling crossbeam-channel v0.5.4Compiling spin v0.9.3Compiling rand_core v0.6.3Compiling parking_lot v0.12.1Compiling resolv-conf v0.7.0Compiling idna v0.2.3Compiling dirs v4.0.0Compiling directories v4.0.1Compiling textwrap v0.15.0Compiling crypto-common v0.1.3Compiling cipher v0.3.0Compiling block-buffer v0.10.2Compiling universal-hash v0.4.1Compiling sec1 v0.2.1Compiling aead v0.4.3Compiling digest v0.9.0Compiling inout v0.1.3Compiling signature v1.4.0Compiling crypto-bigint v0.3.2Compiling rand_chacha v0.3.1Compiling ordered-float v2.10.0Compiling notify v5.0.0-pre.15Compiling regex v1.5.6Compiling xdg v2.4.1Compiling clap v3.1.18Compiling ctr v0.8.0Compiling chacha20 v0.8.1Compiling polyval v0.5.3Compiling poly1305 v0.7.2Compiling digest v0.10.3Compiling thiserror v1.0.31Compiling pin-project v1.0.10Compiling cipher v0.4.3Compiling ed25519 v1.5.2Compiling rand v0.8.5Compiling chrono v0.4.19Compiling elliptic-curve v0.11.12Compiling aes v0.7.5Compiling ccm v0.4.4Compiling ghash v0.4.4Compiling chacha20poly1305 v0.9.0Compiling hmac v0.12.1Compiling md-5 v0.10.1Compiling sha1 v0.10.1Compiling aes v0.8.1Compiling ecdsa v0.13.4Compiling url v2.2.2Compiling serde_urlencoded v0.7.1Compiling serde_yaml v0.8.24Compiling serde-value v0.7.0Compiling json5 v0.4.1Compiling aes-gcm-siv v0.10.3Compiling aes-gcm v0.9.4Compiling hkdf v0.12.3Compiling p256 v0.10.1Compiling p384 v0.9.0Compiling mio v0.8.3Compiling futures-executor v0.3.21Compiling rpassword v6.0.1Compiling log4rs v1.1.1Compiling ring-compat v0.4.1Compiling futures v0.3.21Compiling tokio v1.18.2Compiling shadowsocks-crypto v0.4.0Compiling trust-dns-proto v0.21.2Compiling sendfd v0.4.1Compiling tokio-tfo v0.2.0Compiling trust-dns-resolver v0.21.2Compiling shadowsocks v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks)Compiling shadowsocks-service v1.15.0 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust/crates/shadowsocks-service)Compiling shadowsocks-rust v1.15.0-alpha.5 (/home/vagrant/build/com.github.shadowsocks.tv/core/src/main/rust/shadowsocks-rust)Finished release [optimized] target(s) in 2m 12s> Task :core:cargoBuild> Task :core:mergeReleaseJniLibFolders> Task :core:mergeReleaseShaders> Task :core:compileReleaseShaders NO-SOURCE> Task :core:generateReleaseAssets UP-TO-DATE> Task :core:packageReleaseAssets> Task :core:prepareLintJarForPublish> Task :core:prepareReleaseArtProfile> Task :core:processReleaseJavaRes NO-SOURCE> Task :core:mergeReleaseNativeLibs> Task :tv:checkFreedomReleaseAarMetadata> 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> Task :core:writeReleaseLintModelMetadata> Task :plugin:copyReleaseJniLibsProjectAndLocalJars> 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:writeReleaseLintModelMetadata> Task :tv:extractProguardFiles> Task :core:copyReleaseJniLibsProjectAndLocalJars> Task :core:copyReleaseJniLibsProjectOnly> Task :core:generateReleaseRFile> Task :plugin:compileReleaseKotlin> Task :plugin:compileReleaseJavaWithJavac> Task :plugin:bundleLibCompileToJarReleasewarn: removing resource com.github.shadowsocks.tv:string/advanced without required default value.warn: removing resource com.github.shadowsocks.tv:string/auto_connect_summary_v24 without required default value.warn: removing resource com.github.shadowsocks.tv:string/invalid_server without required default value.warn: removing resource com.github.shadowsocks.tv:string/night_mode without required default value.warn: removing resource com.github.shadowsocks.tv:string/night_mode_auto without required default value.warn: removing resource com.github.shadowsocks.tv:string/night_mode_off without required default value.warn: removing resource com.github.shadowsocks.tv:string/night_mode_on without required default value.warn: removing resource com.github.shadowsocks.tv:string/night_mode_system without required default value.warn: removing resource com.github.shadowsocks.tv:string/received without required default value.warn: removing resource com.github.shadowsocks.tv:string/sent without required default value.warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_failure without required default value.warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_summary without required default value.warn: removing resource com.github.shadowsocks.tv:string/tcp_fastopen_summary_unsupported without required default value.> Task :tv:processFreedomReleaseResources> Task :plugin:extractReleaseAnnotations> Task :plugin:mergeReleaseGeneratedProguardFiles> Task :plugin:mergeReleaseConsumerProguardFiles> Task :plugin:bundleLibRuntimeToJarRelease> Task :plugin:bundleLibResRelease> Task :plugin:mergeReleaseJavaResource> Task :core:kaptGenerateStubsReleaseKotlin> Task :plugin:syncReleaseLibJars> Task :plugin:bundleReleaseLocalLintAar> Task :tv:mergeFreedomReleaseJniLibFolders> Task :plugin:exportReleaseConsumerProguardFiles> Task :tv:mergeFreedomReleaseNativeLibs> Task :tv:checkFreedomReleaseDuplicateClasses> Task :tv:stripFreedomReleaseDebugSymbols[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:createFullJarRelease> Task :tv:processFreedomReleaseJavaRes NO-SOURCE> Task :tv:extractFreedomReleaseNativeSymbolTables[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 :tv:mergeFreedomReleaseNativeDebugMetadata NO-SOURCE> Task :tv:mergeFreedomReleaseShaders> Task :tv:compileFreedomReleaseShaders NO-SOURCE> Task :tv:generateFreedomReleaseAssets UP-TO-DATE> Task :tv:mergeFreedomReleaseAssets> Task :tv:compressFreedomReleaseAssets> Task :tv:collectFreedomReleaseDependencies> Task :tv:sdkFreedomReleaseDependencyData> Task :tv:writeFreedomReleaseAppMetadata> Task :tv:writeFreedomReleaseSigningConfigVersions> Task :tv:mergeFreedomReleaseArtProfile> Task :core:kaptReleaseKotlin> Task :core:compileReleaseKotlinw: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/Core.kt: (144, 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.tv/core/src/main/java/com/github/shadowsocks/Core.kt: (145, 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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/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.tv/core/src/main/java/com/github/shadowsocks/bg/VpnService.kt: (196, 38): Type mismatch: inferred type is String? but String was expectedw: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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.tv/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (51, 44): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/DefaultNetworkListener.kt: (55, 25): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ObsoleteCoroutinesApi' or '@OptIn(kotlinx.coroutines.ObsoleteCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/core/src/main/java/com/github/shadowsocks/net/Subnet.kt: (81, 46): Type mismatch: inferred type is String? but String was expectedw: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/net/Subnet.kt: (81, 71): Unsafe use of a nullable receiver of type String?w: /home/vagrant/build/com.github.shadowsocks.tv/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: (111, 36): This declaration is experimental and its usage should be marked with '@kotlinx.coroutines.ExperimentalCoroutinesApi' or '@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)'w: /home/vagrant/build/com.github.shadowsocks.tv/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.tv/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.tv/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:compileReleaseJavaWithJavac> Task :core:extractReleaseAnnotations> Task :core:bundleLibCompileToJarRelease> Task :core:mergeReleaseGeneratedProguardFiles> Task :core:mergeReleaseConsumerProguardFiles> Task :core:bundleLibResRelease> Task :core:mergeReleaseJavaResource> Task :tv:kaptGenerateStubsFreedomReleaseKotlin> Task :tv:kaptFreedomReleaseKotlin> Task :tv:compileFreedomReleaseKotlinw: /home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/java/com/github/shadowsocks/tv/MainFragment.kt: (48, 21): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Javaw: /home/vagrant/build/com.github.shadowsocks.tv/tv/src/main/java/com/github/shadowsocks/tv/MainFragment.kt: (56, 17): 'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Java> Task :tv:compileFreedomReleaseJavaWithJavac> Task :tv:compileFreedomReleaseSources> Task :core:syncReleaseLibJars> Task :core:bundleReleaseLocalLintAar> Task :tv:mergeFreedomReleaseGeneratedProguardFiles> Task :core:exportReleaseConsumerProguardFiles> Task :core:bundleLibRuntimeToJarRelease> Task :tv:bundleFreedomReleaseClasses> Task :core:createFullJarRelease> Task :tv:mergeFreedomReleaseJavaResource> Task :tv:minifyFreedomReleaseWithR8WARNING:/home/vagrant/build/com.github.shadowsocks.tv/tv/build/intermediates/merged_java_res/freedomRelease/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.tv/tv/build/outputs/mapping/freedomRelease/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 :tv:lintVitalAnalyzeFreedomRelease> Task :tv:lintVitalFreedomReleaseNo issues found.> Task :tv:shrinkFreedomReleaseRes> Task :tv:l8DexDesugarLibFreedomRelease> Task :tv:compileFreedomReleaseArtProfile> Task :tv:packageFreedomRelease> Task :tv:assembleFreedomReleaseDeprecated 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.2/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 12m 51s118 actionable tasks: 118 executed2022-06-24 23:52:05,622 DEBUG: Popen(['git', 'cat-file', '--batch-check'], cwd=/home/vagrant/build/com.github.shadowsocks.tv, universal_newlines=False, shell=None)2022-06-24 23:52:05,626 INFO: Successfully built version 5.3.0-nightly of com.github.shadowsocks.tv from 09c2290c1ba07336b11a6b7576886d202e14ac712022-06-24 23:52:06,214 DEBUG: AXML contains a RESOURCE MAP2022-06-24 23:52:06,215 DEBUG: Start of Namespace mapping: prefix 42: 'android' --> uri 116: 'http://schemas.android.com/apk/res/android'2022-06-24 23:52:06,216 DEBUG: Checking build/com.github.shadowsocks.tv/tv/build/outputs/apk/freedom/release/tv-freedom-release-unsigned.apk2022-06-24 23:52:06,226 DEBUG: AXML contains a RESOURCE MAP2022-06-24 23:52:06,226 DEBUG: Start of Namespace mapping: prefix 42: 'android' --> uri 116: 'http://schemas.android.com/apk/res/android'2022-06-24 23:52:06,249 INFO: success: com.github.shadowsocks.tv2022-06-24 23:52:06,250 INFO: Finished2022-06-24 23:52:06,250 INFO: 1 build succeeded