-verbose
-dontoptimize
-dontshrink
#-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
#-optimizations !method/inlining/*
#-optimizationpasses 30
-repackageclasses 'io.netsocks.easyvpn.sdk'

-allowaccessmodification
-overloadaggressively
-adaptclassstrings

# Kotlin rules
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}

-keep class kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoaderImpl

-keepclassmembers class kotlin.Metadata {
    public <methods>;
}

-keep,allowobfuscation,allowshrinking class io.netsocks.easyvpn.rest.ApiController { *; }
-keep,allowobfuscation,allowshrinking class io.netsocks.easyvpn.rest.VpnApiController { *; }
-keep,allowobfuscation,allowshrinking class io.netsocks.easyvpn.VpnGateway { *; }
-keep,allowoptimization class io.netsocks.easyvpn.VpnManager { *; }

-keep,allowobfuscation class io.netsocks.easyvpn.EasyVPN { public *; }

-keep class io.netsocks.easyvpn.definitions.VpnClientState { *; }
-keepclasseswithmembers class io.netsocks.easyvpn.VpnGateway { *; }
-keepclasseswithmembers class io.netsocks.easyvpn.definitions.VpnClientState {
     *;
    <fields>;
}

-keep class io.netsocks.easyvpn.**$DefaultImpls {
    *;
}