Acknowledgements: dtfabric

Copyright (c) 2016, Joachim Metz <joachim.metz@gmail.com>

