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