# This is the official list of Skia authors for copyright purposes.
# 
# Names should be added to this file with one of the following patterns:
#
# For individual contributors:
# Name <email address>
#
# For corporate contributors:
# Organization <fnmatch pattern>
# See examples below or python fnmatch module documentation for more information.
#
# Please keep the list sorted.

ACCESS CO., LTD. <*@access-company.com>
ARM <*@arm.com>
George Wright <george@mozilla.com>
Google Inc. <*@google.com>
Igalia <*@igalia.com>
Intel <*@intel.com>
Jacek Caban <cjacek@gmail.com>
MIPS <*@imgtec.com>
NVIDIA <*@nvidia.com>
Opera Software ASA <*@opera.com>
Samsung <*@samsung.com>
Skia Buildbots <skia.buildbots@gmail.com>
Steve Singer <steve@ssinger.info>
The Chromium Authors <*@chromium.org>
Thiago Fransosi Farina <thiago.farina@gmail.com>
