╔════╦╗───────╔═══╗───────────╔╗──╔═══╗────────╔╗
║╔╗╔╗║║───────║╔═╗║──────────╔╝╚╗─║╔═╗║────────║║
╚╝║║╚╣╚═╦══╗──║╚══╦╗╔╦═╗╔══╦═╩╗╔╝─║╚══╦╗╔╦═╗╔══╣╚═╦╦═╗╔══╗
──║║─║╔╗║║═╬══╬══╗║║║║╔╗╣══╣║═╣╠══╬══╗║║║║╔╗╣══╣╔╗╠╣╔╗╣║═╣
──║║─║║║║║═╬══╣╚═╝║╚╝║║║╠══║║═╣╚╦═╣╚═╝║╚╝║║║╠══║║║║║║║║║═╣
──╚╝─╚╝╚╩══╝──╚═══╩══╩╝╚╩══╩══╩═╝─╚═══╩══╩╝╚╩══╩╝╚╩╩╝╚╩══╝