Contributed by Rick Raby
Contributed by Sebastian Johansen
Contributed by Antton Ugarte
Contributed by Petr Kudlacek