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