# This is the official list of Wuffs authors for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation.

# Names should be added to this file as one of
#     Organization's name
#     Individual's name <submission email address>
#     Individual's name <submission email address> <email2> <emailN>
# See CONTRIBUTORS for the meaning of multiple email addresses.

# Please keep the list sorted.

Andrew Dassonville <dassonville.andrew@gmail.com>
Google Inc.
Jimmy Casey <casey.jimmy@gmail.com>
Mike Kaufman <mkaufman@microsoft.com>
Muhammad Aldo Firmansyah <TheCrott@users.noreply.github.com>
