Contributed by Nguyen Le
Contributed by Orin Vrkaš
Contributed by Lars Høie
Contributed by Sean Kane
Contributed by Jan Myślnik