# Names should be added to this file with this pattern:
#
# For individuals:
#   Name <email address>
#
# For organizations:
#   Organization <fnmatch pattern>
#

Google Inc. <*@google.com>

Alexandre Ardhuin <alexandre.ardhuin@gmail.com>
Ahmed Ashour <asashour@yahoo.com>
Honza Bittner <git@honzabittner.cz>
Patrice Chalin <pchalin@gmail.com>
Maxim Dikun <dikmax@gmail.com>
Bernardo Ferrari <bernaferrari2@gmail.com>
David Fong <davidfong19@gmail.com>
Xavier Hainaux <xavier.hainaux@gmail.com>
Alexey Knyazev <lexa.knyazev@gmail.com>
Jawahar <jawahars_16@live.in>
Keisuke Kishida <kishidak@tcd.ie>
Benjamin Li <benjamin.voila@gmail.com>
Guillermo López-Anglada <guillermo.lopez@outlook.com>
Parker Lougheed <parlough@gmail.com>
David Martos <davidmartos96@gmail.com>
Juan Pablo Paulsen <juanpablo.paulsen@gmail.com>
Mathieu Payette <matpayette@hotmail.com>
Luke Pighetti <git@lukepighetti.com>
Sem van Rij <sem@lekkerplakjekaas.nl>
Michael Joseph Rosenthal <rosenthalm93@gmail.com>
Muhammed Salih Guler <muhammedsalihguler@gmail.com>
Lucas Saudon <lsaudon@gmail.com>
Nolan Scobie <nolan.scobie@gmail.com>
TAKAHASHI Shuuji <shuuji3@gmail.com>
Cameron Steffen <cam.steffen94@gmail.com>
Danny Tuppeny <danny@tuppeny.com>
Ivan Tugay <listepo@gmail.com>
Rohan Vanheusden <rohan.vanheusden@gmail.com>
Minh Dao <asiancorporator@yahoo.de>
Sai Sandeep Mutyala <rageofepicfury@gmail.com>