__######____###____######__#######_########_#######_###___##
_##________##_##___##___##_##_________##____##______####__##
_##_______##___##__##___##_##_________##____#####___##_##_##
_##______#########_######__#######____##____##______##__####
_##______##_____##_##___##______##____##____##______##___###
__######_##_____##_##___##_#######____##____#######_##____##