.o. oooooooooo. oooooo oooo ooooooooooooo oooo
.888. `888' `Y8b `888. .8' 8' 888 `8 `888
.8"888. 888 888 `888. .8' 888 .ooooo. .ooooo. 888 .oo.
.8' `888. 888 888 `888. .8' 888 d88' `88b d88' `"Y8 888P"Y88b
.88ooo8888. 888 888 `888.8' 888 888ooo888 888 888 888
.8' `888. 888 d88' `888' 888 888 .o 888 .o8 888 888
o88o o8888o o888bood8P' `8' o888o `Y8bod8P' `Y8bod8P' o888o o888o