-keepclassmembers enum ir.metrix.** { *; }

-keep class * extends ir.metrix.internal.init.MetrixComponentInitializer {
    public void preInitialize(android.content.Context);
    public void postInitialize(android.content.Context);
}

# Keep Exception names
-keepnames class ir.metrix.** extends java.lang.Exception

# -- Moshi --
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *

-dontwarn org.codehaus.mojo.animal_sniffer.*

# Fix application release build problem with R8
-keep class io.reactivex.rxjava3.disposables.RunnableDisposable { <init>(...); }
-if class ir.metrix.notification.actions.IntentAction
-keepnames class ir.metrix.notification.actions.IntentAction
-if class ir.metrix.notification.actions.IntentAction
-keep class ir.metrix.notification.actions.IntentActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.actions.IntentAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.actions.IntentAction
-keepclassmembers class ir.metrix.notification.actions.IntentAction {
    public synthetic <init>(java.lang.String,java.lang.String,java.util.List,java.lang.String,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.UserActivityAction
-keepnames class ir.metrix.notification.actions.UserActivityAction
-if class ir.metrix.notification.actions.UserActivityAction
-keep class ir.metrix.notification.actions.UserActivityActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.messages.upstream.NotificationActionMessage
-keepnames class ir.metrix.notification.messages.upstream.NotificationActionMessage
-if class ir.metrix.notification.messages.upstream.NotificationActionMessage
-keep class ir.metrix.notification.messages.upstream.NotificationActionMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
    private com.squareup.moshi.JsonAdapter nullableTimeAtMillisAdapter;
}
-if class ir.metrix.notification.messages.upstream.NotificationActionMessage
-keep @interface ir.metrix.utils.common.Millis
-if class ir.metrix.notification.messages.upstream.NotificationActionMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.NotificationActionMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.NotificationActionMessage {
    public synthetic <init>(java.lang.String,ir.metrix.notification.messages.upstream.NotificationActionMessage$NotificationResponseAction,java.lang.String,ir.metrix.utils.common.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messaging.TrackNotification
-keepnames class ir.metrix.notification.messaging.TrackNotification
-if class ir.metrix.notification.messaging.TrackNotification
-keep class ir.metrix.notification.messaging.TrackNotificationJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messaging.TrackNotification
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messaging.TrackNotification
-keepclassmembers class ir.metrix.notification.messaging.TrackNotification {
    public synthetic <init>(java.lang.String,java.lang.String,java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.downstream.UpdateConfigMessage
-keepnames class ir.metrix.notification.messages.downstream.UpdateConfigMessage
-if class ir.metrix.notification.messages.downstream.UpdateConfigMessage
-keep class ir.metrix.notification.messages.downstream.UpdateConfigMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messages.downstream.UpdateConfigMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.downstream.UpdateConfigMessage
-keepclassmembers class ir.metrix.notification.messages.downstream.UpdateConfigMessage {
    public synthetic <init>(java.util.Map,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.upstream.NotificationReportMessage
-keepnames class ir.metrix.notification.messages.upstream.NotificationReportMessage
-if class ir.metrix.notification.messages.upstream.NotificationReportMessage
-keep class ir.metrix.notification.messages.upstream.NotificationReportMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messages.upstream.NotificationReportMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.NotificationReportMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.NotificationReportMessage {
    public synthetic <init>(java.lang.String,int,java.util.Map,java.util.Map,java.util.List,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.internal.task.StoredTaskInfo
-keepnames class ir.metrix.notification.internal.task.StoredTaskInfo
-if class ir.metrix.notification.internal.task.StoredTaskInfo
-keep class ir.metrix.notification.internal.task.StoredTaskInfoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.internal.task.StoredTaskInfo
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.internal.task.StoredTaskInfo
-keepclassmembers class ir.metrix.notification.internal.task.StoredTaskInfo {
    public synthetic <init>(androidx.work.ExistingWorkPolicy,androidx.work.NetworkType,java.lang.String,java.lang.String,int,ir.metrix.utils.common.Time,androidx.work.BackoffPolicy,java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.downstream.CancelNotificationMessage
-keepnames class ir.metrix.notification.messages.downstream.CancelNotificationMessage
-if class ir.metrix.notification.messages.downstream.CancelNotificationMessage
-keep class ir.metrix.notification.messages.downstream.CancelNotificationMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.actions.DownloadAppAction
-keepnames class ir.metrix.notification.actions.DownloadAppAction
-if class ir.metrix.notification.actions.DownloadAppAction
-keep class ir.metrix.notification.actions.DownloadAppActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.actions.DownloadAppAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.actions.DownloadAppAction
-keepclassmembers class ir.metrix.notification.actions.DownloadAppAction {
    public synthetic <init>(java.lang.String,java.lang.String,boolean,java.lang.String,ir.metrix.utils.common.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.upstream.UserInputDataMessage
-keepnames class ir.metrix.notification.messages.upstream.UserInputDataMessage
-if class ir.metrix.notification.messages.upstream.UserInputDataMessage
-keep class ir.metrix.notification.messages.upstream.UserInputDataMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messages.upstream.UserInputDataMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.UserInputDataMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.UserInputDataMessage {
    public synthetic <init>(java.lang.String,java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.FallbackAction
-keepnames class ir.metrix.notification.actions.FallbackAction
-if class ir.metrix.notification.actions.FallbackAction
-keep class ir.metrix.notification.actions.FallbackActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-keepnames class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-if class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-keep class ir.metrix.notification.messages.upstream.ApplicationDownloadMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
    private com.squareup.moshi.JsonAdapter nullableTimeAtSecondsAdapter;
}
-if class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-keep @interface ir.metrix.utils.common.Seconds
-if class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.ApplicationDownloadMessage {
    public synthetic <init>(java.lang.String,java.lang.String,ir.metrix.utils.common.Time,ir.metrix.utils.common.Time,ir.metrix.utils.common.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.upstream.UserNotificationMessage
-keepnames class ir.metrix.notification.messages.upstream.UserNotificationMessage
-if class ir.metrix.notification.messages.upstream.UserNotificationMessage
-keep class ir.metrix.notification.messages.upstream.UserNotificationMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messages.upstream.UserNotificationMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.UserNotificationMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.UserNotificationMessage {
    public synthetic <init>(java.util.Map,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.WebViewAction
-keepnames class ir.metrix.notification.actions.WebViewAction
-if class ir.metrix.notification.actions.WebViewAction
-keep class ir.metrix.notification.actions.WebViewActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.actions.WebViewAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.actions.WebViewAction
-keepclassmembers class ir.metrix.notification.actions.WebViewAction {
    public synthetic <init>(java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.DialogAction
-keepnames class ir.metrix.notification.actions.DialogAction
-if class ir.metrix.notification.actions.DialogAction
-keep class ir.metrix.notification.actions.DialogActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.actions.DialogAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.actions.DialogAction
-keepclassmembers class ir.metrix.notification.actions.DialogAction {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.util.List,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-keepnames class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-if class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-keep class ir.metrix.notification.messages.upstream.ApplicationInstallMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
    private com.squareup.moshi.JsonAdapter nullableTimeAtSecondsAdapter;
}
-if class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-keep @interface ir.metrix.utils.common.Seconds
-if class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.upstream.ApplicationInstallMessage
-keepclassmembers class ir.metrix.notification.messages.upstream.ApplicationInstallMessage {
    public synthetic <init>(java.lang.String,ir.metrix.notification.messages.upstream.ApplicationInstallMessage$InstallStatus,java.lang.String,ir.metrix.utils.common.ApplicationDetail,ir.metrix.utils.common.Time,ir.metrix.utils.common.Time,ir.metrix.utils.common.Time,ir.metrix.utils.common.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.DismissAction
-keepnames class ir.metrix.notification.actions.DismissAction
-if class ir.metrix.notification.actions.DismissAction
-keep class ir.metrix.notification.actions.DismissActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.actions.AppAction
-keepnames class ir.metrix.notification.actions.AppAction
-if class ir.metrix.notification.actions.AppAction
-keep class ir.metrix.notification.actions.AppActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.actions.CafeBazaarRateAction
-keepnames class ir.metrix.notification.actions.CafeBazaarRateAction
-if class ir.metrix.notification.actions.CafeBazaarRateAction
-keep class ir.metrix.notification.actions.CafeBazaarRateActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.notification.messages.downstream.NotificationMessage
-keepnames class ir.metrix.notification.messages.downstream.NotificationMessage
-if class ir.metrix.notification.messages.downstream.NotificationMessage
-keep class ir.metrix.notification.messages.downstream.NotificationMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
    private com.squareup.moshi.JsonAdapter nullableTimeAtMillisAdapter;
}
-if class ir.metrix.notification.messages.downstream.NotificationMessage
-keep @interface ir.metrix.utils.common.Millis
-if class ir.metrix.notification.messages.downstream.NotificationMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.downstream.NotificationMessage
-keepclassmembers class ir.metrix.notification.messages.downstream.NotificationMessage {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.List,ir.metrix.notification.actions.Action,int,boolean,java.lang.String,int,int,boolean,java.lang.String,java.lang.String,boolean,java.lang.String,boolean,boolean,java.lang.String,java.lang.String,java.lang.String,ir.metrix.utils.common.Time,java.lang.String,java.lang.String,java.util.Date,java.lang.Long,java.lang.Integer,java.util.Map,boolean,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.messages.downstream.NotificationButton
-keepnames class ir.metrix.notification.messages.downstream.NotificationButton
-if class ir.metrix.notification.messages.downstream.NotificationButton
-keep class ir.metrix.notification.messages.downstream.NotificationButtonJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.messages.downstream.NotificationButton
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.messages.downstream.NotificationButton
-keepclassmembers class ir.metrix.notification.messages.downstream.NotificationButton {
    public synthetic <init>(java.lang.String,ir.metrix.notification.actions.Action,java.lang.String,java.lang.String,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.DownloadAndWebViewAction
-keepnames class ir.metrix.notification.actions.DownloadAndWebViewAction
-if class ir.metrix.notification.actions.DownloadAndWebViewAction
-keep class ir.metrix.notification.actions.DownloadAndWebViewActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.notification.actions.DownloadAndWebViewAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.notification.actions.DownloadAndWebViewAction
-keepclassmembers class ir.metrix.notification.actions.DownloadAndWebViewAction {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String,ir.metrix.utils.common.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.notification.actions.UrlAction
-keepnames class ir.metrix.notification.actions.UrlAction
-if class ir.metrix.notification.actions.UrlAction
-keep class ir.metrix.notification.actions.UrlActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}


