Contributed by Kirill Gluschenko
Contributed by Nguyen Gobber
Contributed by Zoran Pungerčar
Contributed by Yevgeniy Anfalov
Contributed by Jono Lewarne
Contributed by Pavel Kedich