# Below is a list of people and organizations that have contributed
# to the project. Names should be added to the list like so:
#
#   Name/Organization <email address>

Abhijeeth Padarthi <rkinabhi@gmail.com>
David Morgan/Google Inc. <davidmorgan@google.com>
Ivan Inozemtsev/Google Inc. <iinozemtsev@google.com>
John Dengis <jadengis@gmail.com>
Resul Alkan/MetGlobal <me@resulalkan.com>
Dao Hoang Son <dao@hoangson.vn>
