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