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