oooooooooooo ooooo ooo oooo oooo ooo ooooo d'""""""d888' `888' `8' `888 `888 `88. .888' .oooo. .888P 888 8 888 oooo 888 888b d'888 `P )88b d888' 888 8 888 .8P' 888 8 Y88. .P 888 .oP"888 .888P 888 8 888888. 888 8 `888' 888 d8( 888 d888' .P `88. .8' 888 `88b. 888 8 Y 888 `Y888""8o .8888888888P `YbodP' o888o o888o o888o o8o o888o