oooooo oooo ooooo ooo .o oooo `888. .8' `888b. `8' .d88 `888 `888. .8' 8 `88b. 8 .d'888 ooo. .oo. oooo oooo 888 oooo `888. .8' 8 `88b. 8 .d' 888 `888P"Y88b `888 `888 888 .8P' `888.8' 8 `88b.8 88ooo888oo 888 888 888 888 888888. `888' 8 `888 888 888 888 888 888 888 `88b. `8' o8o `8 o888o o888o o888o `V88V"V8P' o888o o888o