Contributed by Maxime P.
Contributed by Richard Baird
Contributed by Alberto Malossi
Contributed by Florian Hardwig
Contributed by Gareth Hague
Contributed by Paweł Rosner
Contributed by Shiva Nallaperumal