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