******* ********** ** *
* ** **** ** **** ****** ** ** *** ** ******* **** ** ******* ******** ***** ** ********* ******** *** ** ** *** ** *******
* ** ************* ** ** ****** ** ** *** ** ****** ******* ** *** ** *******
*** ************ ** ***** ************ ******** ************* ** ** * ******* ** ****** ** ** **** ** ******* ** ********** ** ******* ********** ** ***** ** *** *******