# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
# 混淆时不使用大小写混合，混淆后的类名为小写
-dontusemixedcaseclassnames
# 指定不去忽略非公共库的类
-dontskipnonpubliclibraryclasses
# 指定不去忽略非公共库的成员
-dontskipnonpubliclibraryclassmembers
# 混淆时不做预校验
-dontpreverify

# support下的所有类及其内部类
-keep class android.support.** {*;}

-keep class androidx.** {*;}
-dontwarn android.support.**, androidx.**
-keep interface android.support.** { *; }


-keep interface androidx.** { *; }

# 一些序列化方法用反射解析json或类似规则，如果enum不keep，反射会出错
-keepclassmembers enum * {*;}

## Gson
-keepattributes *Annotation*,Signature, InnerClasses, EnclosingMethod,*JavascriptInterface*,LineNumberTable
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { <fields>; }
-keep class * implements com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

-keepclassmembers class * {
  @com.google.gson.annotations.SerializedName <fields>;
}

# >>>>>>>>>>>> 三方SDK <<<<<<<<<<<<<<
# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}


-keep class **$Properties {*;}

# OkHttp
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**
-keep class okhttp3.**{*;}
-keep class okio.**{*;}

# protobuf-javanano
-keep class com.google.protobuf.**{*;}
-keep class * extends com.google.protobuf.nano.MessageNano {
    public <methods>;
}

# relinker
-keep class com.getkeepsafe.relinker.**{*;}

# lifecycle
-keep class androidx.lifecycle.** {*;}

-keep class com.google.**{*;}

-keep public class javax.inject.**{*;}

-keep class *.R
-keepclasseswithmembers class **.R$* {
    public static <fields>;
}
-keep class com.cmic.sso.sdk.**{*;}
-keep class cn.com.chinatelecom.**{*;}
-keep class com.unicom.xiaowo.account.shield.**{*;}


## >>>>>>>>>>>> 我们自己的keep <<<<<<<<<<<<<<
-keeppackagenames com.kuaishou.**
-keeppackagenames com.kwai.sdk
-keeppackagenames com.kwai.sdk.combus
-keeppackagenames orderpay
-keep class com.kwai.sdk.callback.KwaiSdkCallback{*;}
-keep class com.kwai.sdk.base.bean.**{*;}
-keep class com.kwai.sdk.combus.bean.**{*;}
-keep class com.kwai.sdk.combus.AppForegroundChangeListener{*;}
-keep class com.kwai.sdk.combus.KwaiActivityLifecycleListener{*;}
-keep class com.kwai.sdk.subbus.account.login.bean.**{*;}
-keep class com.kwai.sdk.combus.init.KwaiInitListener{*;}
-keep class com.kwai.sdk.combus.init.AzerothInitHelper{*;}
-keep class com.kwai.sdk.combus.PluginManager{*;}
# view
-keep class com.kwai.sdk.combus.view.**{*;}
-keep public class * extends com.kwai.sdk.combus.view.FrameView{
     public <init>(android.app.Activity, android.os.Bundle);
     public <init>(android.app.Activity, android.content.Intent);
}
-keep class com.kwai.sdk.subbus.account.login.view.**{*;}
-keep class com.kwai.sdk.subbus.account.accountbind.view.**{*;}
-keep class com.kwai.sdk.subbus.certification.ui.**{*;}
-keep class com.kwai.sdk.subbus.certification.CertificationResultListener{*;}
-keep class com.kwai.sdk.subbus.coupon.view.**{*;}

# 云游戏
-keep class com.kwai.sdk.combus.cloudgame.CloudRunMode{*;}
-keep class com.kwai.sdk.combus.cloudgame.CloudRunMode$*{*;}
-keep class com.kwai.sdk.combus.cloudgame.**{*;}
-keep class com.android.cloudapp.**{*;}
-keep class com.haima.cloud.dataserver.**{*;}
-keep class com.vrviu.ls.bridge.**{*;}

-keep class com.kwai.sdk.KwaiSdk{*;}
-keep class com.kwai.sdk.KwaiSdkEnvHelper{
   public static java.lang.String getEnvName();
   public static void switchToTest();
   public static void switchToStaging();
   public static void switchToOnLine();
   public static java.lang.String getPayCallBackUrl();
   public static boolean isStagingEnv(android.content.Context);
}
-keep class com.kwai.sdk.InnerSdk{*;}

-keep class com.kwai.sdk.KwaiSdkInitConfig{*;}
-keep class com.kwai.sdk.OnAccountBindListener{*;}
-keep class com.kwai.sdk.OnExitListener{*;}
-keep class com.kwai.sdk.OnLoginResultListener{*;}
-keep class com.kwai.sdk.OnLogoffResultListener{*;}
-keep class com.kwai.sdk.PermissionRequestDelegate{*;}
-keep class com.kwai.sdk.KwaiPayResultListener{*;}
-keep class com.kwai.sdk.UserFriendsRequestListener{*;}
-keep class com.kwai.sdk.base.KwaiErrorCode{*;}
-keep class com.kwai.sdk.KwaiPayResultListener$DataFailed{*;}
-keep class com.kwai.sdk.KwaiPayResultListener$DataSucceed{*;}
-keep class com.kwai.sdk.subbus.pay.model.KwaiPayInfo{*;}
-keep class com.kwai.sdk.combus.util.AppImmersiveUtils{*;}
-keep class com.kwai.sdk.base.KwaiErrorCode{*;}
-keep class com.kwai.sdk.OnUserQueryListener{*;}
-keep class com.kwai.sdk.onPermissionRequestListener{*;}
-keep class com.kwai.sdk.subbus.account.accountbind.bean.PlatformAccountBean{*;}
-keep class com.kwai.sdk.subbus.pay.IPay{*;}
-keep class com.kwai.sdk.subbus.share.IShare{*;}
-keep class com.kwai.sdk.subbus.share.IShareCallback{*;}

-keep class com.kwai.sdk.subbus.gamelive.IGameLive{*;}
-keep class com.kwai.sdk.subbus.gamelive.IGameLiveCallback{*;}
-keep class com.kwai.sdk.subbus.gamelive.ISysRecord{*;}
-keep class com.kwai.sdk.subbus.gamelive.IStartRecordListener{*;}
-keep class com.kwai.sdk.subbus.gamelive.IStopRecordListener{*;}
-keep class com.kwai.sdk.subbus.gamelive.VideoQuality{*;}


-keep class com.kwai.sdk.subbus.account.login.listeners.ILoginStatusChangeListener{*;}
-keep class com.kwai.sdk.subbus.account.login.KwaiLoginConstant$LoginStatus{*;}
-keep class com.kwai.sdk.subbus.account.login.KwaiLoginConstant$KwaiLoginType{*;}
-keep class com.kwai.sdk.subbus.account.login.KwaiLoginConstant$KwaiLoginScope{*;}
-keep class com.kwai.sdk.subbus.account.login.KwaiLoginConstant
-keep class com.kwai.sdk.subbus.account.OpenIdCallback{*;}
-keep class com.kwai.sdk.combus.view.floatview.FloatViewInitLocation{*;}
-keep class com.kwai.sdk.subbus.certification.CertificationImpl
-keep class com.kwai.sdk.subbus.antiaddiction.AddictionInfo{*;}
-keep class com.kwai.sdk.subbus.antiaddiction.AntiAddictDelegate{*;}
-keep class com.kwai.sdk.combus.util.SpUtils{
     public static int getSPValue(java.lang.String, int);
     public static void spSaveAsync(java.lang.String, int);
}

-keep class com.kwai.sdk.combus.util.DeviceUtil{
    public <methods>;
    public static <methods>;
}

-keeppackagenames com.kwai.sdk.pay
-keeppackagenames com.kwai.sdk.payv2

-keep class * implements com.kwai.sdk.subbus.pay.IPay {
    public *;
}

-keeppackagenames com.kwai.sdk.update
-keep class com.kwai.sdk.subbus.upgrade.DownStatus{*;}
-keep class com.kwai.sdk.subbus.upgrade.VersionUpgradeInfo{*;}
-keep class com.kwai.sdk.subbus.upgrade.IUpgrade{*;}
-keep class * implements com.kwai.sdk.subbus.upgrade.IUpgrade {
    public *;
}
-keep class com.kwai.sdk.UpgradeListener{*;}

-keeppackagenames com.yxcorp

-keep class com.kwai.sdk.pay.ui.**{*;}
-keep class com.kwai.sdk.subbus.pay.ui.**{*;}

-keep class com.kwai.sdk.payv2.ui.**{*;}

-keeppackagenames com.kwai.sdk.share
-keeppackagenames com.kwai.opensdk.sdk
-keep class com.kwai.sdk.share.KwaiShare{*;}
-keep class com.kwai.opensdk.sdk.openapi.IKwaiOpenAPI{*;}
-keep class com.kwai.opensdk.sdk.openapi.KwaiOpenAPI{*;}

-keeppackagenames com.kwai.sdk.gamelive
-keep class com.kwai.sdk.gamelive.KwaiGameLive{*;}
-keep class com.kwai.sdk.gamelive.record.SystemVideoRecord{*;}

-keep class com.kwai.cloudgamecommon.** {*;}

#MONITOR
-keep class com.kwai.sdk.subbus.monitor.IMonitor{*;}
-keep class com.kwai.sdk.monitor.KwaiMonitor{*;}

-keep class com.tencent.mm.opensdk.** {*;}
-keep class com.tencent.wxop.** {*;}
-keep class com.tencent.mm.sdk.** {*;}

-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {
    <fields>;
    <methods>;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}


# Preserve annotated Javascript interface methods.
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
# Serializable实体类
-keep class * implements java.io.Serializable {
    *;
}
-keeppackagenames com.yxcorp.gateway.pay
-keeppackagenames com.kwai.async.pay

-keep class * extends com.yxcorp.gateway.pay.activity.BaseActivity {
    *;
}
-keepclassmembers class * extends android.webkit.WebChromeClient {
    public void openFileChooser(...);
}
-keep public class com.yxcorp.gateway.pay.webview.**{*;}

# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
-keep class com.yxcorp.gateway.pay.params.* {*;}
-keep class com.yxcorp.gateway.pay.api.* {*;}
-keep class com.yxcorp.gateway.pay.service.** { *; }
-keep class com.yxcorp.gateway.pay.withdraw.WithDrawHelper {*;}

# 这个 ProGuard 文件被指定为 consumerProguardFiles。
# 如此一来，AAR 包的使用者在其应用进行 ProGuard 混淆时，将自动附加下列规则，
# 省去了接入 JAR 时手动在 ProGuard 规则文件中加入支付宝 SDK 规则的步骤。

-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {
    <fields>;
    <methods>;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}

-dontwarn com.ta.utdid2.**
-dontwarn com.ut.device.**

-dontwarn com.alipay.mobilesecuritysdk.**
-dontwarn com.alipay.security.**

-dontwarn android.net.SSLCertificateSocketFactory

-keeppackagenames com.kwai.cloudgamecommom
-keeppackagenames com.android.cloudapp
-keeppackagenames com.baidu.cloud.service
-keeppackagenames com.haima.cloud.dataserver
-keeppackagenames com.vrviu.ls.bridge
-keep class com.kwai.sdk.update.ui.**{*;}

-keeppackagenames com.kwai.async

-keeppackagenames com.yxcorp.gateway

-keeppackagenames com.kwai.monitor.*
-keep class com.kwai.monitor.log.TurboAgent {*;}
-keeppackagenames com.smile.gifmaker.thread

-keeppackagenames com.yxcorp.retrofit
-keep public class com.smile.gifmaker.thread.**{*;}


-keep public class com.yxcorp.gateway.pay.**{*;}

-keep public class com.kwai.sdk.KwaiSdkVersionConstants {*;}

-keep public class com.kwai.sdk.subbus.account.login.listeners.ILoginStatusChangeListener {*;}
-keep public class com.kwai.sdk.subbus.account.login.listeners.ILoginStatusChangeListener$LoginStatusChangeListenerImpl {*;}
-keep public class com.kwai.sdk.combus.GameListenerManager {*;}
-keep public class com.kwai.sdk.combus.GameListenerManager$PermissionsResultListener {*;}
-keep public class com.kwai.sdk.combus.GameListenerManager$ActivityResultListener {*;}
-keep public class com.kwai.sdk.combus.GameListenerManager$ConfigurationChangeListener {*;}
-keep public class com.kwai.sdk.combus.util.IOUtils {*;}
-keep public class com.kwai.sdk.combus.util.PermissionUtil {*;}
-keep public class com.kwai.sdk.combus.util.SDcardUtils {*;}
-keep public class com.kwai.sdk.combus.util.ToastUtils {*;}
-keep public class com.kwai.sdk.combus.util.ViewUtil {*;}
-keep public class com.kwai.sdk.combus.net.KwaiHttp {*;}
-keep public class com.kwai.sdk.combus.view.LoadingView {*;}
-keep public class com.kwai.sdk.combus.net.annotation.** {*;}
-keep public class com.kwai.sdk.subbus.account.login.listeners.IUserQueryResponseListener{*;}
-keep public class com.kwai.sdk.OnTestUrlListener{*;}

# AD
-keep public class com.kwai.sdk.subbus.ad.** {*;}

# event
-keep public class com.kwai.sdk.combus.event.PrivacyAgreeEvent {*;}

-keep class com.wali.** {*;}
-keep class com.ut.device.** {*;}
-keep class com.ta.utdid2.** {*;}
-keep class org.json.alipay.** {*;}

-keep class com.xiaomi.** {*;}
-keep class com.miui.** {*;}
-keep class com.ishumei.** {*;}

-keep class com.kwai.middleware.facerecognition.DefaultOnFaceRecognitionListener.** {*;}
-keep class com.kwai.middleware.facerecognition.webank.** {*;}
-keep class com.kwai.middleware.facerecognition.aliyun.** {*;}
-keep class com.kwai.middleware.facerecognition.model.** {*;}
-keep class com.kwai.middleware.facerecognition.listener.** {*;}


# 为渠道打包平台校验添加
-keep class retrofit2.converter.scalars.ScalarRequestBodyConverter
-keep class retrofit2.converter.gson.GsonRequestBodyConverter
-keep class retrofit2.adapter.rxjava2.RxJava2CallAdapter
-keep class com.unionpay.UPPayAssistEx {*;}
-dontwarn com.unionPay.**
-keep class com.unionPay.** {*;}
-keep class org.simalliance.openmobileapi.** {*;}
-keep class com.kwai.sdkfusion.** {*;}

-keep class com.kwai.sdk.FaceRecognitionCallback{*;}


# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.
# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file
# instead of this one, which turns off the optimization flags.
# Adding optimization introduces certain risks, since for example not all optimizations performed by
# ProGuard works on all versions of Dalvik.  The following flags turn off various optimizations
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
# optimization can be used if you are only targeting Android 2.0 or later.)  Make sure you test
# thoroughly if you go this route.
-keepattributes SourceFile,LineNumberTable
-keepattributes Signature
-keepattributes InnerClasses
-keepattributes JavascriptInterface
-keepattributes *Annotation*
# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
# 混淆保持包名
-keeppackagenames com.kwai.middleware.azeroth
-keeppackagenames com.middleware.security
-keeppackagenames com.kwai.yoda

# 保留activity
-keep class com.kwai.component.activity.** {*;}

-keep class com.kuaishou.dfp.** { *; }
-keep class com.kuaishou.romid.** { *; }
# 快手安全
-keep class com.kuaishou.android.** { *; }
-keep class com.kuaishou.dfp.envdetect.jni.Watermelon {*;}
-keep class com.kuaishou.dfp.envdetect.Proxy.EngineProxy {*;}

-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
# 安全SDK Wrapper
-keeppackagenames com.middleware
-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}
-keep class com.middleware.security.* {*;}
-keep class com.middleware.security.configs.* {*;}
-keep class com.middleware.security.wrapper.* {*;}
# 安全SDK 依赖IPC PROXY
-keep class com.kwai.performance.fluency.ipcproxy.** {*;}

## 风控 SDK
-keep class com.kuaishou.weapon.** {*;}

# 安全
-keep class com.kwai.component.KSecurityHelper{*;}
-keep class com.kwai.component.KSecurityHelper*{*;}

# >>>>>>>>>   Kanas   <<<<<<<<
# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**
# 记录api耗时
-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}
-keepclassmembernames class retrofit2.OkHttpCall {
    okhttp3.Call *;
}
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}

-keep class com.kwai.kanas.** { *; }

-keep class com.kwai.kanas.debug.** { *; }
-keep class com.kwai.middleware.azeroth.** { *; }
-keep class com.kwai.middleware.skywalker.** { *; }
-keep class com.kwai.middleware.leia.** { *; }
-keep class com.kwai.yoda.** {*;}

# OAID configs
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class com.google.devtools.build.android.**{*;}

-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}


-keeppackagenames com.kuaishou.vader
-keepparameternames
# Serializable实体类
-keep class * implements java.io.Serializable {
    *;
}

-ignorewarnings







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }





# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }





# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

-keep class com.kwai.cloudgamecommon.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.kwai.sdk.pay
-keep class com.kwai.sdk.pay.PayService{*;}
-keep class com.kwai.sdk.pay.KwaiPay{
      public <methods>;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.kwai.sdk.pay
-keep class com.kwai.sdk.pay.ui.**{*;}
-keep class com.kwai.sdk.gatewaypay.GatewayPay{*;}
-keep class com.kwai.sdk.subbus.pay.ui.**{*;}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.yxcorp.gateway.pay
-keeppackagenames cn.gov.pbc.**
-keep class com.kwai.sdk.pay.OrderSysPay{
        public <methods>;
}






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

#不混淆内部类
-keepattributes InnerClasses

#不混淆jni调用类
-keepclasseswithmembers class *{
    native <methods>;
}

###################### 腾讯人脸 faceverify-BEGIN ###########################
-ignorewarnings
-keep public class com.tencent.ytcommon.**{*;}
-keep class com.tencent.turingface.sdk.*.TNative$aa { public *; }
-keep class com.tencent.turingface.sdk.*.TNative$aa$bb { public *; }
-keep class com.tencent.turingcam.** {*;}

-keep public class com.tencent.youtu.ytagreflectlivecheck.jni.**{*;}
-keep public class com.tencent.youtu.ytagreflectlivecheck.YTAGReflectLiveCheckInterface{
    public <methods>;
}
-keep public class com.tencent.youtu.ytposedetect.jni.**{*;}
-keep public class com.tencent.youtu.ytposedetect.data.**{*;}
-keep public class com.tencent.youtu.liveness.YTDeviceInfo{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker$*{*;}
-keep public class com.tencent.youtu.sdkkitframework.liveness.framework.YtSDKKitFrameworkTool{
   public *;
}
-keep public class com.tencent.youtu.sdkkitframework.liveness.common.YTImageData{
   *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.**{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbDeviceRiskInfo{
    public <fields>;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbUiTips{
    *;
}

#================数据上报混淆规则 start===========================
#实体类
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender$*{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAEvent{
     *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAParam{
     *;
}
#================数据上报混淆规则 end===========================

#######################faceverify-END#############################

####################### normal混淆规则-BEGIN#############################
#不混淆内部类
-keepattributes InnerClasses
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions

-keep public class com.tencent.cloud.huiyansdkface.normal.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*{
    *;
}
#bugly
-keep class com.tencent.bugly.idasc.**{
    *;
}
#wehttp混淆规则
-dontwarn com.tencent.cloud.huiyansdkface.okio.**
-keep class com.tencent.cloud.huiyansdkface.okio.**{
    *;
}
-dontwarn com.tencent.cloud.huiyansdkface.okhttp3.OkHttpClient$Builder
#for R8
-keep,allowobfuscation,allowshrinking class * implements com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback
-keep,allowobfuscation,allowshrinking interface com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback

####################### 腾讯人脸 normal混淆规则-END#############################


#######################阿里云人脸识别 begin#####################
-verbose

-keep class com.aliyun.aliyunface.network.model.** {*;}
-keep class com.aliyun.aliyunface.api.ZIMCallback {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacade {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacadeBuilder {*;}
-keep class com.aliyun.aliyunface.api.ZIMMetaInfo {*;}
-keep class com.aliyun.aliyunface.api.ZIMResponse {*;}
-keep class com.aliyun.aliyunface.api.ZIMSession {*;}
-keep class com.aliyun.aliyunface.config.**{*;}
-keep class com.aliyun.aliyunface.log.RecordBase {*;}
-keep class com.aliyun.aliyunface.ui.ToygerWebView {*;}

-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.alipay.zoloz.image.** {*;}
-keep class com.alipay.android.** {*;}

-keep class com.alipay.deviceid.** { *; }
-keep class net.security.device.api.** {*;}
-keep class face.security.device.api.** {*;}
-keep class org.json.** { *;}
-keep class com.alibaba.fastjson.** {*;}
-keep class com.alibaba.sdk.android.oss.** { *; }

-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

-keepclassmembers,allowobfuscation class * {
     @com.alibaba.fastjson.annotation.JSONField <fields>;
}

# SDK混淆配置
-keep class com.alipay.face.api.** {*;}
-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.dtf.face.api.** {*;}
-keep class com.dtf.face.ocr.verify.DTFOcrFacade { *; }
-keep class com.dtf.face.verify.** {*;}
-keep class com.dtf.face.network.model.** {*;}
-keep class com.dtf.face.network.APICallback {*;}
-keep class com.dtf.face.config.**{*;}
-keep class com.dtf.face.log.** {*;}
-keep class com.dtf.face.ui.overlay.** {*;}
-keep class com.dtf.face.ui.widget.ToygerWebView {*;}
-keep class com.dtf.face.utils.ClientConfigUtil{
   boolean needUploadPreviewTrace*();
   boolean needVideoExDegrade*();
   boolean isCfgVideoExDevice*();
}
-keep class com.dtf.toyger.base.** {*;}
-keep class com.dtf.face.network.mpass.biz.model.** { *; }
-keep class com.dtf.face.utils.LogUtils { *; }
-keep class com.dtf.wish.api.** { *; }
-keep class com.dtf.wish.ui.** { *; }
-keep class com.dtf.wish.ui.WishFragment{*;}
-keep class com.dtf.voice.api.** { *; }
-keep class xnn.* { *; }
-keep class facadeverify.** { *; }
-keep class baseverify.** { *; }
-keep class faceverify.** { *; }
-keep class ocrverify.** { *; }
-keep class wishverify.** { *; }

# R8编译混淆配置
-keep class com.dtf.face.ui.toyger.FaceLoadingFragment{ *; }
-keep class com.dtf.face.ui.toyger.FaceShowFragment{*;}
-keep class com.dtf.face.ui.toyger.FaceShowElderlyFragment{*;}
-keepclassmembers class com.dtf.face.camera.ICameraCallback{
   void onPreviewFrame*(*);
}
#######################阿里云人脸识别 end#####################

## NFC
-keep class com.eidlink.**{*;}
-keep class org.ejbca.cvc.**{*;}
-keep class org.jmrtd.**{*;}
-keep class net.sf.**{*;}
-keep class org.bouncycastle.**{*;} #nfc一期只支持身份证识别
-keep class net.sf.scuba.**{*;}
-keep class org.eid_bc.bouncycastle.jcajce.provider.symmetric.**{*;}
-ignorewarnings

#######################安全sdk #####################

-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}


#不混淆内部类
-keepattributes InnerClasses

#不混淆jni调用类
-keepclasseswithmembers class *{
    native <methods>;
}

###################### 腾讯人脸 faceverify-BEGIN ###########################
-ignorewarnings
-keep public class com.tencent.ytcommon.**{*;}
-keep class com.tencent.turingface.sdk.*.TNative$aa { public *; }
-keep class com.tencent.turingface.sdk.*.TNative$aa$bb { public *; }
-keep class com.tencent.turingcam.** {*;}

-keep public class com.tencent.youtu.ytagreflectlivecheck.jni.**{*;}
-keep public class com.tencent.youtu.ytagreflectlivecheck.YTAGReflectLiveCheckInterface{
    public <methods>;
}
-keep public class com.tencent.youtu.ytposedetect.jni.**{*;}
-keep public class com.tencent.youtu.ytposedetect.data.**{*;}
-keep public class com.tencent.youtu.liveness.YTDeviceInfo{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker$*{*;}
-keep public class com.tencent.youtu.sdkkitframework.liveness.framework.YtSDKKitFrameworkTool{
   public *;
}
-keep public class com.tencent.youtu.sdkkitframework.liveness.common.YTImageData{
   *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.**{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbDeviceRiskInfo{
    public <fields>;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbUiTips{
    *;
}

#================数据上报混淆规则 start===========================
#实体类
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender$*{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAEvent{
     *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAParam{
     *;
}
#================数据上报混淆规则 end===========================

#######################faceverify-END#############################

####################### normal混淆规则-BEGIN#############################
#不混淆内部类
-keepattributes InnerClasses
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions

-keep public class com.tencent.cloud.huiyansdkface.normal.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*{
    *;
}
#bugly
-keep class com.tencent.bugly.idasc.**{
    *;
}
#wehttp混淆规则
-dontwarn com.tencent.cloud.huiyansdkface.okio.**
-keep class com.tencent.cloud.huiyansdkface.okio.**{
    *;
}
-dontwarn com.tencent.cloud.huiyansdkface.okhttp3.OkHttpClient$Builder
#for R8
-keep,allowobfuscation,allowshrinking class * implements com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback
-keep,allowobfuscation,allowshrinking interface com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback

####################### 腾讯人脸 normal混淆规则-END#############################


#######################阿里云人脸识别 begin#####################
-verbose

-keep class com.aliyun.aliyunface.network.model.** {*;}
-keep class com.aliyun.aliyunface.api.ZIMCallback {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacade {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacadeBuilder {*;}
-keep class com.aliyun.aliyunface.api.ZIMMetaInfo {*;}
-keep class com.aliyun.aliyunface.api.ZIMResponse {*;}
-keep class com.aliyun.aliyunface.api.ZIMSession {*;}
-keep class com.aliyun.aliyunface.config.**{*;}
-keep class com.aliyun.aliyunface.log.RecordBase {*;}
-keep class com.aliyun.aliyunface.ui.ToygerWebView {*;}

-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.alipay.zoloz.image.** {*;}
-keep class com.alipay.android.** {*;}

-keep class com.alipay.deviceid.** { *; }
-keep class net.security.device.api.** {*;}
-keep class face.security.device.api.** {*;}
-keep class org.json.** { *;}
-keep class com.alibaba.fastjson.** {*;}
-keep class com.alibaba.sdk.android.oss.** { *; }

-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

-keepclassmembers,allowobfuscation class * {
     @com.alibaba.fastjson.annotation.JSONField <fields>;
}

# SDK混淆配置
-keep class com.alipay.face.api.** {*;}
-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.dtf.face.api.** {*;}
-keep class com.dtf.face.ocr.verify.DTFOcrFacade { *; }
-keep class com.dtf.face.verify.** {*;}
-keep class com.dtf.face.network.model.** {*;}
-keep class com.dtf.face.network.APICallback {*;}
-keep class com.dtf.face.config.**{*;}
-keep class com.dtf.face.log.** {*;}
-keep class com.dtf.face.ui.overlay.** {*;}
-keep class com.dtf.face.ui.widget.ToygerWebView {*;}
-keep class com.dtf.face.utils.ClientConfigUtil{
   boolean needUploadPreviewTrace*();
   boolean needVideoExDegrade*();
   boolean isCfgVideoExDevice*();
}
-keep class com.dtf.toyger.base.** {*;}
-keep class com.dtf.face.network.mpass.biz.model.** { *; }
-keep class com.dtf.face.utils.LogUtils { *; }
-keep class com.dtf.wish.api.** { *; }
-keep class com.dtf.wish.ui.** { *; }
-keep class com.dtf.wish.ui.WishFragment{*;}
-keep class com.dtf.voice.api.** { *; }
-keep class xnn.* { *; }
-keep class facadeverify.** { *; }
-keep class baseverify.** { *; }
-keep class faceverify.** { *; }
-keep class ocrverify.** { *; }
-keep class wishverify.** { *; }

# R8编译混淆配置
-keep class com.dtf.face.ui.toyger.FaceLoadingFragment{ *; }
-keep class com.dtf.face.ui.toyger.FaceShowFragment{*;}
-keep class com.dtf.face.ui.toyger.FaceShowElderlyFragment{*;}
-keepclassmembers class com.dtf.face.camera.ICameraCallback{
   void onPreviewFrame*(*);
}
#######################阿里云人脸识别 end#####################

## NFC
-keep class com.eidlink.**{*;}
-keep class org.ejbca.cvc.**{*;}
-keep class org.jmrtd.**{*;}
-keep class net.sf.**{*;}
-keep class org.bouncycastle.**{*;} #nfc一期只支持身份证识别
-keep class net.sf.scuba.**{*;}
-keep class org.eid_bc.bouncycastle.jcajce.provider.symmetric.**{*;}
-ignorewarnings

#######################安全sdk #####################

-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}



# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.
# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file
# instead of this one, which turns off the optimization flags.
# Adding optimization introduces certain risks, since for example not all optimizations performed by
# ProGuard works on all versions of Dalvik.  The following flags turn off various optimizations
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
# optimization can be used if you are only targeting Android 2.0 or later.)  Make sure you test
# thoroughly if you go this route.
-keepattributes SourceFile,LineNumberTable
-keepattributes Signature
-keepattributes InnerClasses
-keepattributes JavascriptInterface
-keepattributes *Annotation*
# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
# 混淆保持包名
-keeppackagenames com.kwai.middleware.azeroth
-keeppackagenames com.middleware.security
-keeppackagenames com.kwai.yoda

# 保留activity
-keep class com.kwai.component.activity.** {*;}

-keep class com.kuaishou.dfp.** { *; }
-keep class com.kuaishou.romid.** { *; }
# 快手安全
-keep class com.kuaishou.android.** { *; }
-keep class com.kuaishou.dfp.envdetect.jni.Watermelon {*;}
-keep class com.kuaishou.dfp.envdetect.Proxy.EngineProxy {*;}

-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
# 安全SDK Wrapper
-keeppackagenames com.middleware
-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}
-keep class com.middleware.security.* {*;}
-keep class com.middleware.security.configs.* {*;}
-keep class com.middleware.security.wrapper.* {*;}
# 安全SDK 依赖IPC PROXY
-keep class com.kwai.performance.fluency.ipcproxy.** {*;}

## 风控 SDK
-keep class com.kuaishou.weapon.** {*;}

# 安全
-keep class com.kwai.component.KSecurityHelper{*;}
-keep class com.kwai.component.KSecurityHelper*{*;}

# >>>>>>>>>   Kanas   <<<<<<<<
# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**
# 记录api耗时
-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}
-keepclassmembernames class retrofit2.OkHttpCall {
    okhttp3.Call *;
}
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}

-keep class com.kwai.kanas.** { *; }

-keep class com.kwai.kanas.debug.** { *; }
-keep class com.kwai.middleware.azeroth.** { *; }
-keep class com.kwai.middleware.skywalker.** { *; }
-keep class com.kwai.middleware.leia.** { *; }
-keep class com.kwai.yoda.** {*;}

# OAID configs
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class com.google.devtools.build.android.**{*;}

-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}


-keeppackagenames com.kuaishou.vader
-keepparameternames
# Serializable实体类
-keep class * implements java.io.Serializable {
    *;
}

-ignorewarnings







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }





# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }





# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
#-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# okhttp
-keepclassmembernames class okhttp3.RealCall {
    okhttp3.EventListener *;
}
-keep class okhttp3.Request { *; }






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# 保留行号，方便调试
-keepattributes SourceFile,LineNumberTable

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

-keepclasseswithmembers public class retrofit2.HttpException {
  public *;
}
-keepclassmembernames public class com.yxcorp.retrofit.model.RetrofitException {
  public okhttp3.Request *;
}

# GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keep public interface org.greenrobot.greendao.**
-keepclassmembers class	* extends org.greenrobot.greendao.AbstractDao {
  public static java.lang.String TABLENAME;
}
-keep class **$Properties {*;}

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}

# pb
-keep @interface com.kuaishou.protobuf.log.event.nano.** {*;}
-keep class com.kuaishou.protobuf.log.** {*;}







# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep @interface android.webkit.JavascriptInterface

# Java8一些东西不需要warning
-dontwarn java.lang.invoke.**

# 集成方不一定有Keep annotation的处理，保证Keep会被处理
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @android.support.annotation.Keep *;
}
-keep public enum com.kwai.yoda.models.ButtonParams$* {
  *;
 }



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

-keep class com.kwai.cloudgamecommon.** {*;}



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.kwai.sdk.pay
-keep class com.kwai.sdk.pay.PayService{*;}
-keep class com.kwai.sdk.pay.KwaiPay{
      public <methods>;
}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.kwai.sdk.pay
-keep class com.kwai.sdk.pay.ui.**{*;}
-keep class com.kwai.sdk.gatewaypay.GatewayPay{*;}
-keep class com.kwai.sdk.subbus.pay.ui.**{*;}




# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keeppackagenames com.yxcorp.gateway.pay
-keeppackagenames cn.gov.pbc.**
-keep class com.kwai.sdk.pay.OrderSysPay{
        public <methods>;
}






# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

#不混淆内部类
-keepattributes InnerClasses

#不混淆jni调用类
-keepclasseswithmembers class *{
    native <methods>;
}

###################### 腾讯人脸 faceverify-BEGIN ###########################
-ignorewarnings
-keep public class com.tencent.ytcommon.**{*;}
-keep class com.tencent.turingface.sdk.*.TNative$aa { public *; }
-keep class com.tencent.turingface.sdk.*.TNative$aa$bb { public *; }
-keep class com.tencent.turingcam.** {*;}

-keep public class com.tencent.youtu.ytagreflectlivecheck.jni.**{*;}
-keep public class com.tencent.youtu.ytagreflectlivecheck.YTAGReflectLiveCheckInterface{
    public <methods>;
}
-keep public class com.tencent.youtu.ytposedetect.jni.**{*;}
-keep public class com.tencent.youtu.ytposedetect.data.**{*;}
-keep public class com.tencent.youtu.liveness.YTDeviceInfo{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker$*{*;}
-keep public class com.tencent.youtu.sdkkitframework.liveness.framework.YtSDKKitFrameworkTool{
   public *;
}
-keep public class com.tencent.youtu.sdkkitframework.liveness.common.YTImageData{
   *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.**{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbDeviceRiskInfo{
    public <fields>;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbUiTips{
    *;
}

#================数据上报混淆规则 start===========================
#实体类
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender$*{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAEvent{
     *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAParam{
     *;
}
#================数据上报混淆规则 end===========================

#######################faceverify-END#############################

####################### normal混淆规则-BEGIN#############################
#不混淆内部类
-keepattributes InnerClasses
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions

-keep public class com.tencent.cloud.huiyansdkface.normal.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*{
    *;
}
#bugly
-keep class com.tencent.bugly.idasc.**{
    *;
}
#wehttp混淆规则
-dontwarn com.tencent.cloud.huiyansdkface.okio.**
-keep class com.tencent.cloud.huiyansdkface.okio.**{
    *;
}
-dontwarn com.tencent.cloud.huiyansdkface.okhttp3.OkHttpClient$Builder
#for R8
-keep,allowobfuscation,allowshrinking class * implements com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback
-keep,allowobfuscation,allowshrinking interface com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback

####################### 腾讯人脸 normal混淆规则-END#############################


#######################阿里云人脸识别 begin#####################
-verbose

-keep class com.aliyun.aliyunface.network.model.** {*;}
-keep class com.aliyun.aliyunface.api.ZIMCallback {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacade {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacadeBuilder {*;}
-keep class com.aliyun.aliyunface.api.ZIMMetaInfo {*;}
-keep class com.aliyun.aliyunface.api.ZIMResponse {*;}
-keep class com.aliyun.aliyunface.api.ZIMSession {*;}
-keep class com.aliyun.aliyunface.config.**{*;}
-keep class com.aliyun.aliyunface.log.RecordBase {*;}
-keep class com.aliyun.aliyunface.ui.ToygerWebView {*;}

-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.alipay.zoloz.image.** {*;}
-keep class com.alipay.android.** {*;}

-keep class com.alipay.deviceid.** { *; }
-keep class net.security.device.api.** {*;}
-keep class face.security.device.api.** {*;}
-keep class org.json.** { *;}
-keep class com.alibaba.fastjson.** {*;}
-keep class com.alibaba.sdk.android.oss.** { *; }

-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

-keepclassmembers,allowobfuscation class * {
     @com.alibaba.fastjson.annotation.JSONField <fields>;
}

# SDK混淆配置
-keep class com.alipay.face.api.** {*;}
-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.dtf.face.api.** {*;}
-keep class com.dtf.face.ocr.verify.DTFOcrFacade { *; }
-keep class com.dtf.face.verify.** {*;}
-keep class com.dtf.face.network.model.** {*;}
-keep class com.dtf.face.network.APICallback {*;}
-keep class com.dtf.face.config.**{*;}
-keep class com.dtf.face.log.** {*;}
-keep class com.dtf.face.ui.overlay.** {*;}
-keep class com.dtf.face.ui.widget.ToygerWebView {*;}
-keep class com.dtf.face.utils.ClientConfigUtil{
   boolean needUploadPreviewTrace*();
   boolean needVideoExDegrade*();
   boolean isCfgVideoExDevice*();
}
-keep class com.dtf.toyger.base.** {*;}
-keep class com.dtf.face.network.mpass.biz.model.** { *; }
-keep class com.dtf.face.utils.LogUtils { *; }
-keep class com.dtf.wish.api.** { *; }
-keep class com.dtf.wish.ui.** { *; }
-keep class com.dtf.wish.ui.WishFragment{*;}
-keep class com.dtf.voice.api.** { *; }
-keep class xnn.* { *; }
-keep class facadeverify.** { *; }
-keep class baseverify.** { *; }
-keep class faceverify.** { *; }
-keep class ocrverify.** { *; }
-keep class wishverify.** { *; }

# R8编译混淆配置
-keep class com.dtf.face.ui.toyger.FaceLoadingFragment{ *; }
-keep class com.dtf.face.ui.toyger.FaceShowFragment{*;}
-keep class com.dtf.face.ui.toyger.FaceShowElderlyFragment{*;}
-keepclassmembers class com.dtf.face.camera.ICameraCallback{
   void onPreviewFrame*(*);
}
#######################阿里云人脸识别 end#####################

## NFC
-keep class com.eidlink.**{*;}
-keep class org.ejbca.cvc.**{*;}
-keep class org.jmrtd.**{*;}
-keep class net.sf.**{*;}
-keep class org.bouncycastle.**{*;} #nfc一期只支持身份证识别
-keep class net.sf.scuba.**{*;}
-keep class org.eid_bc.bouncycastle.jcajce.provider.symmetric.**{*;}
-ignorewarnings

#######################安全sdk #####################

-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}


#不混淆内部类
-keepattributes InnerClasses

#不混淆jni调用类
-keepclasseswithmembers class *{
    native <methods>;
}

###################### 腾讯人脸 faceverify-BEGIN ###########################
-ignorewarnings
-keep public class com.tencent.ytcommon.**{*;}
-keep class com.tencent.turingface.sdk.*.TNative$aa { public *; }
-keep class com.tencent.turingface.sdk.*.TNative$aa$bb { public *; }
-keep class com.tencent.turingcam.** {*;}

-keep public class com.tencent.youtu.ytagreflectlivecheck.jni.**{*;}
-keep public class com.tencent.youtu.ytagreflectlivecheck.YTAGReflectLiveCheckInterface{
    public <methods>;
}
-keep public class com.tencent.youtu.ytposedetect.jni.**{*;}
-keep public class com.tencent.youtu.ytposedetect.data.**{*;}
-keep public class com.tencent.youtu.liveness.YTDeviceInfo{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker{*;}
-keep public class com.tencent.youtu.liveness.YTFaceTracker$*{*;}
-keep public class com.tencent.youtu.sdkkitframework.liveness.framework.YtSDKKitFrameworkTool{
   public *;
}
-keep public class com.tencent.youtu.sdkkitframework.liveness.common.YTImageData{
   *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.**{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbDeviceRiskInfo{
    public <fields>;
}
-keep public class com.tencent.cloud.huiyansdkface.facelight.provider.WbUiTips{
    *;
}

#================数据上报混淆规则 start===========================
#实体类
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender$*{
    *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAEvent{
     *;
}
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAParam{
     *;
}
#================数据上报混淆规则 end===========================

#######################faceverify-END#############################

####################### normal混淆规则-BEGIN#############################
#不混淆内部类
-keepattributes InnerClasses
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions

-keep public class com.tencent.cloud.huiyansdkface.normal.net.*$*{
    *;
}
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*{
    *;
}
#bugly
-keep class com.tencent.bugly.idasc.**{
    *;
}
#wehttp混淆规则
-dontwarn com.tencent.cloud.huiyansdkface.okio.**
-keep class com.tencent.cloud.huiyansdkface.okio.**{
    *;
}
-dontwarn com.tencent.cloud.huiyansdkface.okhttp3.OkHttpClient$Builder
#for R8
-keep,allowobfuscation,allowshrinking class * implements com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback
-keep,allowobfuscation,allowshrinking interface com.tencent.cloud.huiyansdkface.wehttp2.WeReq$Callback

####################### 腾讯人脸 normal混淆规则-END#############################


#######################阿里云人脸识别 begin#####################
-verbose

-keep class com.aliyun.aliyunface.network.model.** {*;}
-keep class com.aliyun.aliyunface.api.ZIMCallback {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacade {*;}
-keep class com.aliyun.aliyunface.api.ZIMFacadeBuilder {*;}
-keep class com.aliyun.aliyunface.api.ZIMMetaInfo {*;}
-keep class com.aliyun.aliyunface.api.ZIMResponse {*;}
-keep class com.aliyun.aliyunface.api.ZIMSession {*;}
-keep class com.aliyun.aliyunface.config.**{*;}
-keep class com.aliyun.aliyunface.log.RecordBase {*;}
-keep class com.aliyun.aliyunface.ui.ToygerWebView {*;}

-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.alipay.zoloz.image.** {*;}
-keep class com.alipay.android.** {*;}

-keep class com.alipay.deviceid.** { *; }
-keep class net.security.device.api.** {*;}
-keep class face.security.device.api.** {*;}
-keep class org.json.** { *;}
-keep class com.alibaba.fastjson.** {*;}
-keep class com.alibaba.sdk.android.oss.** { *; }

-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

-keepclassmembers,allowobfuscation class * {
     @com.alibaba.fastjson.annotation.JSONField <fields>;
}

# SDK混淆配置
-keep class com.alipay.face.api.** {*;}
-keep class com.alipay.zoloz.toyger.**{*;}
-keep class com.dtf.face.api.** {*;}
-keep class com.dtf.face.ocr.verify.DTFOcrFacade { *; }
-keep class com.dtf.face.verify.** {*;}
-keep class com.dtf.face.network.model.** {*;}
-keep class com.dtf.face.network.APICallback {*;}
-keep class com.dtf.face.config.**{*;}
-keep class com.dtf.face.log.** {*;}
-keep class com.dtf.face.ui.overlay.** {*;}
-keep class com.dtf.face.ui.widget.ToygerWebView {*;}
-keep class com.dtf.face.utils.ClientConfigUtil{
   boolean needUploadPreviewTrace*();
   boolean needVideoExDegrade*();
   boolean isCfgVideoExDevice*();
}
-keep class com.dtf.toyger.base.** {*;}
-keep class com.dtf.face.network.mpass.biz.model.** { *; }
-keep class com.dtf.face.utils.LogUtils { *; }
-keep class com.dtf.wish.api.** { *; }
-keep class com.dtf.wish.ui.** { *; }
-keep class com.dtf.wish.ui.WishFragment{*;}
-keep class com.dtf.voice.api.** { *; }
-keep class xnn.* { *; }
-keep class facadeverify.** { *; }
-keep class baseverify.** { *; }
-keep class faceverify.** { *; }
-keep class ocrverify.** { *; }
-keep class wishverify.** { *; }

# R8编译混淆配置
-keep class com.dtf.face.ui.toyger.FaceLoadingFragment{ *; }
-keep class com.dtf.face.ui.toyger.FaceShowFragment{*;}
-keep class com.dtf.face.ui.toyger.FaceShowElderlyFragment{*;}
-keepclassmembers class com.dtf.face.camera.ICameraCallback{
   void onPreviewFrame*(*);
}
#######################阿里云人脸识别 end#####################

## NFC
-keep class com.eidlink.**{*;}
-keep class org.ejbca.cvc.**{*;}
-keep class org.jmrtd.**{*;}
-keep class net.sf.**{*;}
-keep class org.bouncycastle.**{*;} #nfc一期只支持身份证识别
-keep class net.sf.scuba.**{*;}
-keep class org.eid_bc.bouncycastle.jcajce.provider.symmetric.**{*;}
-ignorewarnings

#######################安全sdk #####################

-keep interface com.middleware.security.wrapper.IKSecurityBase {*;}
-keep class com.middleware.security.MXSec {*;}

