Copyright (c) 2019 Tyler Ruckinger Licensed under MIT or Apache-2.0, at your discresion.