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