# 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>

Andrew Babin <code@andrewbab.in>
Dale Phurrough <dale@hidale.com>
David Morgan/Google Inc. <davidmorgan@google.com>
Frank Borden <frankborden2@gmail.com>
Harry Cameron/Google Inc. <hcameron@google.com>
Matan Lurey/Google Inc. <matanl@google.com>
Philipp Schiffmann <philippschiffmann93@gmail.com>
