1Acknowledgements: artifacts 2 3Thanks to contributors (alphabetically based on last name): 4 5Sean Gillespie 6Andreas Moser 7Sebastian Welsh 8Andrew Williams 9