'::====='::='::::='::=========='::===='::====':::===='::===='::====':::===='::=== ::=
 ::='::= ::=. ::== ::========== :::==':::===':: ::=== ::==== ::===':: ::=== :::== ::=
 ::= ::= ::== ::== ::========== ::::'::::=='::=. ::== ::==== ::=='::=. ::== ::::= ::=
 ::= ::= ::== ::== ::========== :: ::: ::='::===. ::= :::::::::='::===. ::= :: :: ::=
 ::= ::= ::== ::== ::========== ::. := ::= :::::::::= ::.... ::= :::::::::= ::. ::::=
 ::= ::= ::== ::== ::========== ::=.== ::= ::.... ::= ::==== ::= ::.... ::= ::=. :::=
. :::. :::=='::::= ::::::::==== ::==== ::= ::==== ::= ::==== ::= ::==== ::= ::==. ::=
=...==...===....==........=====..=====..==..=====..==..=====..==..=====..==..====..==