
.........................```````````````````.;++;;.........................;;+******************************************************************************************************
..........................``````````````````.;++;;.........................;;+******************************************************************************************************
......................`````````````````````..;++;;.........................;;+***************************+*******++++++++++++++*****************************************************
......................``````````````````````.;++;;..........................;+**************************++++++++++++++++++++++++****************************************************
......................`````````````````````..;++;;..........................;+**************************++++++++++++++++++++++++****************************************************
.....................``````````````````````..;++;;..........................;;***************************++****++++++++++++++++*****************************************************
....................```````````````````````..;++;;..........................;;******************************************************************************************************
....................```````````````````````..;++;;..........................;;+*****************************************************************************************************
...................`````````````````````````.;++;;...........................;+*****************************************************************************************************
..................``````````````````````````.;++;;...........................;+*****************************************************************************************************
.................```````````````````````````.;++;;...........................;+***************************++++++********************************************************************
.................```````````````````````````.;++;;...........................;;*************************++++++++++*++++++++++++*****************************************************
.................```````````````````````````.;++;;...........................;;*************************++++++++++++++++++++++******************************************************
................````````````````````````````.;++;;...........................;;+************************++++++++++++++++++++++******************************************************
...............`````````````````````````````.;++;;..``..``....................;+*************************+++*********++++++++*******************************************************
...............`````````````````````````````.;++;;..```.``....................;+****************************************************************************************************
..............``````````````````````````````.;++;;..```````...................;+****************************************************************************************************
..............``````````````````````````````.;++;;..```````...................;;****************************************************************************************************
.............```````````````````````````````.;++;;..```````....................;****************************************************************************************************
.............```````````````````````````````.;++;;..```````....................;+*************************++++++++++++**************************************************************
............````````````````````````````````.;++;;..```````....................;+************************++++++++++++++++++++*******************************************************
............````````````````````````````````.;++;;..````````...................;+************************++++++++++++++++++++*******************************************************
............````````````````````````````````.;++;;..````````....................+***********************++++++++++++****++++++++****************************************************
............````````````````````````````````.;++;;..````````....................;**************************************++++++++++***************************************************
............````````````````````````````````.;++;;..`````````...................;**********************************++++++++++++++++*************************************************
............````````````````````````````````.;++;;..`````````...................;*******************************+++++++++;;;;;;;++++************************************************
.............```````````````````````````````.;++;;.```````````..................;+***************************++++++;;;;;;;;;;;;;;++++***********************************************
.............```````````````````````````````.;++;;.```````````..................;+**********************+++++++;;;;;;;;;;;;;;;;;;+++++**********************************************
.............```````````````````````````````.;++;;.```````````...................+*********************++;;;;;;;;;;;;;;;;;;;;;;;;;;++++*********************************************
............````````````````````````````````.;++;;.```````````...................+********************+;;;;;;;;;;;++;;;;;;;;;;;;;;;;++++********************************************
............````````````````````````````````.;++;;.```````````...................;*****************+++;;;;;;;;;;;;;;+++++;;;;;;;;;;;+++++*******************************************
...........`````````````````````````````````.;++;;.```````````...................;****************+;;;;;;;;;;;;;;++++++++;;;;;;;;;;;;;++++******************************************
...........`````````````````````````````````.;++;;.```````````...................;***************++;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;++++*****************************************
..........``````````````````````````````````.;++;;.````````````..................;+*************+;;;;;;;;;+++++++++++++++;;;;;;;;;;;;;;+++++****************************************
.........```````````````````````````````````.;++;;.````````````````..............;+************+;;;;;;;+++++++++++++++++;;;;;;;;;;;;;;;;+++++***************************************
.....`...```````````````````````````````````.;++;..``````````````.................+***********+;;+++++++++++++++;;;;++++;;;;;;;;;;;;;;;;;+++++**************************************
.....```````````````````````````````````````.;++;..``````````````.................+**********+;++++++++++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;++++*************************************
..``````````````````````````````````````````.;+;;..``````````````.................;*********+;;+++++;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;+++++***********************************
.```````````````````````````````````````````.;+;;..``````````````.................;*********+;+++++;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;+++++**********************************
.```````````````````````````````````````````.;+;;..``````````````.................;********+;++++++;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;++++++********************************
````````````````````````````````````````````.;+;;..``````````````.................;*******+;;+++++;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++++*******************************
````````````````````````````````````````````.;+;;..```````````````................;++*****+++++++;;;;;;;;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++*******************************
````````````````````````````````````````````.;+;;..``````````````.................;++****+;+++++;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
````````````````````````````````````````````.;+;;..``````````````..................;+***++++++;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+********************************
````````````````````````````````````````````.;+;;..``````````````..................;+***+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+********************************
````````````````````````````````````````````.;+;;..``````````````..................;+**++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+********************************
````````````````````````````````````````````.+++;..``````````````..................;+*++++++;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..``````````````..................;+*++++++;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..``````````````..................;++;++++;++;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..``````````````..................;+++++++++;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..``````````````..................+;+++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..`````````````...................+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..`````````````...................++++++++++++++++++***+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..````````````...................;++++++++++++++++********+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..````````````...................;++++++++++++++**************++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..```````````....................++++++++++++++*****************+++++++++;;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..```````````....................++**++++++++++******************+++++++++;;;;;;;;;;;;;;;;;;;;;;;++********************************
```````````````````````````````````````````..+++;..```````````....................+***++++++++*********************++++++++++;;;;;;;;;;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````..++;;..```````````...................;****+++++++************************+++++++++;;;;;;;;;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````.;++;;..`````````.`...................;****+++++***************************++++++++++;;;;;;;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````.;++;;..`````````.....................+*****++*******************************+++++++++++;;;;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````.;++;;..`````````....................;+***************************************+++++++++++;;;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````.;++;;..`````````....................;+*****************************************+++++++++++;;;;;;;;;;;;+++*******************************
```````````````````````````````````````````.;++;;..`````````....................;*******************************************++++++++++++;;;;;;;;;;++++******************************
```````````````````````````````````````````.;++;;..`````````....................+*********************************************+++++++++++;;;;;;;;;++++******************************
```````````````````````````````````````````.;++;;..```````.....................;+**********************************************++++++++++++;;;;;;;++++******************************
```````````````````````````````````````````.;++;;..```````.....................;+************************************************++++++++++++;;;;+++++******************************
```````````````````````````````````````````.;+++;..```````.`...................;+**************************************************+++++++++++++++++++******************************
```````````````````````````````````````````.;+++;..```````.....................;****************************************************+++++++++++++++++++*****************************
```````````````````````````````````````````.;+++;..``````.....................;+*******************************************************++++++++++++++++*****************************
```````````````````````````````````````````.;+++;..``````.....................;+*********************************************************++++++++++++++*****************************
```````````````````````````````````````````.;+++;..`````......................;+************************************************************++++++++++******************************
```````````````````````````````````````````.;++;;..`````......................;******************************************************************+++++******************************
```````````````````````````````````````````.;++;;..`````.....................;;*****************************************************************************************************
```````````````````````````````````````````.;++;;..`````.....................;+*****************************************************************************************************
```````````````````````````````````````````.;++;;..````......................;+*****************************************************************************************************
``````````````````````````````````````````..;++;;..````......................;+*****************************************************************************************************
```````````````````````````````````````````.;++;;.````......................;;+*****************************************************************************************************
```````````````````````````````````````````.;++;;..```......................;;******************************************************************************************************
``````````````````````````````````````````..;++;;..```.....................;;+******************************************************************************************************
.`````````````````````````````````````````..;++;;..```.....................;;+******************************************************************************************************
.``.``````````````````````````````````````..;++;;..```......................;+******************************************************************************************************
......````````````````````````````````````..;++;;..`........................;*******************************************************************************************************
.........`````````````````````````````````..;++;;.``........................;*******************************************************************************************************
............``````````````````````````````..;++;;..`.......................;;*******************************************************************************************************
..............````````````````````````````..;++;;..........................;+**************************************************************************************************+****
.................`````````````````````````..;++;;.........................;;+**************************************************************************************************+****
...................```````````````````````..+++;;........................;;;************************************************************************************************++++***+
........................``````````````````..+++;;........................;;;**********************************************************************************************++++++***+
...........................```````````````..+++;;........................;;;**********************************************************************************************+++++++**+
..............................````````````..+++;;......................;;;;+*********************************************************************************************++++++++***
................................`..`````....+++;;.....................;;;;;+*********************************************************************************************+++++++****
............................................+++;;.....................;;;;;**********************************************************************************************+++++++****
............................................+++;;....................;;;;;;**********************************************************************************************++++++*****
............................................+++;;....................;;;;;;***********************************************************************************************+++++*****
............................................+++;;...................;;;;;;+*********************************************************************************************************
............................................++++;...................;;;;;;+*********************************************************************************************************
............................................++++;................;;;;;;;;;+*********************************************************************************************************
...........................................;++++;................;;;;;;;;;**********************************************************************************************************
...........................................;++++;...............;;;;;;;;;;**********************************************************************************************************
...........................................;++++;..............;;;;;;;;;;+**********************************************************************************************************
...........................................;++++;.............;;;;;;;;;;;+**********************************************************************************************************
...........................................;++++;............;;;;;;;;;;;;+**********************************************************************************************************
...........................................;++++;...........;;;;;;;;;;;;;***********************************************************************************************************
...........................................;++++;.........;;;;;;;;;;;;;;;***********************************************************************************************************
.......;;..................................;++++;;.......;;;;;;;;;;;;;;;+***********************************************************************************************************
.......;;;..;;.............................;++++;;......;;;;;;;;;;;;;;;;+***********************************************************************************************************
;.....;;;;;;;;;;..........................;;++++;;.....;;;;;;;;;;;;;;;;;************************************************************************************************************
;.;.;;;;;;;;;;;;;;;;;.....................;;++++;;...;;;;;;;;;;;;;;;;;;;************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;....................;;++++;;;;;;;;;;;;;;;;;;;;;;;+************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;..................;;;++++;;;;;;;;;;;;;;;;;;;;;;;+************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;............;.;;;+++++;;;;;;;;;;;;;;;;;;;;;;;*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;+*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;+*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;+*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;+*************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;**************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;**************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;+**************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;+**************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;+**************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;***************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;***************+*********++************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;***************;**+**+**;* ************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;+***************;*;;*++**+* ************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;+***************;*;**+***** ************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;+***************;;`*+`**`** ************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;+***************; `*` *; ** **********************************************************************************++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;;;;;;**************** *********.`*********************************************************************************+++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;;;;;*************************************************************************************************************+++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;;;;;*************************************************************************************************************+++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;;;;;*************************************************************************************************************+++