# People who can approve changes for submission
dsandler@android.com
edgarwang@google.com
emilychuang@google.com
evanlaird@google.com
leifhendrik@google.com
tmfang@google.com
virgild@google.com

# Exempt resource files (because they are in a flat directory and too hard to manage via OWNERS)
per-file *.xml=*
