_______     __      _   _   _______ _____  _____ _____  _      ______ _______ _______        _____ ____  __  __ 
 |  __ \ \   / //\   | \ | | |__   __|  __ \|_   _|  __ \| |    |  ____|__   __|__   __|      / ____/ __ \|  \/  |
 | |__) \ \_/ //  \  |  \| |    | |  | |__) | | | | |__) | |    | |__     | |     | |        | |   | |  | | \  / |
 |  _  / \   // /\ \ | . ` |    | |  |  _  /  | | |  ___/| |    |  __|    | |     | |        | |   | |  | | |\/| |
 | | \ \  | |/ ____ \| |\  |    | |  | | \ \ _| |_| |    | |____| |____   | |     | |     _  | |___| |__| | |  | |
 |_|  \_\ |_/_/    \_\_| \_|    |_|  |_|  \_\_____|_|    |______|______|  |_|     |_|    (_)  \_____\____/|_|  |_|