diff --git a/apps/dashboard/src/App.tsx b/apps/dashboard/src/App.tsx index 906d203..9acfa44 100644 --- a/apps/dashboard/src/App.tsx +++ b/apps/dashboard/src/App.tsx @@ -7,6 +7,7 @@ import { useEffect, useLayoutEffect, useRef, useState } from "react" import { beszelSystemsQuery } from "./beszel" import cn from "./components/lib/cn" import { Tile } from "./components/tile" +import { Kuromi } from "./kuromi" import { LightControlTile, type LightSceneConfig, @@ -26,6 +27,21 @@ import { weatherDescriptionQuery, } from "./weather" +const kuromi = ` +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⢠⠋⠉⠉⠒⠲⢤⣀⣠⡀ +⠀⠀⠀⠀⠀⠀⣀⣀⣀⢀⡠⠖⠋⠉⠀⠀⠀⠀⠉⠉⠢⣄⠀⠀⠀⢀⠼⠤⠇ +⠀⠀⠀⣀⠔⠊⠁⠀⢨⠏⠀⠀⠀⣠⣶⣶⣦⠀⠀⠀⠀⠀⠱⣄⡴⠃⠀⠀⠀⠀ +⢸⣉⠿⣁⠀⠀⠀⢀⡇⠀⠀⠀⠀⢿⣽⣿⣼⡠⠤⢄⣀⠀⠀⢱⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠑⢦⡀⢸⠀⠀⠀⡠⠒⠒⠚⠛⠉⠀⢠⣀⡌⠳⡀⡌⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠉⠉⣆⠀⢰⠁⣀⣀⠀⠀⣀⠀⠈⡽⣧⢀⡷⠁⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⡤⢄⠀⠈⠢⣸⣄⢽⣞⡂⠀⠈⠁⣀⡜⠁⣩⡷⠿⠆⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⢯⣁⡸⠀⠀⠀⡬⣽⣿⡀⠙⣆⡸⠛⠠⢧⠀⡿⠯⠆⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⣀⡀⠀⠀⡤⠤⣵⠁⢸⣻⡤⠏⠀⠀⠀⠀⢹⠀⠀⠀⡊⠱⣀⠀⠀⠀ +⠀⠀⢀⠜⠀⢘⠀⠀⠱⠲⢜⣢⣤⣧⠀⠀⠀⠀⠀⢴⠇⠀⠀⠀⠧⠠⠜⠀⠀⠀ +⠀⠀⠘⠤⠤⠚⠀⠀⠀⠀⠀⠀⢸⠁⠁⠀⣀⠎⠀⠻⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠣⣀⣀⡴⠤⠄⠴⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ +` + function App() { const wsProtocol = window.location.protocol === "https:" ? "wss:" : "ws:" const wsHost = import.meta.env.VITE_API_HOST || window.location.host @@ -142,7 +158,9 @@ function App() { }} /> - + + + ) diff --git a/apps/dashboard/src/assets/kuromi-frames.json b/apps/dashboard/src/assets/kuromi-frames.json new file mode 100644 index 0000000..f9abb6f --- /dev/null +++ b/apps/dashboard/src/assets/kuromi-frames.json @@ -0,0 +1,550 @@ +[ + [ + " ", + " ", + " ", + " #*++*# ", + " *=.....= ", + " *-.......= ", + " %*.........* ", + " #-.........* ", + " #..........+ ", + " #..........* ", + " *+.........* ", + " %*........+# ", + " #*......=# ", + " #*+::=**# ", + " @%******# ", + " *******# ", + " %********# ", + " **********# ", + " ****..-****# ", + " #***-....+***# ", + " #***......=***# ", + " ***-.......:***# ", + " @***..........***% ", + " #**-...........*** ", + " ***.............+** ", + " **+..............=** ", + " %**................-** ", + " ***.................:** ", + " **-..................:** ", + " %**.....................** ", + " #*+.......:..............** ", + " **........-...............** ", + " **........=..-.............*# ", + " %*=........+.+...............+# ##*#% ", + " #*.......-+**.................+% *:...=*% ", + " *+.....:-+***-:................+# =.......*% ", + " *-........**+...................*% #........:* ", + " %*........+:*-:...................** :.........* ", + " *+.......=..=.:....................* ..........+# ", + " *:......:...-.......................* :.........+# ", + " %*...........:.......................-# %##+.........*@ ", + " %+.......:...:........................=% ###****+=--:*.........* ", + " *........:.............................+% *:---...............:*.......*% ", + " *........=..............................* +-.........................-*:...=*% ", + " +.......=+.......................:-=+++******##% @#****-:.............................:*#***# ", + " #:.....:-+++:................-+**+++==-----::--=+****#% %**+=...................................*% ", + " #.........+..............-**+--------------::.......:+***%% **.......................................* ", + " *.........:...........-*+::----------------::...........:+**% @*.......................................=# ", + " *.........:.........=+:.--------------------:..............:+*## #+.......................................* ", + " +.................+=.-----------------------:.................-**% *.......................................-* ", + " -................:.-------------------------::..................:** *.......................................*# ", + " #-...................:-----------------------::.....................*+.......................................* ", + " %:.....................::---------------------::....................:-......................................+# ", + " *........................:-------------------::....................=.......................................* ", + " *:.......+................::-----------------::...................+......................................+* ", + " #=.....+..................::=+++=-----------::...................+.....................................:* ", + " %*..:+..................=**#%%%#**+---------::........................................................+* ", + " #=+.................-*#%%%%%%%%%%*=-------:::......................................................=*% ", + " #+.................+*%%%%%%%%%%%%%%*-------::......................................................+* ", + " %*.................+*%%%%%%%%%%%%%%%%#------:::....................................:..:............+*# ", + " *.................+*%%%%%%%%%%%%%%%%%%*------:::................................-..-.-............:+* ", + " *:.................*%%%%%%%%%%%%%%%%%%%%+-----::::................................+.+=.............++% ", + " #=.................*%%%%%%%%%%%%%%%%%%%%%%=-----:::.................................**+............=+* ", + " #*..................*%%%%%%%%%%%%%%%%%%%%%%*------:::.............................-=****:...........++# ", + " *:.................:#%%%#%%%%%%%%%%%%%%%%%%*------::::...............................+*+...........++* ", + " #+..................=%%%=.#%%%%%%%%%%%%%%%%%#+::----::::.............................+.*.:.........=++# ", + " *...................=%%%...#%%%%%%%%%%%%%%%%%+:::----::::...........................-..+..........:++*% ", + " #+...................:%%=....%%%%%%%%%%%%%%%%%=.:::----::::.............................=..........+++# ", + " *.....................#%:....%%%%%%%%%%%%%%%%%...:::---:::::............................:.........+++* ", + " #*.....................*%*...%%%%%%%%%#=..%%%%%....:::---:::::...........................:........=+++# ", + " *:.....................:%%*=%%%%%%%%%%....-%%%%.....::::--::::::.........................:.......:++++ ", + " *.......................*%%%%%%%%%%%%#.....%%%*......::::--::::::................................++++# ", + " #+........................*%%%%%%%%%%%%....:%%%:.......::::--::::::..............................+++++ ", + " *:.........................*%%%%%%%%%%%:...%%%*.........::::--::::::............................+++++# ", + " *..............=**=........+%%%=%%%%%%%%#+%%%#:..........::::--:::::::.........................++++++ ", + " *...........:*@@@@@*-......*%%=:%.%%%%%%%%%%#=............::::--::::::::......................++++++* ##*% ", + " %=.........*@@@@@@@@@*:.....+*#.#%.%%%%%%%%%*=..............::::--::::::::....................+++++++% #**-.# ", + " #-.......*@@@@@@@@@@@@*:......-***.%%#*****+.................:::---:::::::::................-+++++++*#**=....* ", + " *......:*@@@@+@@@@@@@@@*-........+**%*.......................::::---::::::::::............-++++++++**+.......+ ", + " *......*@@@@@+#@@@@@@@@@*:.........:+*........................::::----::::::::::........+*+++++++++*.........- ", + " *.....*@@@@#@%=@@@@@@@@@@*:......................:+**=.........::::----:::::::::::........-+**++++*+..........# ", + " *....-@@@@@#++==@@@@@@@@@@*:..................=*#@@@@@**:.......::::----:::::::::::::........*#***##*:........+ ", + " *....@@@@@@@====+@@@@@@@@@@*:..............=@@@@@@@@@@@@*+......:::::-----:::=::::::::::.....* #*........- ", + " *...=@@@@@@@=++==+@@@@@@@@@@*:.......:=*%@@@@@@@@@@@@@@@@%*......::::------::+:::::::::::::::* *.........**# ", + " *...%@@@@@@+#@@%==*@@@@@@@@@@**=-:+**%@@@@@@@@@@@@@@@@@@@@@*:.....::::-------+:::::::::::::::* *.....*:..%@#* ", + " *...@@@@@@@+#*=====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*-....:::::------+:::::::::::::::* %-.....**+.*@@%* ", + " *..-@@@@@@#+@*++====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*:....::::-----+*+-:::::::::::::* *.....+%@@**@@@* ", + " *..=@@@@@@+++++++++==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::--+=-*-=+::::::::::::* @=.....*@@@@#@@@*% ", + " *..+@@@@@@++++++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::---+*+-==-::::::::::* #*@*.....-*@@@@@@@@*% ", + " #..+@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#@@@@%+....::::*-=***+-*---::::::::***%@#......*@@@@@@@@@* ", + " ..+@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%++@@@@@@*:...:::-+********=----::::::*%@@+......=#@@@@@@@@@* ", + " ..=@@@@@@*++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===@%@@@@@@*....:::+-*****=*-------:::.*#+........*@@@@@@@@@%* ", + " +.-@@@@@@@+++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*======%+@@@@@@#=...:::+:-***--+---------::+.........*@@@@@@@@@@* ", + " #..%@@@@@@%**+++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#======+==+%@@@@@@@*...::::+--*=-*-----------==.......-+@@@@@@@@@@@* ", + " -.*@@@@@@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++===+%@+==@@@@@@@@#:...::::*+*+*------------*+++++++++@@@@@@@@@@@* ", + " *.*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+++++++@===@@@@@@@@@*...:::::-*--------------*%++++++#@@@@@@@@@@@*# ", + " #:=@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@*++++++++@++@@@@@@@@@*....:::::+--------------*@@*+#%@@@@@@@@@@@@#* ", + " *.*@@@@@@@@@@@@@@@@@@@@*##*@@@@@@@@@@@@@@@@#+++++++++++@@@@@@@@@#:...::=::+-------------+%@@@*#@@@@@@@@@@@@#* ", + " @=*@@@@@@@@@@@@@@@@@@@*#%%%%@@@@@@@@@@@@@@@%+++++++++++@@@@@@@@@@+...::=::+-------------*@@@@@#*@@@@@@@@@@*# ", + " *-#@@@@@@@@@@@@@@@@@@@*%%%#@@@@@@@@@@@@@@@@++++++++++%@@@@@@@@@@+....:#:::------------=#@@@@@@#*@@@@@@@@@* ", + " **@@@@@@@@@@@@@@@@@@@#*###@@@@@@@@@@@@@@@@++++++++++@@@@@@@@@@@*....=%#:::-----------*@@@@@@@@#*@@@@@@@@* ", + " #*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%++++++++*@@@@@@@@@@@*....#%%-::----------=#@@@@@@@@@#*@@@@@@%% ", + " #*@@@@@@@@@@@@@@@@@@@@@@@@@#*#@@@@@@@@@@@@**++++++@@@@@@@@@@@@*.....#-:::----------*%@@@@@@@@@@#*@@@@@*% ", + " **@@@@@@@@@@@@@@@*@@@@@@@%*%##@@@@@@@@@@@@%*****@@@@@@@@@@@@@*.....+:::::--------+#@@@@@@@@@@@@%*%@@@* ", + " **@@@@@@@@@@@@@@@*@@@@@@*%#%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.....=:::::-------=*@@@@@@@@@@@@@@@*#@%% ****% ", + " #**##**#@@@@@@@@@@**%@@*%###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.....::::::-------*%@@@@@@@@@@@@@@@@%**%@@%@@@@**@ ", + " #*@@@@@@%*%@@@@@@@@@@#*****#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:......::::::-----*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*# ", + " @*@@@@@@@@@*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.......::::::----*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #%@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.......::::::---+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%........:::::::-*%@@%#*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=........:::::::*%@@%*####@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " #%@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........:::::=*#@@@*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " *@@@@@@@@@@@@#*%@@@@@@@@@@@@@@@@@@@@@@@*****#@@@@@@@@@@@@%...........:::*+..=*#*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " %#@@@@@@@@@@@%@#*#@@@@@@@@@@@@@@@@@@@**@@@@@%*%@@@@@@@@@%............:-+-......*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@@@@%**%@@@@@@@@@@@@@@@*%@@@@@@@@*%@@@@@@@#:..........=+++........*#####*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " %*@@@@@@@@@@@@@@@****#@@@@@@@@@@@*@@@@@@@@@@@*@@@@@%*.........-*+++:........*%*###*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " %*% @@@@*+++++*#@@@@@@@*%@@@@@@@@@@@*@@@%*:......-+*++++-........+#@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#@ @*+++++++++++**#%*@@@@@@@@@@@@*%**...:=+***+++++-.......-*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " @% **###% *-=+++++++++++*@*@@@@@@@@@@@@@********+++++****++==++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *#*######*:....:=++++**%@@*@@@@@@@@@@@@@*+++++++++++=*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*######*.......-+**%@@@@@*@@@@@@@@@@@@#+++++++++-...#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *######********##%*%@@@@@*@@@@@@@@@@@@*+==-........-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#####* #* #*@@@@*@@@@@@@@@@@**............=@@@@@@@@@@@@@@@@@@@@@@@@#%@@@@@@@@@@@@@@@@@#@@@@@@@@@@@%# ", + " **###*@ %** *#@@#@@@@@@@@@%*@#*...........=@@@@@@@@@@@@@@@@@@@@@@%* #*%%@@@@@@@@@%%**% *%@@@@@@@@@*% ", + " #***#***# #*#@*@@@@@@@@@@@@#+..........=@@@@@@@@@@@@@@@@@@@@@## #***********# %*%@@@@@@@%* ", + " %%# %**@@@@@@@@@@@@@#*.........:%@@@@@@@@@@@@@@@@@@%*@ #**# **%@@@@#*@ ", + " %*@@@@@@@@@@@@@@*-........*@@@@@@@@@@@@@@@@%*% %****** ", + " #*@@@@@@@@@@@@@@**:......*#*#@@@@@@@@@@%**# ", + " #*@@@@@@@@@@@@@@%**-...:*####@@@@@%#**# ", + " #*@@@@@@@@@@@@@@@@#**+*#####*****#@ ", + " #**@@@@@@@@@@@@@%*****######% ", + " #***#%%@@%##*## #*###### ", + " %##**#%@ *#####* ", + " %*###*# ", + " %***# " + ], + [ + " ", + " ", + " ", + " ", + " ", + " ", + " #**#@ ", + " #*....:+ ", + " #+.......= ", + " *.........@ ", + " #=.........* ", + " *:.........+ ", + " *:.........* ", + " #=.........* ", + " *........-# ", + " #+......:* ", + " #*-..:+** ", + " ********% ", + " %*******% ", + " #********# ", + " *********** ", + " ****..:***** ", + " %***-....-**** ", + " ****.......+***% ", + " ***=........-***% ", + " ***...........***% ", + " ***............=**# ", + " @**=..............*** #**# ", + " #**................+** #=...-*# ", + " ***.................-**@ #.......*% ", + " **+...................**% .........* ", + " @**.....................+*@ -.........+% ", + " #**......................=*# -.........-* ", + " %*+........................*# =.........:* ", + " **-.......-.................*% *.........=# ", + " **........+..................+# ##***-........* ", + " **......-.*.=.................=# %##**+=....*.......+# ", + " *+.......***...................-* #*+=...........*=...:*# ", + " #*.......=****-..................-* %--.................=*****% ", + " #*........+**.....................:* #+=......................*% ", + " **........:*.-.....................:* =...........................* ", + " *=.......:.-........................:# @#**=.............................:* ", + " *.......:............................:# #**+-................................*# ", + " *.....................................-# #*+....................................* ", + " %+......................................*####*##*%% *+.....................................:* ", + " *-...............................:=****+++==----==+****## *......................................+% ", + " *........=....................+**+=-------::...........-+***%% *......................................* ", + " *.......:+:...............:+*+-------------:...............:+**# @=.....................................-* ", + " *.....:=+++:............=*=.---------------::..................=**%#:.....................................*# ", + " %+........+............*+.------------------::.....................+*......................................* ", + " #-........=..........+=.---------------------:......................*.....................................+* ", + " *:........:........+=.-----------------------::.....................*.....................................*# ", + " #:................+.--------------------------::....................*....................................=* ", + " #...................:-------------------------::....................=....................................+* ", + " *......................::---------------------:::.......................................................=*% ", + " #.........................::-------------------:::......................................:...............+* ", + " %...........................:::-=+++=-----------::......................................+..............++# ", + " *:........+.................-**#####**+--------:::...................................:.*.+............+*% ", + " #=......*.................**%%%%%%%%%%*=-------:::...................................***............++* ", + " %*:...*................=*%%%%%%%%%%%%%%*-------:::.................................:****:.........:++% ", + " %+.+................=*%%%%%%%%%%%%%%%%#------::::.................................-**=..........++*% ", + " *:...............-*%%%%%%%%%%%%%%%%%%#------::::................................+-=.=........:++* ", + " %+................*%%%%%%%%%%%%%%%%%%%%*------::::..............................-..=..:.......+++% ", + " @*................+#%%%%%%%%%%%%%%%%%%%%#+------::::................................=.........=++* ", + " *.................*%%%%%%%%%%%%%%%%%%%%%%*:-----:::::...............................=.........+++* ", + " %+................:*%%%%%%%%%%%%%%%%%%%%%%*=::----:::::..............................:........++++ ", + " *.................=%%%%*%%%%%%%%%%%%%%%%%%%+:::----:::::.....................................=+++* ", + " #+.................=%%%..=%%%%%%%%%%%%%%%%%%=.::::---::::::...................................++++% ", + " *..................=%%%....%%%%%%%%%%%%%%%%%-..::::---::::::.................................+++++ ", + " *+..................:%%+....%%%%%%%%%%%#%%%%%:....:::---:::::::..............................+++++* ", + " *....................*%+....%%%%%%%%=....%%%%......::::--:::::::............................=+++++* ", + " %*....................+%%...%%%%%%%%%.....%%%%.......::::---:::::::.........................-+++++* ", + " *-.....................#%%%%%%%%%%%%%.....%%%*........::::---:::::::.......................-++++++* ", + " *.......................%%%%%%%%%%%%%-....%%%-.........::::---::::::::....................=++++++*% ", + " #*.......................:#%%%%%%%%%%%%:..*%%*............::::--:::::::::.................++++++++* ", + " #+.........................*%%%%%%%%%%%%%%%%#-.............::::---:::::::::...........:-++++++++++# ##*% ", + " *:.........................*%%:+%+%%%%%%%%%*=...............::::---:::::::::::..........-****++++* #**:.# ", + " *.............-****=.......*%%.#%.%%%%%%%#*-.................::::---::::::::::::............*###*# %#**-....* ", + " *...........-#@@@@@#*......-**+%*.%%*****=...................:::::----::::::::::::::........* %#**+.......+ ", + "%*.........-@@@@@@@@@%*........:+***%*:........................:::::-----::::::::::::::::::::+ *+..........- ", + "#+.......-#@@@@@@@@@@@@*:..........-+*...........:*****=........:::::-----:::-:::::::::::::::+# %*+..........# ", + "%=......+*@@@*@@@@@@@@@@*-.....................+*@@@@@@%*+.......:::::------:::::::::::::::::-* #*:........+ ", + "#:.....+*@@@@*+@@@@@@@@@@*+..................#@@@@@@@@@@@%*-......::::--------::::::::::::::::* %*........- ", + "*......*@@@@%@+%@@@@@@@@@@**.............-*@@@@@@@@@@@@@@@@*+......::::-------=-::::::::::::::* *.........**# ", + "*.....+@@@@@+@==%@@@@@@@@@@#*.........=*@@@@@@@@@@@@@@@@@@@@%*.....:::::----+=*=*-::::::::::::* *.....*:..%@%* ", + "*.....@@@@@@+=@==#@@@@@@@@@@%*=....+*#@@@@@@@@@@@@@@@@@@@@@@@@*.....:::::--+-+*--*--::::::::::* %-.....**+.*@@%* ", + "#....#@@@@@@*=@===*@@@@@@@@@@@#***#@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....::::-+--***--+---::::::::* *.....+%@@**@@@* ", + "%....@@@@@@@+@@@+==+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::+=*******=----::::::* @=.....*@@@@%@@@*% ", + "#:...@@@@@@@++@=====+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+%@@@@%*....::-+*******+*--------::-* #*@*.....-#@@@@@@@@*% ", + "%=..-@@@@@@+#@@++++==+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+@@@@@@#+....:::+:+***--*-----------* **%@#......*@@@@@@@@@* ", + " +..+@@@@@@+++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*==@@@@@@@@*:...:::-:-=**-=-----------=#*%@@+......=#@@@@@@@@@* ", + " *..+@@@@@@++++++++++%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+====@+%@@@@@@*....:::+--*=++-----------+*%#+........*@@@@@@@@@%* ", + " *..+@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===%===+@@@@@@@#=...:::::+*+-------------*-:.........*@@@@@@@@@@* ", + " %..=@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@======@===@@@@@@@@@*....:::::---------------*=........-+@@@@@@@@@@@* ", + " ..:@@@@@@*++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@++====@@%==@@@@@@@@@%=...:::-::-------------=*++++++++++@@@@@@@@@@@* ", + " -..%@@@@@@+++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++%+@+@@@@@@@@@@*....::-::-------------+%@%++++++#@@@@@@@@@@@*# ", + " ..*@@@@@@@***++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++*+#+@@@@@@@@@@*....::*:::------------*@@@@*+#%@@@@@@@@@@@@#* ", + " :.*@@@@@@@@#**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++++++@@@@@@@@@@%-....:%:::-----------=#@@@@@*#@@@@@@@@@@@@#* ", + " #.=@@@@@@@@@@@@@@@@@@@@@@#*#@@@@@@@@@@@@@@@@@*++++++++++@@@@@@@@@@@+....%%%#+:----------*%@@@@@@#*@@@@@@@@@@*# ", + " +.*@@@@@@@@@@@@@@@@@@@@*#%%*@@@@@@@@@@@@@@@@%++++++++++@@@@@@@@@@@*....=%*:::---------=*@@@@@@@@#*@@@@@@@@@* ", + " #.+@@@@@@@@@@@@@@@@@@@@*%%%%@@@@@@@@@@@@@@@@@+++++++++*@@@@@@@@@@@*.....#:::::--------*@@@@@@@@@@#*@@@@@@@@* ", + " @*.#@@@@@@@@@@@@@@@@@@@%*%%%*@@@@@@@@@@@@@@@@%++++++++@@@@@@@@@@@@*.....-:::::-------+#@@@@@@@@@@@#*@@@@@@%% ", + " %++@@@@@@@@@@@@@@@@@@@@%***@@@@@@@@@@@@@@@@@@#*****+%@@@@@@@@@@@@*.....:::::::------*@@@@@@@@@@@@@%*@@@@@*% ", + " *=*@@@@@@@@@@@@@@@@@@@@@@@@@@@*#@@@@@@@@@@@@@@#**#@@@@@@@@@@@@@@*......::::::-----*%@@@@@@@@@@@@@@%*%@@@* ", + " *+%@@@@@@@@@@@@@@@@@@@@@@@@@*%%*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+......::::::----*%@@@@@@@@@@@@@@@@@*#@%% @****# ", + " **%**##**#@@@@@@@@#@@@@@@@##%%*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=......:::::::--+#@@@@@@@@@@@@@@@@@@@@**%@@%@@@@**% ", + " **@@@@@@%*%@@@@@@@#*@@@@@*%*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.......::::::-=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*# ", + " @*@@@@@@@@@*#@@@@@@@@***%*#**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#........::::::=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #%@@@@@@@@@@*@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:........:::::+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%.........::::*%@@@@@%#*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........:::*%@@@@@%*####@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " #%@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:..........:...:*#@@@*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " *@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@*****#@@@@@@@@@@@@*.........-+...-+..-*#*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@**@@@@@%*%@@@@@@@@%*........++..-++=......*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@*#@@@@@@@@@@@@@@@@@@@@*%@@@@@@@@*%@@@@@@%+......=*+-=++++........*#####*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " %*@@@@@@@@@@@%**#@@@@@@@@@@@@@@@@*@@@@@@@@@@@*@@@@%*:....=**+++++++:........*%*###*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " %*% @@@%***%@@@@@@@@@@@*%@@@@@@@@@@@*@@%*=.:=***++++++++-........+#@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#% @*++++++**%@@@@@%*@@@@@@@@@@@@********++++++++++-.......=*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " @% **#### *--+++++++++++***@@@@@@@@@@@@@**+++++++++++****++==++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%# ", + " *#*#####%*:....:=++++**%@@*@@@@@@@@@@@@@*+++++++++++=*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*######*.......-+**%@@@@@*@@@@@@@@@@@@#+++++++++-...#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *######********##%*%@@@@@*@@@@@@@@@@@@*+=--........-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#####* #* #*@@@@*@@@@@@@@@@@**............=@@@@@@@@@@@@@@@@@@@@@@@@#%@@@@@@@@@@@@@@@@@#@@@@@@@@@@@%# ", + " **###*@ %** *#@@#@@@@@@@@@%*@#*...........=@@@@@@@@@@@@@@@@@@@@@@%* #*%%@@@@@@@@@%%**% *%@@@@@@@@@*% ", + " #***#***# #*#@*@@@@@@@@@@@@#+..........-@@@@@@@@@@@@@@@@@@@@@## #***********# %*%@@@@@@@%* ", + " %%* #**@@@@@@@@@@@@@#*.........:%@@@@@@@@@@@@@@@@@@%*@ #**# **%@@@@#*@ ", + " %*@@@@@@@@@@@@@@*-........*@@@@@@@@@@@@@@@@%*% %****** ", + " #*@@@@@@@@@@@@@@**:......*#*#@@@@@@@@@@%**# ", + " **@@@@@@@@@@@@@@%**=...:*####@@@@@%#**# ", + " #*@@@@@@@@@@@@@@@@#**+*#####*****#@ ", + " #**@@@@@@@@@@@@@%*****######% ", + " #***#%%@@%##*#% **###### ", + " %##**##@ *#####* ", + " %*###*# ", + " %***% " + ], + [ + " ", + " ", + " ", + " #*++*# ", + " *=.....= ", + " *-.......= ", + " %*.........* ", + " #-.........* ", + " #..........+ ", + " #..........* ", + " *+.........* ", + " %*........+# ", + " #*......=# ", + " #*+::=**# ", + " @%******# ", + " *******# ", + " %********# ", + " **********# ", + " ****..-****# ", + " #***-....+***# ", + " #***......=***# ", + " ***-.......:***# ", + " @***..........***% ", + " #**-...........*** ", + " ***.............+** ", + " **+..............=** ", + " %**................-** ", + " ***.................:** ", + " **-..................:** ", + " %**.....................** ", + " #*+.......:..............** ", + " **........-...............** ", + " **........=..-.............*# ", + " %*=........+.+...............+# ##*#% ", + " #*.......-+**.................+# *:...=*% ", + " *+.....:-+***-:................+# =.......*% ", + " *-........**+...................*% #........:* ", + " %*........+:*-:...................** :.........* ", + " *+.......=..=.:....................* ..........+# ", + " *:......:...-.......................* :.........+# ", + " %*...........:.......................-# %##+.........*@ ", + " %+.......:...:........................=% ###****+=--:*.........* ", + " *........:.............................+% *:---...............:*.......*% ", + " *........=..............................* +-.........................-*:...=*% ", + " +.......=+.......................:-=+++******##% @#****-:.............................:*#***# ", + " #:.....:-+++:................-+**+++==-----::--=+****#% %**+=...................................*% ", + " #.........+..............-**+--------------::.......:+***%% **.......................................* ", + " *.........:...........-*+::----------------::...........:+**% @*.......................................=# ", + " *.........:.........=+:.--------------------:..............:+*## #+.......................................* ", + " +.................+=.-----------------------:.................-**% *.......................................-* ", + " -................:.-------------------------::..................:** *.......................................*# ", + " #-...................:-----------------------::.....................*+.......................................* ", + " %:.....................::---------------------::....................:-......................................+# ", + " *........................:-------------------::....................=.......................................* ", + " *:.......+................::-----------------::...................+......................................+* ", + " #=.....+..................::=+++==----------::...................+.....................................:* ", + " %*..:+..................=**#%%%#**+---------::........................................................+* ", + " #=+.................-*#%%%%%%%%%%*=-------:::......................................................=*% ", + " #+.................+*%%%%%%%%%%%%%%*-------::......................................................+* ", + " %*.................+*%%%%%%%%%%%%%%%%#------:::....................................:..:............+*# ", + " *.................+*%%%%%%%%%%%%%%%%%%*------:::................................-..-.-............:+* ", + " *:.................*%%%%%%%%%%%%%%%%%%%%+-----::::................................+.+=.............++% ", + " #=.................*%%%%%%%%%%%%%%%%%%%%%%=-----:::.................................**+............=+* ", + " #*..................*%%%%%%%%%%%%%%%%%%%%%%*------:::.............................-=****-...........++# ", + " *:.................:#%%%#%%%%%%%%%%%%%%%%%%*------::::...............................+*+...........++* ", + " #+..................=%%%=.#%%%%%%%%%%%%%%%%%#+::----::::.............................+.*.:.........=++# ", + " *...................=%%%...#%%%%%%%%%%%%%%%%%+:::----::::...........................-..+..........:++*% ", + " #+...................:%%=....%%%%%%%%%%%%%%%%%=.:::----::::.............................=..........+++# ", + " *.....................#%:....%%%%%%%%%%%%%%%%%...:::---:::::............................:.........+++* ", + " #*.....................*%*...%%%%%%%%%#=..%%%%%....:::---:::::...........................:........=+++# ", + " *:.....................-%%*=%%%%%%%%%%....-%%%%.....::::--::::::.........................:.......:++++ ", + " *.......................*%%%%%%%%%%%%#.....%%%*......::::--::::::................................++++# ", + " #+........................*%%%%%%%%%%%%....:%%%:.......::::--::::::..............................+++++ ", + " *:.........................*%%%%%%%%%%%:...%%%*.........::::--::::::............................+++++# ", + " *..............=**=........+%%%=%%%%%%%%#+%%%#:..........::::--:::::::.........................++++++ ", + " *...........:*@@@@@*-......*%%=:%.%%%%%%%%%%#=............::::--::::::::......................++++++* ##*# ", + " %=.........*@@@@@@@@@*:.....+*#.#%.%%%%%%%%%*=..............::::--::::::::....................+++++++% #**-.# ", + " #-.......*@@@@@@@@@@@@*:......-***.%%#*****+.................:::---:::::::::................-+++++++*%**=....* ", + " *......:*@@@@+@@@@@@@@@*-........+**%*.......................::::---::::::::::............-++++++++**+.......+ ", + " *......*@@@@@+#@@@@@@@@@*:.........:+*........................::::----::::::::::........+*+++++++++*.........- ", + " *.....*@@@@#@%=@@@@@@@@@@*:......................:+**=.........::::----:::::::::::........-+**++++*+..........# ", + " *....-@@@@@#++==@@@@@@@@@@*:..................=*#@@@@@**:.......::::----:::::::::::::........*#***##*:........+ ", + " *....@@@@@@@====+@@@@@@@@@@*:..............=@@@@@@@@@@@@*+......:::::-----:::=::::::::::.....* #*........- ", + " *...=@@@@@@@=++==+@@@@@@@@@@*:.......:=*%@@@@@@@@@@@@@@@@%*......::::------::+:::::::::::::::* *.........**# ", + " *...%@@@@@@+#@@%==*@@@@@@@@@@**=-:+**%@@@@@@@@@@@@@@@@@@@@@*:.....::::-------+:::::::::::::::* *.....*:..%@#* ", + " *...@@@@@@@+#*=====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*-....:::::------+:::::::::::::::* %-.....**+.*@@%* ", + " *..-@@@@@@#+@*++====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*:....::::-----+*+-:::::::::::::* *.....+%@@**@@@* ", + " *..=@@@@@@+++++++++==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::--+=-*-=+::::::::::::* @=.....*@@@@#@@@*% ", + " *..+@@@@@@++++++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::---+**-==-::::::::::* #*@*.....-*@@@@@@@@*% ", + " #..+@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#@@@@%+....::::*-=***+-*---::::::::***%@#......*@@@@@@@@@* ", + " ..+@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%++@@@@@@*:...:::-*********=----::::::*%@@+......=#@@@@@@@@@* ", + " ..=@@@@@@*++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===@%@@@@@@*....:::+-*****=*-------:::.*#+........*@@@@@@@@@%* ", + " +.-@@@@@@@+++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*======%+@@@@@@#=...:::+:-***--+---------::+.........*@@@@@@@@@@* ", + " #..%@@@@@@%***++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#======+==+%@@@@@@@*...::::+--*=-*-----------==.......-+@@@@@@@@@@@* ", + " -.*@@@@@@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++===+%@+==@@@@@@@@#:...::::*+*+*------------*+++++++++@@@@@@@@@@@* ", + " *.*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+++++++@===@@@@@@@@@*...:::::-*--------------*%++++++#@@@@@@@@@@@*# ", + " #:=@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@*++++++++@++@@@@@@@@@*....:::::+--------------*@@*+#%@@@@@@@@@@@@#* ", + " *.*@@@@@@@@@@@@@@@@@@@@*##*@@@@@@@@@@@@@@@@#+++++++++++@@@@@@@@@#:...::=::+-------------+%@@@*#@@@@@@@@@@@@#* ", + " @=*@@@@@@@@@@@@@@@@@@@*#%%%%@@@@@@@@@@@@@@@%+++++++++++@@@@@@@@@@+...::=::+-------------*@@@@@#*@@@@@@@@@@*# ", + " *-#@@@@@@@@@@@@@@@@@@@*%%%#@@@@@@@@@@@@@@@@++++++++++%@@@@@@@@@@+....:#:::------------=#@@@@@@#*@@@@@@@@@* ", + " **@@@@@@@@@@@@@@@@@@@#*###@@@@@@@@@@@@@@@@++++++++++@@@@@@@@@@@*....=%#:::-----------*@@@@@@@@#*@@@@@@@@# ", + " #*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%++++++++*@@@@@@@@@@@*....#%%-::----------=#@@@@@@@@@#*@@@@@@%% ", + " #*@@@@@@@@@@@@@@@@@@@@@@@@@#*#@@@@@@@@@@@@**++++++@@@@@@@@@@@@*.....#-:::----------*%@@@@@@@@@@#*@@@@@*% ", + " **@@@@@@@@@@@@@@@*@@@@@@@%*%##@@@@@@@@@@@@%*****@@@@@@@@@@@@@*.....+:::::--------+#@@@@@@@@@@@@%*%@@@* ", + " **@@@@@@@@@@@@@@@*@@@@@@*%#%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.....=:::::-------=*@@@@@@@@@@@@@@@*#@%# ****% ", + " #**##**#@@@@@@@@@@**%@@*%###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.....::::::-------*%@@@@@@@@@@@@@@@@%**%@@%@@@@**@ ", + " #*@@@@@@%*%@@@@@@@@@@#*****#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:......::::::-----*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*# ", + " @*@@@@@@@@@*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.......::::::----*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #%@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.......::::::---+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%........:::::::-*%@@%#*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=........:::::::*%@@%*####@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " #%@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........:::::=*#@@@*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " *@@@@@@@@@@@@#*%@@@@@@@@@@@@@@@@@@@@@@@*****#@@@@@@@@@@@@%...........:::*+..=*#*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " %#@@@@@@@@@@@%@**#@@@@@@@@@@@@@@@@@@@**@@@@@%*%@@@@@@@@@%............:-+-......*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@@@@%**%@@@@@@@@@@@@@@@*%@@@@@@@@*%@@@@@@@#:..........=+++........*#####*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " #*@@@@@@@@@@@@@@@****#@@@@@@@@@@@*@@@@@@@@@@@*@@@@@%*.........-*+++:........*%*###*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " %*% @@@@*+++++*#%@@@@@@*%@@@@@@@@@@@*@@@%*:......-+*++++-........+#@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#@ @*+++++++++++**#%*@@@@@@@@@@@@*%**...:=+***+++++-.......-*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " @% **###% *-=+++++++++++*%*@@@@@@@@@@@@@********+++++****++==++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%# ", + " *#*######*:....:=++++**%@@*@@@@@@@@@@@@@*+++++++++++=*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*######*.......-+**%@@@@@*@@@@@@@@@@@@#+++++++++-...#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *######********##%*%@@@@@*@@@@@@@@@@@@*+==-........-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*#####* #* #*@@@@*@@@@@@@@@@@**............=@@@@@@@@@@@@@@@@@@@@@@@@#%@@@@@@@@@@@@@@@@@#@@@@@@@@@@@%# ", + " **###*@ %** *#@@#@@@@@@@@@%*@#*...........=@@@@@@@@@@@@@@@@@@@@@@%* #*%%@@@@@@@@@%%**% *%@@@@@@@@@*% ", + " #***#***# #*#@*@@@@@@@@@@@@#+..........=@@@@@@@@@@@@@@@@@@@@@## #***********# %*%@@@@@@@%* ", + " %%# %**@@@@@@@@@@@@@#*.........:%@@@@@@@@@@@@@@@@@@%*% #**# **%@@@@#*@ ", + " %*@@@@@@@@@@@@@@*-........*@@@@@@@@@@@@@@@@%*% %****** ", + " #*@@@@@@@@@@@@@@**:......*#*#@@@@@@@@@@%**# ", + " #*@@@@@@@@@@@@@@%**=...:*####@@@@@%#**# ", + " #*@@@@@@@@@@@@@@@@#**+*#####*****#@ ", + " #**@@@@@@@@@@@@@%*****######% ", + " #***#%%@@%##*## #*###### ", + " %##**#%@ *#####* ", + " %*###*# ", + " #***% " + ], + [ + " #**#% ", + " %*=...=# ", + " %*.......+ ", + " *:........# ", + " *.........- ", + " %+.........- ", + " #=.........- ", + " +.........+ ", + " *.........* ", + " #*.......*@ ", + " #*:...-*% ", + " #******# ", + " %******% ", + " ******** ", + " ********* ", + " #****-***** ", + " ****...+**** ", + " #***:....-***% ", + " ***+......:***# ", + " ***........:*** ", + " #**+.........:*** ", + " ***............**# ", + " #**=............:**% ", + " ***..............:**@ ", + " @**=...............:** ", + " %**.................-** ", + " **=..................-*# ", + " %**.......:............=*# ", + " #*=.......=.............=* ", + " **........+..............+*@ ", + " %*+.....-..+..-............+* ", + " **.......+.+.+..............*# ", + " *+........***................*# ", + " %*.......:****+:...............* ", + " *+........+**=.................:* ", + " *........=.---..................-# ", + " #*.......:..-..-..................+% ", + " *:..........-......................* ", + " *.......:...-.......................* ", + " #-.......-...-.......................=# %*# ", + " *........=...:........................* @*=-=** ", + " +.......:+.............................# -.....:*% ", + " #:.....:=+++:...........................-% ........:* ", + " *........:+..............................* =.........*%", + " *.........:.................-=++***********### -.........=#", + " #-......................:+*++-::------------=++***#% +.........-*", + " #....................=*+..------------------::....+**** %*=-*%%##*###*****.........+#", + " *.................-+:.:---------------------::.......:***% %##******::..........................*.........*%", + " *..................:------------------------::..........:**% #**+--..................................:*.......-* ", + " #...................:-----------------------::.............+*#- %*........................................+*.....=* ", + " *....................:----------------------:...............=*# *:........................................=#**++*# ", + " *.......::............:--------------------::................=*# @*.........................................* #@ ", + " *.....+................:------------------::..................+*%%=........................................+# ", + " %:..*..................::----------------::....................**.........................................*% ", + " %++.....................:====------------::....................*........................................+# ", + " #=...................:***###***=---------::...................:-........................................* ", + " *=...................**%%%%%%%%%#*=-------:::..................+........................................+# ", + " #+..................=*%%%%%%%%%%%%%#+-------::..................+........................................* ", + " #+..................+*%%%%%%%%%%%%%%%%+------:::.................:.......................................*% ", + " @*..................=*%%%%%%%%%%%%%%%%%%+------::........................................................-* ", + " @*...................*%%%%%%%%%%%%%%%%%%%%------:::...................................:...................*% ", + " *-..................+#%%%%%%%%%%%%%%%%%%%%%-----:::...................................:..................+* ", + " #+...................*%%%%%%%%%%%%%%%%%%%%%%*-----:::..................................-.................=* ", + " *....................*%%%:%%%%%%%%%%%%%%%%%%*=-----:::.................................=................:+* ", + " *=...................:#%%...%%%%%%%%%%%%%%%%%#+-----::::................................+..-.............+* ", + " %*....................:%%#...:%%%%%%%%%%%%%%%%%*:-----:::..............................:-*.+.............++# ", + " *-.....................#%-....%%%%%%%%%%%%%%%%%*::----::::..............................***.............-+* ", + " @*......................*%-...:%%%%%%%%%%%%%%%%%+:::----::::............................-***+-:..........++% ", + " #=......................+%%..:%%%%%%%%%%%%%%%%%%..:::----::::............................+*+............++* ", + " *........................%%%%%%%%%%%%%#....%%%%%...:::---:::::..........................:.*.=..........++*% ", + " %+........................:%%%%%%%%%%%%-....#%%%%....:::---:::::...........................+..-........=++* ", + " *:.........................+%%%%%%%%%%%:....#%%%......:::---:::::..........................=..........-++*@ ", + " *............=*#%%*+........*%%%%%%%%%%+....%%%#.......:::--::::::.........................-.........:+++% ", + " #*.........+@@@@@@@@@*......:#%%.%%%%%%%%-..-%%%=........:::--::::::........................:........:+++* ", + " #-......:*@@@@@@@@@@@%+.....+#%#.%++%%%%%%%%%%%+..........:::--::::::.......................:........++++% ", + " *......+*@@@@#@@@@@@@@#+.....-*+=%.*%%%%%%%%%#*...........::::--::::::..............................++++##*# ", + " *.....=#@@@@@+#@@@@@@@@*-......-**.%%%*#%%%#*=.............::::--::::::............................+++++*-.# ", + " *.....@@@@@#%%+@@@@@@@@@*:.......:**%*=-+++-................:::---::::::..........................+++++....* ", + " +....@@@@@@**+=*@@@@@@@@@*.........:**.......................:::---:::::::......................:+++++-....+ ", + " %=...+@@@@@@@====@@@@@@@@@@*..................................::::---:::::::....................=++++++.....- ", + " #-...@@@@@@@#=#===@@@@@@@@@#*......................::..........::::---:::::::..................++++++++......# ", + " *:..=@@@@@@@=%@@===@@@@@@@@@*=................-+**#%@#*=.......::::----::::::::..............=+++++++*.......+ ", + " *...*@@@@@@+*+@====*@@@@@@@@@*+.........-++%@@@@@@@@@@@%*:......::::----:::::::::.......-.-=++++++++++.......- ", + " *...%@@@@@@+@**+====%@@@@@@@@@%**+=***%@@@@@@@@@@@@@@@@@@*=......::::----::::::::::......-*+++++++++*.........**# ", + " %...@@@@@@%++++++++==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+.....::::-----:::::::::::.......+*+++++**.....*:..%@#* ", + " ..:@@@@@@*++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+.....::::-----::::::::::::......-******=.....**+.*@@%* ", + " ..-@@@@@@+++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=....::::------::::::::::::::...-# @#*.....+%@@**@@@* ", + " ..-@@@@@@++++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*-....::::-------:::::::::::::::-* @=.....*@@@@%@@@*# ", + " +.-@@@@@@#++++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....:::::-----=-::::::::::::::=##*@*.....-*@@@@@@@@*# ", + " +.:@@@@@@@++++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*....::::---++*++:::::::::::::=*%@%......*@@@@@@@@@*@ ", + " #..%@@@@@@#++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+*@@@@*-...:::::-+--*=-*-:::::::::::+%@+......=#@@@@@@@@@* ", + " +.*@@@@@@@@***#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++@@@@@@*....::::+--***--+-::::::::::*+........*@@@@@@@@@@* ", + " *.*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=====@#@@@@@#=...::::++****+-*--:::::::::*........*@@@@@@@@@@*@ ", + " %-+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=========*+@@@@@@*...::::=********=---::::::.*......-+@@@@@@@@@@@* ", + " *-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+======+===+@@@@@@@*:...:::+:+***+-*-----:::::.*+++++++@@@@@@@@@@@* ", + " #=*@@@@@@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@++++++#@@#=@@@@@@@@@*...:::+:-**=-==-------:::-++++++#@@@@@@@@@@@*# ", + " *+@@@@@@@@@@@@@@@@@@@*%%%*@@@@@@@@@@@@@@@@+++++++%++=@@@@@@@@@*...::::*-+*-=+----------:+%*+#%@@@@@@@@@@@@#* ", + " #+#@@@@@@@@@@@@@@@@@@*%%%%@@@@@@@@@@@@@@@@+++++++%#@+@@@@@@@@@*:...::::=***=------------*@@*#@@@@@@@@@@@@#* ", + " **@@@@@@@@@@@@@@@@@@#*%%#@@@@@@@@@@@@@@@@+++++++++++@@@@@@@@@@=...:::::----------------*@@@#*@@@@@@@@@@*% ", + " **@@@@@@@@@@@@@@@@@@@**@@@@@@@@@@@@@@@@@+++++++++++@@@@@@@@@@+...:::::---------------+%@@@@#*@@@@@@@@@* ", + " %*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++++++@@@@@@@@@@*....::::---------------*@@@@@@#*@@@@@@@@* ", + " **@@@@@@@@@@@@@@*@@@@@@@@***@@@@@@@@@@@@+++++++++@@@@@@@@@@@*....:=::=-------------=#@@@@@@@#*@@@@@@%% ", + " #*@@@@@@@@@@@@@@*@@@@@@*#%#%@@@@@@@@@@@**++++++#@@@@@@@@@@@*....:%+::-------------*@@@@@@@@@%*@@@@@*# ", + " #*@@@@@@@@@@@@@@*%@@@#*%*%%@@@@@@@@@@@@****++#@@@@@@@@@@@@*...=%%%#-:-----------=#@@@@@@@@@@%*%@@@* ", + " #*@@@@@@@@@@@@@@#***%%*%%@@@@@@@@@@@@@@@%##@@@@@@@@@@@@@@+....:%=:::-----------*@@@@@@@@@@@@@*#@%% ****% ", + " %***#**#@@@@@@@@@@@@@@#*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.....#::::----------*%@@@@@@@@@@@@@@%**%@@%@@@@**% ", + " #*@@@@@@%*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:.....+:::::--------=*@@@@@@@@@@@@@@@@@@@@@@@@@@@@*% ", + " *@@@@@@@@@*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#......=:::::-------=*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #%@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*......::::::-------*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:......::::::------*%#*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *@@@@@@@@@@@@@**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.......:::::::----*%*####@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #%@@@@@@@@@@@@*%**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.......:::::::--=*%*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " *@@@@@@@@@@@@#@@%**@@@@@@@@@@@@@@@@@@@@*****#@@@@@@@@@@@@@:........:::::::-++*#*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@%@@@%@#*%@@@@@@@@@@@@@@@**@@@@@%*%@@@@@@@@@@-.........:::::::*:...*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " ##@@@@@@@@@@@@@@@#@%+*#@@@@@@@@@@@@*%@@@@@@@@*%@@@@@@@@:..........:::::+=.....*#####*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", + " %*@@@@@@@@@@@@@@@#*++++*%@@@@@@@@*%@@@@@@@@@@*@@@@@@%=...........:::.-......+%*###*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " #*# @@@@*++++++++*#%%@@*%@@@@@@@@@@@*%@@@%+.............-........+#@@@***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %##% @*+++++++++++++***@@@@@@@@@@@@*%%**...........=*+.......-*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " %% #*#### *-=+++++++++++*%#@@@@@@@@@@@@@*+-.....:-=+*****++===+**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ", + " *%*#####%*:....:=++++**%@@*@@@@@@@@@@@@@*********++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " %*######*.......-+**%@@@@@*@@@@@@@@@@@@#+++++++++=...#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " *######*********#%*%@@@@@*@@@@@@@@@@@@*++=-:.......-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* ", + " #*#####* #*@ #*@@@@*@@@@@@@@@@@**............=@@@@@@@@@@@@@@@@@@@@@@@@#%@@@@@@@@@@@@@@@@@#@@@@@@@@@@@%# ", + " **###*% %** *#@@#%@@@@@@@@%*@#*...........=@@@@@@@@@@@@@@@@@@@@@@%* #*%%@@@@@@@@@%%**% *%@@@@@@@@@*% ", + " #***#***# #*#@*@@@@@@@@@@@@#+..........-@@@@@@@@@@@@@@@@@@@@@%# %***********# #*%@@@@@@@%* ", + " @#% %**@@@@@@@@@@@@@#*.........:%@@@@@@@@@@@@@@@@@@%*% #%%# **%@@@@#*% ", + " %*@@@@@@@@@@@@@@*-........*@@@@@@@@@@@@@@@@%*% %****** ", + " #*@@@@@@@@@@@@@@**:......*#*#@@@@@@@@@@%**% ", + " **@@@@@@@@@@@@@@%**=...:*####@@@@@%#**# ", + " #*@@@@@@@@@@@@@@@@#**+*#####******% ", + " #**@@@@@@@@@@@@@%*****######% ", + " #***#%@@@%%#**# #*###### ", + " %*#**##% *#####* ", + " %*###*% ", + " #***% " + ] +] \ No newline at end of file diff --git a/apps/dashboard/src/kuromi.tsx b/apps/dashboard/src/kuromi.tsx new file mode 100644 index 0000000..ed9a9f8 --- /dev/null +++ b/apps/dashboard/src/kuromi.tsx @@ -0,0 +1,25 @@ +import { useEffect, useState } from "react" +import kuromiFrames from "./assets/kuromi-frames.json" + +export function Kuromi() { + const [frameIndex, setFrameIndex] = useState(0) + + useEffect(() => { + const interval = setInterval(() => { + setFrameIndex((prev) => (prev + 1) % kuromiFrames.length) + }, 300) + + return () => clearInterval(interval) + }, []) + + const currentFrame = kuromiFrames[frameIndex] + + return ( +
+			{currentFrame.map((line, index) => (
+				// biome-ignore lint/suspicious/noArrayIndexKey: frame lines don't have unique identifiers
+				
{line}
+ ))} +
+ ) +}