This project consists of contributions from several people, recognized here for convenience,
in alphabetical order.

Agustín Delgado (Servinform S.A.)
Aitor Almeida (University of Deusto)
Alasdair Mackintosh (Google)
Alex Dupre
Alexander Martin (Haase & Martin GmbH)
Alexander Schmidt
Anders Borg
Andreas Pillath
Andrew Walbran (Google)
Andrey Sitnik
Androida.hu / http://www.androida.hu/
Antonio Manuel Benjumea (Servinform S.A.)
Asier Iturralde
Asmuri Anwar
Betaminos
Brian Brown (Google)
Bruce Allen
Chang Hyun Park
Christian Brunschen (Google)
Christoph Schulz (creatale GmbH)
Costa Walcott (SCVNGR)
crowdin.net
Daniel Switkin (Google)
Dave MacLachlan (Google)
David Phillip Oster (Google)
David Albert (Bug Labs)
David Olivier
David Walker (Google)
Diego Pierotto
Dion Hardy
drejc83
Eduardo Castillejo (University of Deusto)
Emanuele Aina
Eric Kobrin (Velocitude)
evansepdx
Erik Barbara
Francois B. (Google)
Fred Lin (Anobiit)
gcstang
Guenther Grau
Guillaume Le Biller
Hannes Erven
Hartmut Neubauer (Schweers Informationstechnologie GmbH)
hosigumayuugi
hypest (Barcorama project)
Ian W. Davis
Isaac Potoczny-Jones
Jacob Haynes (Google)
Jeff Breidenbach (Google)
Joan Montané (Softcatalà.cat)
John Connolly (Bug Labs)
Jonas Petersson (Prisjakt)
Joseph Wain (Google)
Juha Kuitunen
Juho Mikkonen
jwicks
Kamil Kaczmarczyk
Kazuki Nishiura
Kevin O'Sullivan (SITA)
Kevin Xue (NetDragon Websoft Inc., China)
Lachezar Dobrev
Luiz Silva
Luka Finžgar
Łukasz Stefaniak
Malte Starostik
Manuel Kasten
Marcelo
Mateusz Jędrasik
Matrix44
Matthew Schulkind (Google)
Matt York (LifeMarks)
mike32767
mikej06
Mohamad Fairol
Morgan Courbet
Nikolaos Ftylitakis
Nikolaus Huber
Olli
Pablo Orduña (University of Deusto)
Paul Hackenberger
perennialmind
Ralf Kistner
Randy Shen (Acer)
Rasmus Schrøder Sørensen
Richard Hřivňák
Romain Pechayre
Roman Nurik (Google)
Rustam Abdullaev
Ryan Alford
Sanford Squires
Satoshi Kametaya
Shachar Shemesh
Sean Owen (Google)
Shiyuan Guo / 郭世元
ShumovichY
Simon Flannery (Ericsson)
Steven Parkes
stoty74
Suraj Supekar
Sven Klinkhamer
techinstantdx
Thomas Gerbet
Tim Gernat
v.anestis
Vince Francis (LifeMarks)
Wolfgang Jung
Yakov Okshtein (Google)
