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