# These users were blocked because they are spammers, and therefore shouldn't be
# included in the credits section.
watabas
p.karlsen
Julpetter
viki19822
jjroot19
mattiasxxpersson
JeremyMaloney
greenairbus01
rebecca05030817
dr.gigalsss
ianwoodmore

# These users joined the project but didn't make any translation, so they
# shouldn't be credited neither.
# NOTE: This list should be revisited in the future in case they actually
# contribute.
yolandarobinson3838
ema168rutter
bsiwanon
nlmyst-35

# These users joined the project and submitted translations, but all of them
# are incorrect (e.g. they were submitted to the wrong language).
# We block them so they aren't listed with the wrong language.
# NOTE: Once their translations have been cleaned/moved, each translator should
# be removed from this list.
mikkosaarinentapani
deepIQ
Trytek
onebadai1
ahmedsayd
lailalahha
YveC

# This is the extension creator, so he shouldn't be credited as a translator
# neither.
avm99963
