/**************************************************
_ __ _ __ __ _ _ _ _ ____ _ _ ___ ____ ___ __ __
| |/ / / \ \ \ / / / \ | | | | / \ / ___| | | | | |_ _| / ___| / _ \ | \/ |
| ' / / _ \ \ \ /\ / / / _ \ | |_| | / _ \ \___ \ | |_| | | | | | | | | | | |\/| |
| . \ / ___ \ \ V V / / ___ \ | _ | / ___ \ ___) | | _ | | | _ | |___ | |_| | | | | |
|_|\_\ /_/ \_\ \_/\_/ /_/ \_\ |_| |_| /_/ \_\ |____/ |_| |_| |___| (_) \____| \___/ |_| |_|
**************************************************/