-:::=:.....:.............. .. .. . ... .. .. . .. .. ... . ..... .. ... . .. . . . ....... :...::::.===+==++++**++**++**#*+*++===-::-=-===
:-.:::-. ..::...:.. ...... .. ... . .. . .. . . . . . .. ... . .. .. ..-.:.::=-+-=++*=+++=+=+==+***#+#*++-=+-:-:==-
:.:::::-:............ .... ... . . ..... . .. .. . .. .. .. ..... . ... .. . . .... .......::---+===+======++==+==++*+*++#+*++=--=++-
:::.:.--:................. .. . .:. ........ .. . .. ....................... .. . . ........ .:..:-.:::-:=+-==+=**++*+++********+***++*++===++
:::....::....... .. ... . . :..:-..:. .: ... . .... ... .. .... .:. .. . :. . . .-:....