-ignorewarnings
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

-repackageclasses com._yim

# YIM
-keep class com.yim.YIM{*;}
-keep class com.yim.YIM$Companion{*;}
-keep class com.yim._YIMUtilsManager{*;}
-keep class com.yim._YIMUserManager{*;}
-keep class com.yim._YIMListenerManager{*;}
-keep class com.yim._YIMPushManager{*;}
-keep class com.yim._YIMConversationManager{*;}
-keep class com.yim._YIMMessageManager{*;}
-keep class com.yim._YIMTeamManager{*;}
-keep class com.yim._YIMEventManager{*;}
-keep class com.yim._YIMRoomManager{*;}
-keep class com.yim.manager.**$*{*;}
-keep class com.yim.core.**{*;}
-keep class com.yim.model.**{*;}
-keep class com.yim.utils.**$*{*;}

# Native methods
-keepclasseswithmembernames class io.objectbox.** {
    native <methods>;
}

# For __boxStore field in entities
-keep class io.objectbox.**{*;}
-keep class io.objectbox.BoxStore

-keep class * extends io.objectbox.Cursor {
    <init>(...);
}

# Native code expects names to match
-keep class io.objectbox.relation.ToOne {
    void setTargetId(long);
}
-keep class io.objectbox.relation.ToMany
-keep class io.objectbox.tree.LeafNode

-keep @interface io.objectbox.annotation.Entity

# Keep entity constructors
-keep @io.objectbox.annotation.Entity class * { <init>(...); }

# For relation ID fields
-keepclassmembers @io.objectbox.annotation.Entity class * {
    <fields>;
}

-keep interface io.objectbox.converter.PropertyConverter {*;}
-keep class * implements io.objectbox.converter.PropertyConverter {*;}

-keep class io.objectbox.exception.DbException {*;}
-keep class * extends io.objectbox.exception.DbException {*;}

-keep class io.objectbox.exception.DbExceptionListener {*;}
-keep class * implements io.objectbox.exception.DbExceptionListener {*;}

# for essentials
-dontwarn sun.misc.Unsafe
# SpotBugs annotations
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings

-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}
-keep class com.otaliastudios.**{*;}
-keep class com.fastjson.**{*;}
-keep class javax.**{*;}
-keep class de.huxhorn.**{*;}
-keep class org.greenrobot.**{*;}
-keep class org.json.**{*;}
-keep class com.ypush.**{*;}
-keep class top.zibin.**{*;}

-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json