________________________________________________________________________________
________________________________________________________________________________
__####_____####____###########____######____###____###########______######______
___###______###___###_______###____#__###____#_____###______###_____##__###_____
___############___###_______####___#___###___#_____###______####___#########____
___###______###___###_______###____#____###__#_____###______###___##______###___
__####______###_____#########_____##_____#####_____###########____##_______####_