# People who have agreed to one of the CLAs and can contribute patches.
# The AUTHORS file lists the copyright holders; this file
# lists people.  For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#
# https://developers.google.com/open-source/cla/individual
# https://developers.google.com/open-source/cla/corporate
#
# Names should be added to this file as:
#     Name <email address>

Tony Allevato <allevato@google.com>
Jon Brandvein <brandjon@google.com>
bttk <bttk@google.com>
Chris Parsons <cparsons@google.com>
Dave MacLachlan <dmaclach@google.com>
Dmitry Lomov <dslomov@google.com>
Jingwen Chen <jingwen@google.com>
Laurent Le Brun <laurentlb@google.com>
Nathan Herring <nherring@google.com>
