# 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
isaacmanjarres@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 = *
