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