ooooooooo oooooo oooo oooo ooooooo ooooo d"""""""8' `888. .8' `888 `8888 d8' .8' .oooo. oooooooo `888. .8' 888 oooo Y888..8P .8' `P )88b d'""7d8P `888. .8' 888 .8P' `8888' .8' .oP"888 .d8P' `888.8' 888888. .8PY888. .8' d8( 888 .d8P' .P `888' 888 `88b. d8' `888b .8' `Y888""8o d8888888P `8' o888o o888o o888o o88888o