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