# Authoritative list of Dr. No reviewers to approve changes on GKI release
# branches, such as android12-5.10.
#
# This file has no effect in this branch, but is referred to from release
# branches. So, please do not move or rename.
#
# See the GKI release documentation (go/gki-dr-no) for further details.

# Main reviewers
adelva@google.com
joneslee@google.com
jstultz@google.com
maennich@google.com
saravanak@google.com
surenb@google.com
vmartensson@google.com
tkjos@google.com
willdeacon@google.com
willmcvicker@google.com

# GKI Release Team
howardsoc@google.com #{LAST_RESORT_SUGGESTION}
szuweilin@google.com #{LAST_RESORT_SUGGESTION}

# Backup
sspatil@google.com #{LAST_RESORT_SUGGESTION}
malchev@google.com #{LAST_RESORT_SUGGESTION}

# Give DrNo Exceptions to TEST_MAPPING or test xml configs
per-file */TEST_MAPPING = *
per-file */*.xml = *
