____###########________________________ __###############______________________ __################_____________________ _##################_________#####______ __##################_____###########___ __##################___##############__
___##################_################_ ____##################################_ ______###############################__ _______##############################__ ________###########################____ __________########################_____
___________######################______ ____________###################________ _____________################__________ _______________#############___________ ________________##########_____________ ________________#########______________
_________________######________________ __________________####_________________ __________________###__________________ ___________________#___________________