#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Simple map from realname to...
# realname : ([keynames], "email address")

all_names = {
    "Adrian Davey"       : (["ade@openembedded.org"], "ade@beth2.org"),
    "Alan Carvalho de Assis"  : (["acassis@gmail.com"], "acassis@gmail.com"),
    "Alessandro Gardich" : (["gremlin@gremlin.it"], "gremlin@gremlin.it"),
    "Alessandro Iurlano" : (["Alessandro Iurlano alessandro.iurlano@gmail.com", "alessandro.iurlano@gmail.com"], "alessandro.iurlano@gmail.com"),
    "Alexander Hanff"    : (["core.ldf@gmail.com"], "core.ldf@gmail.com"),
    "Alexis Maldonado "  : (["Alexis Maldonado <maldonad@cs.tum.edu>"], "maldonad@cs.tum.edu"),
    "Alex Lange"         : (["Alex Lange"], "chicken@handhelds.org"),
    "Alex Osborne"       : (["Alex Osborne"], "ato@meshy.org"),
    "Andrea Adami"       : (["andrea.adami@gmail.com"], "andrea.adami@gmail.com"),
    "Andrew Paulsen"     : (["andrew.paulsen@gmail.com"], "andrew.paulsen@gmail.com"),
    "Andrew Wilcox"      : (["awilcox@openembedded.org"], "andy@protium.com"),
    "Angus Ainslie"      : (["angus@handheldshell.com"], "angus@handheldshell.com"),
    "ant"                : (["ant", "ant, Jay"], "ant@unknown.openembedded.org"),
    "Antonio Ospite"     : (["ospite@studenti.unina.it"], "ospite@studenti.unina.it"),
    "Antti Andreimann"   : (["antti.andreimann@mail.ee", "mailto:antti.andreimann@mail.ee"], "antti.andreimann@mail.ee"),
    "araimondi"          : (["araimondi@gmx.net"], "araimondi@gmx.net"),
    "Arjan Schrijver"    : (["arjan@openembedded.org"], "arjan@anymore.nl"),
    "Bastian Ballmann"   : (["balle@chaostal.de", "Bastian Ballmann <balle@chaostal.de>"], "balle@chaostal.de"),
    "Bernhard Guillon"   : (["Bernhard.Guillon@opensimpad.org", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org>", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org> - close #1874"], "Bernhard.Guillon@opensimpad.org"),
    "Bernhard Rosenkraenzer" : (["bero@arklinux.org"], "bero@arklinux.org"),
    "Bignaux Ronan"      : (["ronan@aimao.org"], "ronan@aimao.org"),
    "Bruno Randolf"      : (["br1@openembedded.org", "(none)!br1"], "br1@subnet.at"),
    "Carsten Schneider"  : (["Carsten Schneider <zcarsten@gmx.net>"], "zcarsten@gmx.net"),
    "ccsmart"            : (["ccsmart@openembedded.org", "ccsmart@smartpal.de"], "ccsmart@smartpal.de"),
    "Cesar Eduardo Barros"     : (["cesarb@cesarb.net"], "cesarb@cesarb.net"),
    "Chia-I Wu"          : (["olvaffe@gmail.com"], "olvaffe@gmail.com"),
    "Chris Larson"       : (["clarson@kergoth.com", "tuxnami.org!kergoth", "(none)!kergoth", "ti.com!kergoth", "direwolf!kergoth", "ti.com!a0868066", "ti.com!patch", "local!kergoth", "local[kergoth]!kergoth", "handhelds.org!kergoth", "org[kergoth]!kergoth", "kergoth.com!kergoth", "com[kergoth]!kergoth"], "clarson@kergoth.com"),
    "Chris Lord"         : (["Cwiiis", "(none)!cwiiis"], "chris@openedhand.com"),
    "Christiano P."      : (["Cristiano P. <cris69@solnet.ch>"], "cris69@solnet.ch"),
    "Clark Wixon"        : (["cwixon@usa.net"], "cwixon@usa.net"),
    "Clement Hermann"    : (["clement.hermann@free.fr"], "clement.hermann@free.fr"),
    "Cliff Brake"        : (["cbrake@openembedded.org", "accelent.com!cbrake", "rr.com!cbrake"], "cbrake@bec-systems.com"),
    "Craig Hughes"       : (["craig@gumstix.com"], "craig@gumstix.com"),
    "Cyril Romain"       : (["c.romain@laposte.net", "CyrilRomain", "Cyril Romain", "cyril Romain <c.romain@laposte.net>", "Cyril Romain <c.romain@laposte.net>", "cyril.romain@gmail.com", "cyril.romain@laposte.net"], "cyril.romain@gmail.com"),
    "Daniel Willmann"    : (["daniel@openembedded.org", "daniel@totalueberwachung.de"], "daniel@totalueberwachung.de"),
    "Dan Williams"       : (["Dan Williams <dan.j.williams@gmail.com>"], "dan.j.williams@gmail.com"),
    "David Karlstrom"    : (["daka@nslu2-linux.org", "daka@thg.se"], "daka@thg.se"),
    "Denys Dmytriyenko"  : (["denis@denix.org"], "denis@denix.org"),
    "Derek Young"        : (["dyoung@nslu2-linux.org", "(none)!dereky", "(none)!dyoung"], "dyoung@nslu2-linux.org"),
    "Dirk Opfer"         : (["dirk@openembedded.org", "opfer.lan!dirk"], "dirk@opfer-online.de"),
    "Dmitry Artamonow"   : (["DmitryArtamonow", "mad_soft@inbox.ru"], "mad_soft@inbox.ru"),
    "Dmitry Baryshkov"   : (["Dmitry Baryshkov <dbaryshkov@gmail.com>", "dbaryshkov@gmail.com"], "dbaryshkov@gmail.com"),
    "Dojii Seketeli"     : (["dodji@openedhand.com"], "dodji@openedhand.com"),
    "Dominik Kuhlen"     : (["kuhlen@openembedded.org"], "kuhlen@gmit-gmbh.de"),
    "Eblis"              : (["eblis102@gmail.com"], "eblis102@gmail.com"),
    "Erik Hovland"       : (["erik@openembedded.org", "erik@hovland.org"], "erik@hovland.org"),
    "Esben Haabendal"    : (["eha@doredevelopment.dk"], "eha@doredevelopment.dk"),
    "Fabrice Aeschbacher": (["Fabrice.Aeschbacher@siemens.com"], "fabrice.aeschbacher@siemens.com"),
    "Felix Domke"        : (["tmbinc@openembedded.org"], "tmbinc@elitedvb.ne"),
    "Florian Boor"       : (["florian@openembedded.org"], "florian.boor@kernelconcepts.de"),
    "Frans Meulenbroeks" : (["eFfeM@openembedded.org"], "fransmeulenbroeks@yahoo.com"),
    "Frederic Bompart"   : (["frederic@openembedded.org"], "frederic@unknown.openembedded.org"),
    "Geoffrey Wossum"    : (["gwossum", "gwossum@acm.org", "geoffrey.wossum"], "gwossum@acm.org"),
    "Gerald Britton"     : (["doomcom.org!gbritton", "org[gbritton]!gbritton"], "gbritton@doomcom.org"),
    "giel"               : (["giel"], "giel@unknown.openembedded.org"),
    "gilligan"           : (["gilligan@openembedded.org"], "gilligan@unknown.openembedded.org"),
    "Giorgio Padrin"     : (["Giorgio Padrin <giorgio@mandarinlogiq.org>"], "giorgio@mandarinlogiq.org"),
    "GoxboxLive"         : (["GoxboxLive <goxboxlive@gmail.com>"], "goxboxlive@gmail.com"),
    "Graeme Gregory"     : (["dp@xora.org.uk", "xora@openembedded.org", "hyboria!xora", "(none)!xora", "(none)!XorA"], "dp@xora.org.uk"),
    "Greg Gilbert"       : (["brooks.edu!ggilbert", "(none)!ggilbert", "treke.ath.cx!ggilbert", "treke.net!ggilbert"], "greg@treke.net"),
    "Grzegorz Ratajczak" : (["McGregor <mcgregor@blackmesaeast.com.pl>"], "mcgregor@blackmesaeast.com.pl"),
    "Harald Welte"       : (["laforge@openmoko.org"], "laforge@openmoko.org"),
    "Helge Deller"       : (["deller@gmx.de"], "deller@gmx.de"),
    "Henning Heinold"    : (["woglinde", "woglinde@openembedded.org", "woglinde2@openembedded.org"], "heinold@inf.fu-berlin.de"),
    "Henryk Ploetz"      : (["henryk@openembedded.org", "henryk@openmoko.org", "henryk.ploetz"], "henryk@openmoko.org"),
    "Henry von Tresckow" : (["hvontres@gmail.com", "hvontres"], "hvontres@gmail.com"),
    "hillct-oe"          : (["hillct-oe@pinnacledigital.com"], "hillct-oe@pinnacledigital.com"),
    "Holger Freyther"    : (["freyther@openembedded.org", "zecke@selfish.org", "handhelds.org!zecke", "(none)!ich"], "zecke@selfish.org"),
    "Holger Schurig"     : (["schurig@openembedded.org", "hs4233@mail.mn-solutions.de", "homelinux.net!schurig", "mn-logistik.de!schurig", "mn-solutions.de!schurig"], "schurig@mn-solutions.de"),
    "ja4mail"            : (["jay4mail@gmail.com"], "jay4mail@gmail.com"),
    "Jake Morrison"      : (["Jake MORRISON", "Jake Morrison <jake@cogini.com>", "Jake MORRISON <jake@cogini.com>"], "jake@cogini.com"),
    "Jamie Lenehan"      : (["lenehan@openembedded.org", "lenehan@twibble.org"], "lenehan@twibble.org"),
    "Jan Lübbe"          : (["jluebbe@lasnet.de", "jluebbe@openembedded.org"], "jluebbe@debian.org"),
    "Jeremy Laine"       : (["jemery_laine", "Jereme_Laine", "Jeremy_Laine", "jeremy.laine@m4x.org", "jeremy_laine@openembedded.org", "jeremy_laine"], "jeremy.laine@m4x.org"),
    "Jeroen Hoek"        : (["Jeroen Hoek"], "mail@jeroenhoek.nl"),
    "Joaquim Duran"      : (["Joaquim Duran <joaquinduran@adtelecom.es>", "joaquinduran@adtelecom.es"], "joaquinduran@adtelecom.es"),
    "John Bowler"        : (["jbowler@nslu2-linux.org", "kalmiopsis!jbowler"], "jbowler@nslu2-linux.org"),
    "John Lee"           : (["john_lee@openembedded.org", "john_lee@openmoko.com"], "john_lee@openmoko.org"),
    "Jonathan McDowell"  : (["noodles@openembedded.org", "orange!noodles"], "noodles@earth.li"),
    "Jordan Crouse"      : (["amd.com!jcrouse"], "jordan.crouse@amd.com"),
    "Jorik Jonker"       : (["jorik@kippendief.biz"], "jorik@kippendief.biz"),
    "José Bernardo de Bandos Rodrigues da Silva" : (["jbs@bandos.homelinux.com"], "jbs@bandos.homelinux.com"),
    "Joseph Cole"        : (["jnc@openembedded.org"], "jnc@unknown.openembedded.org"),
    "Joshua Wise"        : (["joshuawise.com!joshua"], "joshua@joshuawise.com"),
    "jp30"               : (["jp30@nslu2-linux.org"], "jp30@nslu2-linux.org"),
    "Junqian Gordon Xu"  : (["xjqian@gmail.com", "xjqian@openembedded.org"], "xjqian@gmail.com"),
    "Justin Patrin"      : (["justinp@openembedded.org"], "papercrane@gmail.com"),
    "Kalev Lember"       : (["kalev@smartlink.ee"], "kalev@smartlink.ee"),
    "Karol Sokolowski"   : (["Karol Sokolowski <sokoowpwr@o2.pl>"], "sokoowpwr@o2.pl"),
    "Khem Raj"           : (["khem@openembedded.org", "KhemRaj", "raj.khem@gmail.com"], "raj.khem@gmail.com"),
    "Koen Kooi"          : (["koen@openembedded.org", "(none)!koen", "utwente.nl!koen", "void!koen"], "koen@openembedded.org"),
    "kolla"              : (["kolla@uninett.no"], "kolla@uninett.no"),
    "Kristoffer Ericson" : (["kristoffer@openembedded.org"], "kristoffer_e1@hotmail.com"),
    "Leon Woestenberg"   : (["likewise@gmx.net", "likewise@openembedded.org"], "leon.woestenberg@gmail.com"),
    "Leon Zhang"         : (["Leon Zhang"], "leoncamel@gmail.com"),
    "Liam Girdwood"      : (["lrg@openembedded.org"], "liam.girdwood@wolfsonmicro.com"),
    "Lorn Potter"        : (["trolltech.com.au!lpotter", "(none)!lpotter"], "lpotter@trolltech.com"), 
    "Lukas Gorris"       : (["Lukas Gorris", "lukas.gorris@gmx.de"], "lukas.gorris@gmx.de"),
    "Manuel Teira"       : (["Manuel Teira <manuel.teira@telefonica.net>", "manuel.teira@telefonica.net", "sirfred@openembedded.org"], "manuel.teira@telefonica.net"),
    "Marcin Juszkiewicz" : (["Marcin", "Marcin Juszkiewicz <openembedded@hrw.one.pl>", "Marcin Juzkiewicz <hrw@openembedded.org>", "hrw@openedhand.com", "hrw@openembedded.org", "local!szczepan", "hrw.one.pl!szczepan", "hrw.one.pl!hrw", "local!hrw"], "hrw@openembedded.org"),
    "Marek Vasut"        : (["MarekVasut", "marek.vasut@gmail.com", "Marek Vasut <marek.vasut@gmail.com>", "Marek Vašut <marek.vasut@gmail.com>"], "marek.vasut@gmail.com"),
    "Mark Brown"         : (["broonie@sirena.org.uk", "broonie"], "broonie@sirena.org.uk"),
    "Martin Dietze"      : (["MartinDietze@openembedded.org"], "di@fh-wedel.de"),
    "Matthew Swabey"     : (["mas@ecs.soton.ac.uk", "mattaw"], "mas@ecs.soton.ac.uk"),
    "Matthew Allum"      : (["(none)!mallum"], "mallum@openedhand.com"),
    "Matthias Goebl"     : (["mgoebl@openembedded.org"], "oe@m.goebl.net"),
    "Matthias Hentges"   : (["coredump2@openembedded.org", "coredump@openembedded.org", "local!CoreDump", "handhelds.org!CoreDump", "local!mhentges"], "oe@hentges.net"),
    "Matt Reimer"        : (["mreimer@openembedded.org", "mattjreimer@gmail.com"], "mattjreimer@gmail.com"),
    "Michael Krelin"     : (["polyonymous", "polyonymous@klever.net", "polyonymous@openembedded.org"], "hacker@klever.net"),
    "Michael Lauer"      : (["mickeyl", "mickeyl@openembedded.org", "uni-frankfurt.de!mickeyl", "uni-frankfurt.de!mickey", "uni-frankfurt.de!patch", "vanille.de!mickey", "vanille.de!mickeyl", "de[mickey]!mickey", "de[mickey]!mickeyl"], "mickey@vanille-media.de"),
    "Michael-Luke Jones" : (["blaster8@nslu2-linux.org"], "mlj28@cam.ac.uk"),
    "Michal Panczyk"     : (["mpanczyk@gmail.com"], "mpanczyk@gmail.com"),
    "Mika Laitio"        : (["lamikr@openembedded.org"], "lamikr@cc.jyu.fi"),
    "Mike Montour"       : (["mail@mmontour.net"], "mail@mmontour.net"),
    "Mike Westerhof"     : (["mwester@openembedded.org", "mwester@wraith"], "mwester@dls.net"),
    "Mustafa Yuecel"     : (["yuecelm@nslu2-linux.org", "yuecelm@openembedded.org", "musti@openembedded.org"], "yuecelm@ee.ethz.ch"),
    "Nicolas Ferre"      : (["nicolas.ferre@atmel.com", "nicolas.ferre@rfo.atmel.com", "nicolasfr@gmail.com", "Enodr <nicolasfr@gmail.com>"], "nicolasfr@gmail.com"),
    "Nigel Kostiuck"     : (["labotomy.net!emte", "(none)!emte"], "emte@labotomy.net"),
    "Oliver Fels"        : (["oliver.fels@gmx.net", "Oliver Fels <oliver.fels@gmx.net>"], "oliver.fels@gmx.net"),
    "Ondrej Sokol"       : (["Ondrej Sokol <o.sokol@seznam.cz>"], "o.sokol@seznam.cz"),
    "OpenEmbedded Project"     : (["oe@openembedded.org"], "openembedded-devel@lists.openembedded.org"),
    "Openmoko anonymizer key"  : (["openmoko@openembedded.org"], "devel@lists.openmoko.org"),
    "Otavio Salvador"    : (["otavio@ossystems.com.br", "Otavio Salvador <otavio@debian.org>", "Otavio Salvador <otavio@ossystems.com.br>"], "otavio@ossystems.com.br"),
    "Ottavio Campana"    : (["Ottavio Campana"], "ottavio@campana.vi.it"),
    "Ovidiu Sas"         : (["osas@nslu2-linux.org"], "sip.nslu@gmail.com"),
    "Oyvind Repvik"      : (["nail@nslu2-linux.org", "oyvind@repvik.org"], "nail@nslu2-linux.org"),
    "Patrick Ohly"       : (["pohly@openembedded.org"], "patrick.ohly@gmx.de"),
    "Patrick Steiner"    : (["law@a1.net", "law@openembedded.org", "Patrick Steiner <law@a1.net>", "Patrick Steiner <patrick.steiner@a1.net>"], "law@a1.net"),
    "Patrik Gfeller"     : (["Patrik Gfeller <gfellerpatrik@gmx.net>", "gfellerpatrik@gmx.net"], "gfellerpatrik@gmx.net"),
    "Paul Eggleton"      : (["bluelightning", "bluelightning@bluelightning.org", "bluelightning@openembedded.org", "Paul Eggleton"], "bluelightning@bluelightning.org"),
    "Paul Sokolovsky"    : (["pfalcon@openembedded.org", "pmiscml@gmail.com"], "pmiscml@gmail.com"),
    "Peter Urbanec"      : (["peteru@openembedded.org", "black.lan!peteru"], "toppy@urbanec.net"),
    "Petr Stetiar"       : (["ynezz@true.cz", "PetrŠtetiar"], "ynezz@true.cz"),
    "Phil Blundell"      : (["pb@openembedded.org", "nexus.co.uk!pb", "(none)!pb", "uk[pb]!pb", "reciva.com!pb", "uni-frankfurt.de!pb_"], "philb@gnu.org"),
    "Philip Balister"    : (["crofton@openembedded.org"], "philip@balister.org"),
    "Philippe De Swert"  : (["philippe@openembedded.org"], "philippedeswert@scarlet.be"),
    "Philipp Zabel"      : (["ph5@openembedded.org", "pH5@openembedded.org"], "philipp.zabel@gmail.com"),
    "Pieter G"           : (["pieterg@gmx.com"], "pieterg@gmx.com"),
    "Purdyd"             : (["purdyd_at_wisheights@yahoo.com"], "purdyd_at_wisheights@yahoo.com"),
    "Raymond Danks"      : (["raymond@edanks.com"], "raymond@edanks.com"),
    "Rene Wagner"        : (["rw@openembedded.org", "dyndns.org!oe", "dyndns.org!reenoo"], "rw@handhelds.org"),
    "Richard Purdie"     : (["rpurdie@openembedded.org", "rpurdie@rpsys.net", "rpsys.net!RP", "example.net!RP", "rpsys.net!anon", "rpsys.net!root", "example.net!root"], "rpurdie@rpsys.net"),
    "Rick Farina"        : (["Zero_Chaos", "Zero_Chaos <sidhayn@hotmail.com>"], "sidhayn@hotmail.com"),
    "Robert Demski"      : (["Robert Demski <Robert.Demski@wp.pl>"], "Robert.Demski@wp.pl"),
    "Robert Schuster"    : (["thebohemian@openembedded.org", "thebohemian2@openembedded.org", "thebohemian@gmx.net", "theBohemian@gmx.net"], "thebohemian@gmx.net"),
    "Rodrigo Vivi"       : (["rodrigo.vivi@gmail.com", "rodrigo.vivi@openembedded.org"], "rodrigo.vivi@gmail.com"),
    "Rod Whitby"         : (["rwhitby@nslu2-linux.org", "nslu2-linux@nslu2-linux.org", "rwhitby.net!rwhitby", "(none)!rwhitby"], "rod@whitby.id.au"),
    "Rolf Leggewie"      : (["Rolf Leggewie <bugs.openembedded.org@rolf.leggewie.biz>", "bugs.openembedded.org@rolf.leggewie.biz", "Laibsch@openembedded.org"], "oe-devel@rolf.leggewie.biz"),
    "Roman Moravcik"     : (["roman.moravcik@gmail.com"], "roman.moravcik@gmail.com"),
    "Russ Ferriday"      : (["russf@topia.com"], "russf@topia.com"),
    "Sergey Bostandzhyan": (["jin@mediatomb.cc", "jin@mediatomb.org"], "jin@mediatomb.org"),
    "Sergey Lapin"       : (["Sergey Lapin <slapinid@gmail.com>", "slapin", "slapinid@gmail.com", "slapin@openembedded.org"], "slapinid@gmail.com"),
    "Shane Volpe"        : (["Shane Volpe", "shanevolpe@gmail.com", "Shane Volpe <shanevolpe@gmail.com>", "svolpe@openembedded.org"], "shanevolpe@gmail.com"),
    "Simon Vogl"         : (["simon.vogl@researchstudio.at", "vogl@soft.uni-linz.ac.at"], "vogl@soft.uni-linz.ac.at"),
    "Sleep Walker"       : (["Sleep.Walker <froser@gmail.com>"], "froser@gmail.com"),
    "Sören Apel"         : (["abraxa_", "abraxa@dar-clan.de"], "abraxa@dar-clan.de"),
    "Stanislav Brabec"   : (["utx@openembedded.org", "utx@penguin.cz", "Stanislav Brabec <utx@penguin.cz>"], "utx@penguin.cz"),
    "Stefan Schmidt"     : (["stefan@openembedded.org", "Stefan Schmidt"], "stefan@datenfreihafen.org"),
    "Stelios Koroneos"   : (["ifaistos@openembedded.org"], "skoroneos@digital-opsis.com"),
    "Stepan Backshaev"   : (["Stepan Backshaev <step2back@gmail.com>"], "step2back@gmail.com"),
    "Steve Sakoman"      : (["sakoman@gmail.com", "steve@sakoman.com"], "steve@sakoman.com"),
    "Thomas Kunze"       : (["thesing", "thesing@openembedded.org", "Thomas Kunze <thesing>", "Thomas Kunze <thommycheck@gmx.de>", "Thomas Kunze <thommy@tabao.de>", "thommy@tabao.de"], "thommycheck@gmx.de"),
    "Thomas Wood"        : (["thomas@openedhand.com"],"thomas@openedhand.com"),
    "Tim Ansell"         : (["mithis.com!buildroot", "mithis.com!mithro", "com[tim]!mithro"], "mithro@mithis.com"),
    "Tim Ellis"          : (["tim.ellis@mac.com"], "tim.ellis@mac.com"),
    "Tim Hurman"         : (["kano.org.uk!timh"], "kano@kano.org.uk"),
    "Tim Sander"         : (["oe@iss.tu-darmstadt.de"], "oe@iss.tu-darmstadt.de"),
    "T Kemp"             : (["tkemp@klc.net.nz"], "tkemp@klc.net.nz"),
    "Todd Blumer"        : (["todd@openembedded.org", "todd@sdgsystems.com"], "todd@sdgsystems.com"),
    "Tom King"           : (["ka6sox@nslu2-linux.org"], "ka6sox@nslu2-linux.org"),
    "Tom Kirkpatrick"    : (["Tom Kirkpatrck", "stv@kirkconsulting.co.uk", "Tom Kirkpatrick <stv@kirkconsulting.co.uk>"], "stv@kirkconsulting.co.uk"),
    "Tom Rini"           : (["TomRini", "Tom Rini", "trini@embeddedalley.com", "trini@kernel.crashing.org"], "trini@embeddedalley.com"),
    "Tom Walsh"          : (["Tom Walsh <tom@openhardware.net>"], "tom@openhardware.net"),
    "Valentin Longchamp" : (["valentin.longchamp@epfl.ch"], "valentin.longchamp@epfl.ch"),
    "Wolfson Key"        : (["wolfson@openembedded.org"], "linux@wolfsonmicro.com"),
    "Yin Kangkai"        : (["arfankai@gmail.com"], "arfankai@gmail.com"),
}

reverse = {
    '1.34!tigrux' : None,
    'apache' : None,
    'bitkeeper.com!nslu2-linux.adm' : None,
    'bkbits.net!nslu2-linux.adm' : None,
    'bkbits.net!openembedded.adm' : None,
    '!ByronT' : None,
    'cambridgebroadband.com!rjt' : None,
    'conversagent.com!fontenot' : None,
    'doma!kebert' : None,
    'giantshoulder.com!g2' : None,
    'home!ral' : None,
    'local!phillim' : None,
    'mine.nu!erich' : None,
    '(none)!chris' : None,
    '(none)!chriz' : None,
    '(none)!dp' : None,
    '(none)!jacques' : None,
    '(none)!openembedded' : None,
    '(none)!pablo' : None,
    '(none)!patrick' : None,
    '(none)!red' : None,
    '(none)!root' : None,
    '(none)!unslung' : None,
    '(none)!wind' : None,
    '(none)!xf005570' : None,
    'nslu2-linux.org!perlguru' : None,
    'rant-central.com!CodeWhacker' : None,
    'rant-central.com!roy' : None,
    'rochcivictheatre.org!tgall' : None,
    'techsurgeons.com!joshin' : None,
    'tetrapyloctomy.org!p.osiczko' : None,
    'thegrantclan.org!jgrant' : None,
    'uottawa.ca!stephane' : None,
    '!xf005570' : None,
    'zeckescompany.nl!alwin' : None,
    'activebuddy.com!fontenot' : None,
}

import re, sys

for name, (ids, email) in all_names.items():
    sys.stderr.write( "%s: %s\n" % (name, email) )
    for id in ids:
        assert not id in reverse
        reverse[id] = (name, email)

rx = re.compile(r"^(author|committer) ([a-zA-Z0-9\[\]\(\)\-\.\_!])* <(.+)> (.+)\n$")

last = ""

for line in sys.stdin:
    m = rx.match(line)
    if m is None:
        sys.stdout.write(line)
        continue
    g = m.groups()
    try:
        replacement = reverse[g[2]]
    except:
        replacement = None
        sys.stderr.write("id unknown %s\n" % repr(g[2]))
    if replacement is None:
        if '!' in g[2]:
            domain, addr = g[2].split('!')
            email = "%s@%s" % (addr, domain)
            replacement = (email, email)
        elif '@' in g[2]:
            replacement = (g[2], g[2])
        else:
            raise "id unknown %s" % repr(replacement)
    line = m.expand(r"\1 %s <%s> \4\n" % replacement )
    sys.stdout.write(line)