# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Keep the application entry point. Get rid of everything that is not
# reachable from there.
-keep public class shaking1.Shaking {
  public static void main(...);
}

# Keep two members if class is live
-keepclassmembers class * {
  public static int aStaticFieldThatIsNotUsedButKept;
  public java.lang.String aMethodThatIsNotUsedButKept();
}

# allow access modification to enable minification
-allowaccessmodification

# change package of renamed classes
-repackageclasses 'repackaged'
