# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Proguard flags to pass to R8 which do nothing, and thus allows R8 to
# arbitrarily assign code to different dex files. If we pass a flags file with
# no rules, R8 applies default main dex rules which usually include too much
# and pushes us over the main dex limit. We can't pass higher --min-api since we
# also want to allow multidex in libraries, which are compiled with a low
# min-api. Thus, we have rules which won't do anything to pass as a
# main-dex-rule.

-keep class this.should.not.match.anything {
  *;
}
