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