#
# QEMU gitdm domain-map
#
# This maps email domains to nice easy to read company names
#

amd.com         AMD
baidu.com       Baidu
bytedance.com   ByteDance
cmss.chinamobile.com China Mobile
citrix.com      Citrix
crudebyte.com   Crudebyte
eldorado.org.br Instituto de Pesquisas Eldorado
fujitsu.com     Fujitsu
google.com      Google
greensocs.com   GreenSocs
huawei.com      Huawei
ibm.com         IBM
igalia.com      Igalia
intel.com       Intel
linaro.org      Linaro
lwn.net         LWN
microsoft.com   Microsoft
mvista.com      MontaVista
nokia.com       Nokia
nuviainc.com    NUVIA
nvidia.com      NVIDIA
oracle.com      Oracle
proxmox.com     Proxmox
quicinc.com     Qualcomm Innovation Center
redhat.com      Red Hat
rt-rk.com       RT-RK
samsung.com     Samsung
siemens.com     Siemens
sifive.com      SiFive
suse.com        SUSE
suse.de         SUSE
virtuozzo.com   Virtuozzo
wdc.com         Western Digital
windriver.com   Wind River
xilinx.com      Xilinx
yadro.com       YADRO
yandex-team.ru  Yandex
