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