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