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