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