*******************************************************+*******************************+*********************************************************************************************+*******************************************************************+***************************************************************************+***************************************************************************+***************************************************************************+*******++****************/*********************************+***************************************************************************+***+****************************************************************+***********************************************************************************+**********+********+**+*******+*******************+************+**********+************+***********************************************************************************************/**********************+*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+***+*****************+**********+***********************+******************************************************************+***+****+******+***+********+***************+******************+*******************************************************+****+******+***+********+***************+******************+***************************************************+****+******+***+********+***************+******************+***+***++****************/******************************************************************************************************+*******************+******************************************************+***+***++***********************/***************************************************************************+***********************************************************************************************************+*******************************************+**********+********+**+*******+*******************+************+**********+**********************************************************************************************************+***+*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+******************+************************+***********+**************************************+*******************************************/**********************************************************/************************************************************+*****************************++********************************+*********************************+*/*****++********************+*********************************************************+***+****+******+*******+********************************************************************************/****************************************************************************+******************************************************+***************************************+*******+***************************************+***********************************************************************************************+***************************************+***********************************************************************************************+***+*************************************************************************+*********************+*******************************************************************************************+******************************************+***+***************************************************+***************************************************************+****************************************************************************************************************+*************+***+***********************************+*******************************************************************************************************************************************************************************************************************************************/***********/************************+***********************************+*************+**************************+*******+***********+********************************************+******************************************************************+***************+***************************************************************************************************************+***************************************+*********************+*************/***********+**************+******************+*********/*********+*****************************************+**********************+****************************+**********************************+****************************+***************************************+*************************+*************************************************************+**************+******************************************************************************************+*********/*********+*********************************************************************************************************************************************************+***************************+***********************+***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************+***********************************************+*******************************************+*******************************************************************************************************************************************************************************************************************************************/**********************+************+**************+****************************+***************************************************************+******************************************************************************************************************************************************************************/**************************************************************************************************************************************************************************************************************************************************************************************************************************+*******+*******************+*******************+***************+***+***+***+****+********************************************+***********+*******+