Last active
June 27, 2026 22:31
-
-
Save jubilancy/d7c687fab766ff690ed6ed2860218ad1 to your computer and use it in GitHub Desktop.
collection of ascii art
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| {} | |
| --- | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;"> | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃⢠⡆⠀⠀⢽⣬⣭⣭⣛⣻⢿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣡⠆⢀⣾⣿⡄⠀⠀⠙⣿⣿⣿⣟⢭⣷⣧⣤⣋⠻⡿⣿⣿⣿⣿⣿⢟⣛⡻⡿⠿⠿⣿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⢋⣕⣿⠏⠀⣾⣿⠛⠀⠀⠀⠀⠀⠚⠛⣟⣳⣯⣭⣿⣿⣾⣶⣕⢽⠿⠿⠏⠛⠋⢿⣾⣿⣿⢨⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢱⣿⣏⣹⠟⠀⠀⣿⡀⠀⠀⠀⠀⠀⠀⠀⣩⣷⣿⣿⣿⣿⡿⠙⠉⠀⠀⠀⠀⠀⣀⡄⢸⣿⠿⣣⣾⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠸⡿⠌⠻⡃⠀⠸⠓⠀⠀⣠⡶⣐⣅⢀⣼⣿⣿⣿⠃⣿⣿⡀⠀⠀⠀⠀⠀⣰⣾⣿⡃⢸⣵⣾⣿⣿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠠⠀⠀⠀⠈⢃⠀⢀⣤⠤⣰⡿⠙⡝⢡⣿⣿⢟⡵⠃⠀⣿⡿⠁⠀⠀⠀⠀⠀⣸⣿⣟⠀⢻⣿⡿⣿⢿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⠟⠃⠁⠀⠀⠀⠀⣐⣪⡭⠖⢳⣟⠃⢤⣤⣀⣿⣵⣿⣡⣤⣧⣯⣶⣶⣖⡄⠀⠀⠀⣿⠿⠀⠀⣿⣿⡼⡿⣇⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⣷⡰⡆⢶⣶⠆⠀⠸⣿⣾⢦⡟⣎⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⢨⠍⠀⠀⢀⣀⣙⣿⣿⣿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⡏⣱⠷⣼⡿⠀⡐⠄⠈⢋⣾⠀⣸⣯⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⢷⠀⠀⢀⡠⣿⣿⣿⣕⡽⡿⣿⣿⣿ | |
| ⣿⣿⣿⣿⣿⣿⣿⠇⣿⢂⣿⢇⠴⠒⠲⠀⢜⣵⢣⣿⣿⠿⠛⠫⠟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣠⠀⢻⣷⡹⣿⣿⣿⢷⣿⣮⣻⣿ | |
| ⣿⣿⣿⣿⣿⣿⢏⢲⣏⣪⡂⣿⣷⣶⣆⣸⣿⠏⣼⠛⠁⠀⠀⠀⢲⣜⣿⣿⣿⣿⣿⡯⠋⠁⡈⠻⣿⡿⠀⢈⣿⣷⢫⣮⣿⢸⣿⣷⣯⣷ | |
| ⣿⣿⣿⣿⣿⠟⠀⣫⡾⣵⡇⢟⠿⠛⢣⣿⠏⠂⠁⠀⠁⡀⣦⠀⢈⣿⣿⣿⣿⣿⡟⠀⡀⠀⢸⡄⢻⠃⢠⣎⢈⣭⣶⠉⣽⡸⣿⣿⣿⣿ | |
| ⣿⣿⣿⣿⢏⣴⣾⠟⢰⣿⠁⡎⠳⡄⣾⠃⣧⢰⣦⣷⠂⢲⠤⢇⣼⣿⣿⣿⣿⣿⠗⣤⣃⠀⣼⠃⠀⠀⢸⠯⣿⡿⢿⣿⡟⣿⡎⣭⡽⣟ | |
| ⣿⣿⢟⣭⣾⡿⢋⡄⠾⣋⣴⠃⠀⠁⡏⠢⢹⠘⣿⣿⣴⣘⣂⣚⣿⣿⣿⣿⣿⣿⣆⠿⢋⢴⣿⠀⠀⠀⣼⢴⣿⣇⣸⣿⣷⣿⠓⠻⢧⣿ | |
| ⣭⣼⣿⣛⣁⣒⣬⣵⣾⡿⠃⠀⠀⢀⣄⣰⢺⠀⢿⣿⣟⢛⣹⣿⣿⣿⣿⣿⣿⣿⣿⣾⢯⣿⠁⠀⠀⢀⣿⣯⣟⠿⣿⠿⣣⣵⣧⢎⢦⡺ | |
| ⠛⠿⣿⣿⣿⣿⣿⣿⠟⢡⢟⡶⣄⠀⣿⡌⢻⡿⠀⠙⠿⣽⣽⣿⣿⣿⣿⣟⡛⣿⣿⣿⡿⠏⠀⠀⠀⢸⣿⣿⡱⠆⡈⡐⠶⣸⣿⣷⡻⣿ | |
| ⠀⢸⣷⠮⢍⠙⠉⣁⡴⣻⣅⡎⠍⡸⡹⣿⣌⢷⠀⠀⠀⠈⠙⠿⢿⣿⡟⣬⣕⠥⢢⣿⣿⣿⣷⠀⠀⠈⣿⣿⣿⠳⠟⡙⠊⢻⢻⣿⣿⣿ | |
| ⠀⠉⣠⣴⣿⣿⢟⣿⢿⣻⣼⣧⢒⡕⢜⣮⣽⢧⣱⣠⣔⡀⢀⠀⠰⢤⣾⡟⣛⣧⡌⣿⣼⣶⣾⡇⠀⢀⢿⣿⣿⣄⠤⣡⣶⣠⣏⣿⣿⣿ | |
| ⠀⢸⣿⣿⣿⣧⣻⣽⣿⣿⣿⣿⡞⢛⣣⣧⠙⠞⣿⣦⣻⣽⣏⣣⣶⣻⣿⣾⠿⣻⠻⢕⡟⣹⣷⣿⡄⢙⡘⣿⣿⡟⠴⢿⡏⣿⡼⡼⣿⣿ | |
| ⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⢱⣻⠷⡉⠀⣿⣿⣿⣿⣾⣿⡿⠿⣆⢾⢿⣫⣽⡼⡜⣧⢻⠟⢨⡇⢋⢤⣿⣇⣷⢿⣿ | |
| ⠀⠈⣻⣿⣿⣿⣿⠻⣟⣻⡝⢿⣿⣿⣿⣿⣿⠀⠈⡇⢩⣅⢰⣿⣿⣿⣿⣯⣾⡿⣿⣮⣨⡿⠿⡟⠑⣷⡸⣆⢐⢩⣵⢎⣾⣿⣿⢸⣾⣿ | |
| ⠀⢀⡘⢿⣿⠻⢿⣮⡙⣷⢻⣆⠻⣟⣻⣯⠋⠀⠀⠓⢈⡞⢸⣿⣿⣿⣿⣿⣿⡓⢸⢫⣴⣶⢏⣽⢇⠸⢿⣮⣬⠞⡣⣿⣿⣿⣿⢻⣧⣿ | |
| ⣾⣿⠇⠀⠉⠙⠳⢮⡝⣈⠛⣞⣧⡙⠧⠃⠀⠀⠀⠀⣤⣅⣿⣿⣿⣿⣿⡿⠕⣴⣋⣸⣟⢹⣞⣀⡶⠀⠨⠿⣿⣷⣙⡪⡻⣿⡏⡀⣿⣿ | |
| ⡩⠇⣼⢰⣤⣀⡀⠀⠀⠀⠒⠀⠒⠙⠃⠀⠀⠀⠀⣼⢟⣾⣿⣿⣿⠛⠉⠀⠀⣿⣿⣿⡏⡌⢋⢭⠚⢡⣿⡍⢦⠹⢷⢿⢮⠉⢴⡇⣿⣿ | |
| ⡍⡜⣷⠀⠈⠙⠻⠿⣶⢄⢤⣤⣤⣤⡶⠀⠀⢠⡆⢡⣿⣿⣿⣿⢗⣶⣶⡄⠀⢻⣿⣿⡇⢻⡾⡫⣪⣿⣿⣿⡆⢰⡆⠝⣞⠇⡌⡇⣿⣿ | |
| ⣼⣿⣟⡿⣤⣄⢀⠀⠀⠈⠃⠉⢁⣀⣤⡴⠝⠃⣠⣿⣿⣿⣿⡟⠈⣿⠁⢹⠋⢼⣿⣿⡇⣥⣴⣾⣿⣿⣿⡿⡁⡄⢿⡄⢘⣇⣧⢠⣯⣿ | |
| </div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;"> | |
| hi welcome to my little corner of the internet! | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⢸⣹⢾⣴⠶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⣠⢖⡛⢳⡄⣠⠤⣼⠋⣹⠀⢧⢏⣞⡦⠏⣠⣴⢶⣦⠀⠀⠀⠀⠀ | |
| ⠀⣠⢚⣏⠻⢿⣷⣷⣍⠢⣄⣀⡏⠀⠈⠉⠀⣠⣾⠟⡌⠂⠹⣧⠀⠀⠀⠀ | |
| ⠘⢧⣿⡇⠀⠀⠀⠉⠛⠷⢄⠈⠀⠀⠀⢀⡼⠛⣥⣤⣤⣀⠀⠙⠧⡀⠀⠀ | |
| ⢀⣠⠟⠁⠀⠀⣠⣤⣶⣷⡿⣷⡞⠙⠱⣿⣾⢿⣷⠴⠻⣘⠄⢀⣼⡇⠀⠀ | |
| ⢿⣧⣴⣦⡤⣄⡾⢛⢥⣴⣿⢿⡗⠦⢼⣿⣤⣤⣤⣴⠤⠵⣾⠏⣸⠂⠀⠀ | |
| ⠀⠙⢮⣉⡽⠋⠀⠽⠾⠛⢩⣾⠃⠀⠐⣯⡹⢿⡷⣆⡀⠀⠈⠛⢯⡀⠀⠀ | |
| ⠀⠀⣠⡿⠀⠀⠀⠀⣰⢠⣺⠇⠀⠀⠀⠘⢿⡢⣄⠀⠀⢀⠄⠂⠈⠛⢦⡀ | |
| ⠀⢠⠿⠀⣠⡀⠐⠀⣠⣾⠋⠀⠀⠀⠀⠀⠘⢳⣏⡬⣤⣲⠒⠒⠛⠛⠚⠛ | |
| ⠀⠛⠚⠉⠀⢻⡄⠘⣼⠏⠀⠀⠀⠀⠀⠀⠀⠘⢿⣲⣧⠟⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⢳⣼⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠾⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| </div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;"> | |
| ⢃⠊⠁⠀⠀⠀⠀⠀⠀⠀⡀⡀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⡔⡀⢂⠔⡀⠄⢂⠔⡀⢂⠔⡀⢂⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⡀⢀⠀⠠⢀⠠⠂⢠⠂⡍⠲⡥⢣⣍⠞⡴⣋⠖⣍⠪⣅⠫⢌⠣⢘⡐⠣⢎⠱⢍⡞⡰⢫⢭⣙⢧ | |
| ⠀⠀⢀⠀⠀⠀⠠⠀⠰⠀⡀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢠⠐⡁⠆⠐⣈⠠⢂⠘⠰⠤⠁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠐⠀⠂⢁⠢⢁⠂⠁⠂⠒⠁⡑⠒⠍⠬⡙⠖⠥⡋⠤⠓⡄⠎⠤⠓⡠⢌⠱⢄⠪⠔⠬⡑⢏⠶⢩⠞ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠆⡰⠁⡐⢁⠄⢀⠂⠈⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠐⠠⠐⠀⠀⠀⠀⠀⠀⠀⢀⠀⠈⠄⠁⠊⡅⠜⠨⢅⡜⡰⢈⡰⢈⠰⢉⠆⡉⢆⡸⢄⠎ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠤⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠑⠠⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡐⠠⠈⡀⢃⠘⠌⡓⢤⠢⠰⢌⠰⡈⢆⠅⣊⠐⡃⢔⠊⡔ | |
| ⠐⠀⠀⠀⠀⠀⠀⢀⠈⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠡⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠌⠐⡀⠃⡀⠐⠠⠁⠠⠈⡐⠁⢆⢩⠒⡡⡘⠄⠌⢒⣀⠣⢉⢂⠋⡔ | |
| ⠀⠐⠀⠀⡀⠐⠂⠀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⣶⣶⣶⣶⣴⣎⡐⠐⠠⡉⢄⠡⠒⠈⢀⠁⠄⠁⠂⢂⠁⠒⢈⠌⠊⢄⠀⠂⠅⠢⠑⡌ | |
| ⠀⠠⠀⠁⠐⠀⢀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡶⢟⠛⡍⠛⡿⣯⠝⣻⣷⣦⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠤⣄⠀⠀⠀⠀⠀⠀⣀⣤⡾⢟⠩⣱⢢⣿⡓⣦⣿⠫⢝⢻⣷⣤⠅⠊⠀⠁⠀⠀⠀⠀⠀⠈⠄⡘⠠⢀⠂⠡⠀⠂⠀⠀⠀⠁⠌ | |
| ⢂⠀⠐⠀⡀⠒⠀⢀⠈⠀⢀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⢠⣾⢟⠋⡜⢈⠖⣈⠳⢂⣙⣿⡨⣷⡎⠽⣧⡀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣤⣤⣤⡴⣤⣤⣤⣤⣀⡀⠀⠀⣀⣠⣤⢤⣶⠖⠋⠁⠀⣠⣟⠀⠀⠀⠀⠀⣶⣿⢋⠲⣉⣶⠷⡟⠛⠛⠟⢶⣯⡜⠢⡜⣹⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⠀⠌⡐⠂⢀⠀⠀⠀⠀⠈ | |
| ⠠⢈⠄⠁⠠⠀⠁⡀⠀⠈⡀⠀⠀⠀⠀⠀⠄⠁⡀⠀⠀⠠⠀⡀⠐⠀⠄⠂⡁⠐⠈⣰⣿⠿⠾⣷⣦⣷⠾⣟⡛⠿⢿⣛⣿⣽⣇⡒⡘⣿⡄⢀⣠⣴⣾⠿⠿⢿⣦⣖⣠⠀⢆⠰⢀⠢⢈⠉⠙⢻⠛⢉⣡⠞⠋⠀⠀⠀⣠⡾⢿⣿⣿⣷⣦⣄⣼⡟⡡⢎⣱⠟⣩⣶⡟⡉⢉⣿⣶⣌⢻⣷⣜⣰⡼⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠐⠀⠄⠀⠀⠀⠀⠀ | |
| ⢠⠁⢂⠌⡐⠁⠠⢀⠐⠁⠀⠂⠈⢀⠠⠁⠀⠂⢀⠠⠁⡀⠂⠀⠄⡈⠄⠂⠄⢂⢢⣿⠇⣌⣑⢦⡟⣴⣿⣯⠐⠀⣸⣿⣷⣝⢯⣒⣭⣾⡿⠛⠭⢉⠩⠛⠿⣦⣆⡩⢙⢃⠒⡌⢂⠁⠂⠌⠀⣸⡶⠛⠁⠀⠀⠀⣠⢾⣱⣾⠿⢋⠍⡰⢀⠏⡻⢿⣶⣽⢋⣾⣿⣻⣽⡷⣯⣟⣾⣻⣧⢻⣿⣯⣛⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠂⠀⠀⠀⠀⠀ | |
| ⠠⠘⡀⡂⠠⢂⠁⢂⠠⠁⡐⠠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⢂⠌⠔⡉⠤⣽⣿⣿⣾⢿⡿⢼⡿⣿⣾⡿⣿⣿⣟⣷⣿⣿⡿⠫⠴⡀⣇⣌⣑⢢⠑⡒⣠⠹⢃⠌⢂⠡⢀⠂⠌⢀⣰⠞⠉⠀⠀⠀⢀⣴⢛⣷⠿⢋⠄⠣⠌⢆⢑⠊⡔⢡⠎⡸⢿⣿⣟⣓⣿⣳⣟⣟⡾⣿⢯⣿⡰⡿⢌⠻⢿⣿⡄⠀⠂⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀ | |
| ⢒⠡⡐⡁⢂⠁⠌⢀⠂⢀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠁⢿⣿⣿⢃⢞⣯⢿⣿⣽⣯⢿⣽⣷⣿⣻⡿⠍⠴⣁⣶⠟⠉⠉⠉⠙⠛⠳⡶⠶⣥⣌⠂⢄⠀⣰⡶⠋⠁⠀⠀⠀⢀⡴⠻⡀⠮⢀⠌⠢⡌⡑⠌⠢⢌⠱⢈⠆⡸⢄⢃⠎⡿⣿⣾⣳⣧⡟⣟⣻⣯⡟⣽⡿⢎⡱⢺⣿⡴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠠⠑⢠⠁⠊⠄⢈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣯⣿⣮⣽⣞⢷⣿⣾⣯⢿⣽⡿⣙⠜⣼⡿⠋⠀⠀⢠⠀⠀⠀⠀⠀⣿⠀⠀⠉⢻⡾⠞⠁⠀⠀⠀⠀⣠⠴⢋⣴⣷⣿⣿⢆⠘⠤⠐⠤⢉⠢⡁⠎⡰⢈⠅⢢⡘⢚⠴⣩⢿⣿⣶⣿⣾⢿⣿⣵⡿⣿⣂⣧⣿⠥⠄⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⢂⠩⢐⡈⢁⠂⠀⠐⠈⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣷⣿⣻⣿⣷⣭⣛⠛⠾⡿⢣⣾⠟⠁⠀⠀⠠⣤⠏⠀⠀⠀⠀⡴⠃⠀⠀⢀⡞⠀⠀⠀⠀⠀⣀⠞⢁⠰⠿⠿⠫⢷⠾⠿⣐⠈⡑⣌⣢⣲⡴⠾⠶⠓⠚⣷⡰⢉⡒⠤⣋⢿⣯⣿⣿⡿⣿⣟⣿⣿⣿⣿⣿⠙⠠⠐⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⡀⠆⡐⡈⠔⠨⢁⠈⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢿⣿⣿⣯⣟⡿⣿⣿⡿⣿⠟⠁⠀⠀⠀⠙⣲⠋⠀⠀⠀⢀⡜⠁⠀⠀⣠⠏⠀⠀⠀⠀⢠⡴⠋⡀⠆⡐⢢⢐⣱⣦⣼⠭⠖⠛⠉⠉⠀⠀⠀⠀⠀⣀⣴⠟⣀⠣⢌⠲⢈⣾⣿⣿⣿⣽⣿⣿⣿⣿⣿⢿⣿⠀⠄⡁⠠⠁⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠠⠑⠄⡑⠨⠁⠂⡀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡌⡙⢿⡿⣿⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⣸⠁⠀⠀⠀⣠⠞⠀⠀⠀⡴⠃⠀⠀⠀⢀⡴⠉⣄⣁⣰⡶⠖⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⣀⣠⡤⠶⠛⡁⠆⡘⢀⠒⡈⢄⣻⢧⡿⣋⢉⡉⠛⠻⢿⣿⡥⢾⣿⠋⡄⠀⢁⠂⡐⢀⠁⠂⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⢁⠀⠀⠀⠀⠰⡀⠁⡆⠈⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣰⠀⠆⠹⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⢀⡇⠀⠀⣰⠾⠁⠀⢀⣰⡏⠉⠁⠀⠀⠀⣾⣷⠿⠏⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣰⣶⠿⡉⠰⠈⢶⣁⣀⠇⢰⠉⣀⠱⠈⢿⣾⠿⢀⠎⡈⢁⠉⡆⠸⢹⣿⡏⠹⢆⠈⡀⠶⠀⠆⠰⠀⡀⢁⠀⠆⠁⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⡀⠀⠀⠀⠀⠀⠑⠀⠁⠀⠄⠠⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠄⡠⢈⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⢤⡎⠁⠀⣠⠔⠋⠀⠘⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡴⠾⠛⠙⢿⣆⠰⣀⠣⠌⡠⠙⣿⣎⠄⡒⠄⢂⠣⠄⡉⠅⢂⠒⠌⢂⢒⣤⣇⡡⠹⣷⡄⠀⠂⠁⠌⠁⣈⠁⠒⠈⠤⡈⠠⠀⠂⡀⠁⠀⢀⠀⡀ | |
| ⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢤⣷⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⠤⠞⠁⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⢠⡤⠶⠛⠉⠀⠀⠀⢀⣴⣿⣿⠒⠠⠐⡂⣁⠊⠔⣿⡌⠄⡓⢈⠢⠘⡐⠌⡨⢈⠜⡀⢊⠹⢿⣿⣷⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⢃⠘⡠⠐⠈⠄⡀⠂⡀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡤⠟⠋⢁⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠶⠋⠁⠀⠀⠀⠀⢀⣠⣾⣿⠿⣉⣿⠄⣁⠒⡐⠄⡌⢂⣿⣋⠢⠘⠄⡌⡑⠰⠐⡰⢈⠰⠠⢁⠂⢍⢻⣷⡙⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢀⡃⡌⡐⠰⢀⠃ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣍⠀⠀⠀⠀⠀⢀⢀⣴⣾⣿⠿⣡⢚⣴⣿⠒⡠⢁⠌⢒⠈⠄⣼⣿⡔⢃⠌⡐⢠⠁⢎⡀⠎⠠⠑⡈⢌⠂⠄⠻⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢆⠰⠡⣉⢄⡋ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⠴⠚⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠤⠄⠀⠀⠀⠀⣠⠟⣍⠿⢿⣷⣤⡀⠀⢀⣼⣾⣿⠟⣭⢚⡷⣯⣾⠋⡔⠡⢚⠾⣦⣭⣾⡟⣺⡟⠢⠄⡡⢂⠌⡠⠐⡈⢄⠃⡐⠂⢄⠊⡐⢻⣇⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⡐⠠⢁⠓⢌⠢⡑ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡤⠖⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠦⠿⠿⣮⣽⣿⣿⣶⣿⣿⢻⣬⠻⣵⣿⡾⠟⡡⠃⡄⢃⠌⣐⣶⠿⠛⢷⣿⣍⡁⠂⠅⢂⡐⡁⢡⠢⠐⢂⡁⠌⠰⡐⢀⢎⣿⡀⠀⠀⠀⠀⠀⠐⠈⠀⠀⠀⢂⠀⠄⠂⠄⡈⠠⠁⡍ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠤⠖⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣟⢿⣿⡶⢵⢋⢶⣻⣿⡶⣧⣷⡶⠷⠾⠛⠁⢀⣴⡾⠏⠻⢿⣌⠌⣤⣾⡇⠐⡐⠌⡠⠐⢨⠐⠰⣀⢺⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠄⠀⠄⡀⡁⠡⢂⡐ | |
| ⠀⠀⠀⠀⡀⡤⠔⠂⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⠤⠤⢤⣤⣤⣀⡀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣯⣿⣿⠟⠡⢠⣤⠦⡴⢦⣤⣤⣶⡾⢛⣨⢐⡡⠎⢩⣼⡟⣿⠃⠌⡐⠡⡐⠉⠤⡘⣤⣴⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⡀⠁⠄⡐⢠⢁⠢⠄ | |
| ⠖⠂⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣄⡀⠀⠀⠀⠀⣀⣠⣤⣶⡾⢟⣫⣥⣶⣶⣦⣤⣄⡀⠈⠉⠛⠲⢤⣀⠀⠀⠀⢻⣿⣿⠟⠁⣀⣴⣾⣶⣷⣿⣶⣶⣬⣙⢿⣿⠿⢶⠶⠾⠛⢡⣼⠯⠘⡠⢁⠒⡈⢂⣵⠠⣿⡛⠰⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠐⠀⠄⠨⠄⢂⠰⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⢴⡒⠋⠁⠀⠈⢻⣍⠛⠙⠛⠻⠿⣿⣿⣷⣿⠿⠛⠛⠉⠉⠛⠛⠛⠀⠀⠀⠀⠀⠈⠛⢦⣄⣼⠟⠁⠀⠘⠿⠟⠋⠉⠀⠀⠉⠉⠻⢿⣿⣛⢷⡀⣀⣀⣠⣾⠋⡄⢃⠰⠈⢂⡉⠄⣺⣥⡿⠌⡑⢺⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠌⠠⠌⠂⠁⠀⠁ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣴⠖⣿⢹⡆⢈⢿⣠⡀⠄⠠⢀⠈⡛⣿⠷⣦⣾⣵⣿⠟⠁⠀⠀⣠⣤⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣶⣶⣄⡀⠀⠀⠻⣿⣾⣷⡿⣿⡋⢄⠢⠐⠌⡠⣹⡞⠣⡔⣿⣾⠃⠆⡡⠹⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠄⠁⠀⠃⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡤⠖⠋⢹⡏⢹⣮⣿⡸⣷⠆⢈⠻⢶⣆⣔⣨⣤⣿⣇⣀⣾⣿⣿⠇⠀⠀⢀⣾⣿⣿⠟⠻⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠟⠀⠉⢿⣿⣷⡄⠀⠀⠘⣿⣆⣠⣾⠿⢶⣮⣵⡶⢟⠣⡀⢅⣺⣿⡧⠉⡔⢠⠉⣿⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⡀⠀⠂⠈⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠚⠉⠁⠀⠀⠀⣿⠄⠁⠌⠛⠛⢽⣮⡀⠐⢀⠈⡉⠍⣷⡄⠈⠙⢿⣿⡏⠀⠀⠀⣾⣿⣿⡇⠀⠀⠸⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠀⠀⠀⠸⣿⣿⣿⡀⠀⠀⢸⣿⡉⠀⢀⠄⣲⣿⣈⡐⢠⣑⣾⣟⣻⣇⠒⣀⠂⠔⣹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⢸⡏⠀⡈⠀⡁⠌⢀⠿⣿⣢⡀⢰⣴⠷⠚⢷⡄⠀⢸⣿⡇⠀⠀⠀⣿⣿⣿⡆⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡄⠀⠀⣸⣿⣿⣿⡇⠀⠀⠘⠿⠁⠀⠌⣼⡏⡉⠙⢿⣿⡿⣽⢮⣳⢇⠢⠀⠜⡐⠸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠉⠄⢀⠂⠀⡀⢌⡻⣜⣻⣷⣿⠇⠀⢠⡙⣧⠀⠀⠈⠁⠀⠀⠀⣿⣿⣿⣷⣄⣠⣼⣯⢻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⠿⢿⣷⣾⣟⢳⡝⢿⠇⠀⠀⠀⠀⠀⠐⣶⣿⡶⠛⠀⠘⣿⣟⣻⣞⡵⣮⠐⡁⠊⠄⡁⢿⡇⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠂⠈⢀⠀⠐⠀⣨⣳⣬⣿⡽⣿⠀⢠⡗⠛⢿⡆⠀⡀⠘⠀⠀⠀⠙⠀⠀⣹⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⣿⣿⣧⢹⡾⠀⠀⠀⠀⠀⠀⢠⡟⠩⢻⡇⠁⢰⣿⣿⣳⢮⠷⣷⡐⠠⢉⡐⢀⢻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀ | |
| ⠀⠀⠀⠀⠀⠀⣀⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠐⠀⠂⠄⢀⠈⠄⢲⢣⢿⣟⣞⣿⡆⢹⡇⠀⠀⢿⡄⠀⠀⠀⠀⠀⠀⠀⠾⣿⣿⣿⡿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⣿⣿⡿⠏⠀⠀⠀⠀⠀⠀⠀⣾⠁⣀⣼⠇⢀⣾⡿⣿⣯⣞⣟⠧⡄⠑⠤⠐⡠⢈⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠠⠔⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠧⠀⠂⠄⠂⠀⡀⢠⣟⣮⣿⡽⣼⡿⢷⡀⢽⡤⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⢤⣤⡤⠤⡴⠆⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⢲⡿⠿⠻⠗⠃⠀⠀⠀⠀⠀⠀⢰⡏⠀⠼⠃⢠⣶⣿⣟⣿⣿⡼⣹⠷⡈⠜⡀⠡⠐⠂⣽⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⡠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠁⠀⢀⠂⠀⠁⢀⢰⡿⣸⡿⢼⣹⡇⠈⢷⡄⠀⢀⡀⢻⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠸⣿⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⣿⡷⣖⣀⣤⣿⣿⢫⣷⣹⣿⣟⢯⣿⡐⠂⠌⡐⢁⠂⢼⣯⡄⠠⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡇⠀⠌⠀⢀⠠⠀⢀⣿⣱⣿⣏⡞⣿⠀⠀⠀⠻⣖⡯⠗⠈⣇⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⢠⡀⠀⠀⠀⠀⠀⣼⢷⣿⣟⠋⠁⣻⣯⡟⣶⢭⢿⣿⡞⣟⣧⠁⢂⠘⠠⡁⡘⣿⡄⠡⢀⢁⠂⢀⠌⠀⠄⠁⠀⢀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⡀⠄⢀⠀⠐⣸⣏⣾⡷⢮⣻⡏⠀⠀⠀⠀⠀⣽⣿⠖⢻⡆⠀⠀⠀⠀⠈⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⠀⠀⠀⠀⢴⡏⠈⣻⡁⢀⡀⢸⣿⣽⣧⠿⣺⣿⣏⢷⣏⠄⠡⢈⠰⠐⣀⢻⣿⠀⠆⡀⠢⠀⢆⠈⡠⠀⡀⠀⡀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠁⠀⠠⠀⠄⠀⡀⢡⣾⣱⣿⢣⡻⣼⠇⠀⠀⠀⣴⣆⣤⣤⣠⣌⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣷⣬⣛⣣⣾⣿⠘⣿⡶⣽⣛⡧⢿⣿⣚⡾⠆⠡⠄⢂⠡⢀⠺⣟⠀⠈⢀⠃⠌⡐⠂⢄⢁⠐⠀⠄⢀⠂⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⡁⡀⠂⢀⠐⡀⣼⣯⣿⣫⡽⣹⣿⠀⠀⠀⠀⠹⣿⣛⣟⣿⠏⠈⢻⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠉⠻⣯⣿⣹⣿⠏⠈⣿⣟⣮⣗⡻⣽⣿⣧⣟⡇⡐⠌⣀⢂⠂⡘⣿⠀⠀⠀⠀⠐⡈⠄⠂⠤⢈⠀⡄⠀⠀⠀ | |
| ⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣽⠀⠐⠀⠀⢀⠄⢀⢐⡿⢾⡟⡵⣚⣽⡇⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠙⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠈⠉⠉⠀⠀⠀⢻⣟⡶⣭⢗⡧⣿⣷⢾⣵⠀⡐⠠⢀⠂⡐⢻⡄⠀⠀⠀⠀⠐⡈⢂⡁⠂⡐⠀⠌⠀⠀ | |
| ⠈⠙⠶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡿⡁⠀⠀⠂⠁⠀⢀⢀⣾⣟⣿⡹⣜⣭⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠞⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⡜⣧⢻⣼⢳⣿⣧⣿⠀⡄⡑⢠⢁⠐⣹⣧⠀⠀⠀⠀⠀⠀⠁⣀⠡⢀⠁⠠⠀⠂ | |
| ⠀⠀⠀⠀⠙⠳⣦⣄⡀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠃⠀⠀⡈⠀⠀⠁⠀⣾⢷⣾⡟⡼⣱⣺⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠼⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣜⣣⢟⣲⣛⢿⣯⣿⡁⢂⠐⠠⢀⠂⣈⣿⠀⠀⠀⠀⠀⠀⠀⠀⡀⠂⠄⠀⠀⠄ | |
| ⠀⠀⠀⠀⠀⠀⠀⠉⠛⠷⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⣼⡃⠀⠐⠀⠀⠄⠁⠈⢸⣏⣾⠿⣜⡹⡼⣽⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⠞⢻⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢾⡱⣏⣶⢏⡿⣿⣽⡱⠠⠡⡈⢂⠁⠄⣻⡆⠀⠀⠀⠀⠀⠀⠀⠐⠈⡄⠁⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠶⣦⣤⣄⣀⣼⠇⠀⠀⠈⠀⠐⠀⠐⢠⢻⣼⣟⡳⢎⡵⣫⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠟⠛⠲⢤⣄⣀⣀⢀⣀⣤⡴⠞⠋⠁⠀⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⢯⡵⢫⠾⣝⡞⣿⣷⢻⡄⠁⠔⠠⡈⠒⢸⡧⠀⠀⠀⠀⠀⠀⠀⡁⢂⠐⡈⠀⡀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠻⢶⣶⣤⣀⣡⡴⠶⠛⠛⠻⢾⡿⢿⣼⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⢀⡯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣯⡻⣭⠿⡼⣍⡿⣿⢿⡇⣈⠰⠀⠅⡁⢊⣿⠀⠀⠀⠀⠀⠀⠀⠀⠠⢁⡀⠂⠄ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠻⡄⠀⠀⠀⠀⠀⠈⠢⡀⠉⠻⣶⣦⣤⣄⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡷⣙⢧⣻⡵⢮⡽⣿⣯⡱⢀⠂⡁⢊⠐⡈⢿⡅⠀⠀⠀⠀⠀⠀⠀⡁⠂⠄⡐⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀⢱⡀⠀⠘⢿⣿⡿⣷⣿⣟⣿⣿⣷⣶⢶⣦⣤⣤⣤⣤⣀⣄⣀⣀⣀⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡹⢮⡝⡾⣽⣚⣽⣯⣧⠁⠢⠄⢁⠢⢀⢻⡇⠀⠀⠀⠀⠀⠀⠀⠄⢃⠠⢀⠁ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀⠀⢇⠀⠀⠈⢿⣿⢿⣿⣴⢾⣏⣓⣻⢯⢫⢶⣿⣭⣯⣿⢯⣻⣯⣿⡿⢷⣦⣄⣀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠄⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣷⢫⢷⡹⣝⢮⡳⢾⣿⣿⡈⠔⢈⠂⡐⢂⠸⣯⠀⠀⠀⠀⠀⠀⠁⠄⠃⠐⠀⡀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⢸⡆⠀⠀⠀⢿⣿⡾⣏⣷⣾⡿⣿⢏⣷⢿⡾⡶⢎⣿⠾⣹⣷⡏⣷⢏⣉⠿⣏⠿⣷⡶⣶⣶⣶⣿⣀⣀⣰⣆⣀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣏⠿⣎⡹⣎⣷⢹⣏⣿⣷⡎⢀⠁⢆⠁⢆⠈⣿⠀⠀⠀⠀⠀⠀⡀⠀⠀⡀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠈⢷⣛⡿⣟⣯⢿⣽⠿⣞⢯⣗⡟⣯⣞⣟⣻⣹⢿⠿⣼⣭⡻⣌⢿⣜⢷⡹⣿⣿⣯⡝⣫⣿⣿⣻⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣯⣻⠼⣝⢮⡳⣏⡞⣿⣿⣆⠡⡈⡄⢌⢀⠊⣽⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠘⣟⣻⣭⣻⣟⣾⡿⣭⢟⡾⣽⠮⣏⢷⣣⡟⢾⣇⠈⠙⠛⠿⢿⣾⣧⣿⣿⣞⡽⢿⡟⣯⣿⢧⣿⣿⢶⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⣯⡷⣻⣼⣣⢟⡼⣫⣽⣿⣇⠐⡐⢀⡂⢂⠑⣸⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠸⣷⢫⡟⣾⢧⡿⣽⡺⣵⣻⢞⡹⣦⢟⢞⣣⢻⣆⠀⠀⠀⠀⠀⠀⠉⠉⠙⠿⠿⠿⠛⠉⠋⣿⣣⣏⢾⣹⡟⣿⡶⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⢼⡷⣟⣵⣫⠷⣏⡿⣧⢻⣿⡇⠌⡠⢁⠤⢁⠂⢼⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡆⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⡄⠘⢿⣺⡜⣯⣳⠿⣝⡧⣟⢮⡳⣭⡛⡼⣜⢣⣟⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠿⢻⣞⢧⠏⢳⡳⢫⣗⢯⡽⣻⢿⡿⣷⣶⣦⣤⣤⣤⣿⣿⣿⣷⣽⣿⣯⣷⣏⣿⣿⣷⠂⡁⡂⡄⢊⡐⢨⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠉⠛⠶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⡇⠀⠈⢷⣛⡶⣻⡭⣞⣳⣟⡮⡵⠧⡽⡝⣎⢷⡺⡼⣯⡉⠛⠶⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣯⣞⡳⢭⡻⢎⣻⢣⢯⣜⠷⣯⢽⣻⢽⡽⠏⣟⡟⣿⢿⡿⠉⠈⠙⠻⣷⣿⣿⠠⢁⠔⡠⠁⡄⢂⣿⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠉⠙⠳⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⢸⠁⠀⠀⠀⠻⣗⣯⡻⣝⣮⠽⣳⣭⢇⡟⡼⣎⢧⣳⢱⡼⢷⣄⠀⠀⠉⠙⠓⠶⣤⡀⠀⠀⠀⠀⠀⠀⠙⣯⣽⢫⢷⡻⢧⡻⡽⢮⣻⣽⣫⠷⣾⣍⡳⡿⣹⣯⡾⠁⠀⠀⠀⠀⢈⠛⠻⢷⣦⡈⠤⡁⠔⡁⢾⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠈⡿⢶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡏⠀⠀⠀⠀⠀⢸⢿⣵⣩⢯⣟⣧⢛⣾⡹⡴⢏⠶⢇⡯⢖⢧⡝⣿⣄⠀⠀⠀⠀⠙⢿⡄⠀⠀⠀⠀⠀⢀⢹⣯⢏⣯⡝⣮⣝⡻⣝⠧⣞⡽⣯⢷⣯⡟⣵⣿⣽⠃⠀⠀⠀⠀⠀⡼⠀⠀⠀⠙⣧⠴⢀⠡⠌⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⣼⠣⠂⠀⠙⠻⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⢰⠁⠀⠀⠀⡘⠁⠀⠀⠀⠀⢠⠏⠀⠙⢾⣯⣽⣾⣛⣮⢟⣝⠾⣍⢧⣭⢛⣎⠶⣍⢻⣶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠬⣿⣏⠶⣯⢳⡞⣽⠞⣽⢮⡿⣽⣻⢎⣾⢧⡿⠃⠀⠀⠀⠀⠀⣼⣁⣀⠀⠀⠀⡞⠻⣧⣈⠐⢼⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⢠⡇⠀⠐⠀⡀⠀⠀⠉⠻⠶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠀⠀⠀⠀⡌⠀⠀⠀⢠⠃⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠙⡿⣯⣝⡻⣟⠿⣿⡿⣿⣶⣯⣞⣭⢖⢯⣜⣛⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣟⡾⣹⢎⣷⡹⢧⣻⡭⣷⢳⠿⣸⣿⣹⣟⣀⣠⣤⡴⣖⣾⡿⣷⣬⢿⡆⠀⣸⠁⠀⠘⣷⠏⢸⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⣺⠁⠀⠈⠀⠠⠀⠀⢀⠀⢠⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⢰⠃⠀⠀⢀⠎⠀⠀⠀⠀⣠⠎⠀⠀⠀⠀⠀⢀⣷⢮⣽⢲⡝⣏⣎⠷⣓⢞⡼⣫⡛⡿⢯⣔⣚⣓⠿⣿⣤⠀⠀⠀⠀⠀⠀⠀⣸⡯⢷⠏⣞⣼⣹⢯⣳⢿⣹⣫⣾⡷⢿⡟⣯⢛⣯⢏⡽⢿⢲⡝⣏⢯⡿⣇⣰⠃⠀⠀⠀⣾⠱⣎⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⢠⡇⠀⠐⠈⢀⠁⠠⠀⠀⠂⣼⡿⢭⡚⡭⣟⣷⣦⣀⠀⠀⠀⠀⣸⠀⠀⢀⡎⠀⠀⠀⡜⠀⠀⠀⢀⡔⠁⠀⠀⠀⠀⠀⠀⢸⡯⣶⢭⡷⣜⢲⣬⣛⡭⠾⡼⣱⣻⡹⢾⣉⠻⣯⣝⣞⣹⣦⠀⠀⠀⠀⠀⡔⣼⣟⣯⢻⣼⢳⢯⡯⢷⣣⣶⡿⢧⡛⣴⢛⣼⣓⣎⣻⣜⢯⡻⣼⣩⢿⡷⡟⠁⠀⠀⠀⣰⣯⠓⣸⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠐⠀⠠⠀⠀⢀⢹⡿⣭⢳⡹⡱⢧⡚⣝⢿⡷⣦⣀⠀⡏⠀⠀⡼⠀⠀⢀⠞⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⢸⡗⣯⡳⣽⢺⡹⢤⡳⢼⡙⡗⢦⢳⣙⢧⢫⡽⡱⣞⢻⢧⣟⣿⣴⠈⠀⡆⢰⣿⡿⣞⢯⢏⡽⣪⣷⡟⡳⡌⣽⣩⠲⡵⣋⠷⣼⣒⠷⣞⣣⢻⣯⣝⡳⣟⡷⠀⠀⢀⡾⠻⣿⡰⢰⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⢸⠇⠀⠈⠠⠈⠀⠀⠀⠄⢨⣾⢻⡜⣣⢳⡹⡖⡽⣚⠦⣽⡿⢹⣿⠁⠀⡼⠁⠀⣠⠊⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⣾⢱⣎⢧⣛⢶⣙⣣⢾⡹⣇⡷⣹⢎⣖⢳⡹⣌⡷⢎⡟⡿⣽⣦⣀⠇⣼⣿⢳⣽⢾⣻⣿⣟⡳⡼⢳⡹⣬⢳⡭⠳⣍⡾⠱⣏⡛⡽⣝⢯⡞⡼⣝⡿⣽⢀⡴⠛⠀⠀⠹⣿⣎⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⡟⠀⠀⠠⠀⢀⠀⠠⠀⠠⣼⣛⠵⣚⢥⡛⡼⣱⢣⡝⣹⢾⡇⠸⣇⣠⠞⠁⢀⠔⠁⢀⡤⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡿⡼⣗⣺⢎⡗⣮⣝⡲⣝⢶⢣⢧⢏⡾⡜⣆⢳⢎⡝⣎⣞⡹⡽⣻⣿⣸⣾⣿⣭⣫⣽⡟⣣⡓⣭⢹⡱⣗⣩⢻⠺⣏⡵⣛⡻⣜⢯⡳⡽⡞⣞⣽⢚⡽⣿⠏⠁⠀⠀⠀⠀⠸⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⢸⠏⠀⠁⠠⠁⠠⠀⠂⠀⢲⡯⣝⠺⣥⢋⣞⡱⢣⣓⡞⣥⣿⠀⠀⠙⠶⣶⣚⣁⡤⠖⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡏⢷⡹⣒⡮⣜⢦⡝⡴⣎⢧⣛⢦⣛⡴⣛⣬⢏⡲⣜⠳⣜⢳⣹⣿⣿⠿⣏⡿⠟⢿⣿⣿⣕⣯⢾⠿⣖⡛⣟⡻⣟⣶⡙⣷⠱⣮⢳⡹⣔⠻⣖⣣⡟⣽⡏⠀⠀⠀⠀⠀⠀⠀⠙⢯⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⡼⠂⠀⠂⠀⠐⠀⠠⠐⢠⡿⠽⣌⡻⣔⣫⢼⣩⢧⢳⣜⢲⡿⠀⠀⠀⠀⠀⠉⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⣦⢗⡹⣴⢫⠶⣙⣞⡱⠲⣬⣓⢮⡱⢏⡼⡭⣝⣻⣿⣮⣷⣿⠿⣥⠛⡾⣇⣠⣘⡧⣛⣿⣳⢎⡿⣌⡗⣇⣷⣎⡷⣙⢎⡻⣱⢫⡝⣾⡹⢶⣳⢽⣞⡅⠀⠀⠀⠀⠀⠀⠀⠀⠘⢷⡆⠀⠀⠀⠀⠀⠀⠀⠀ | |
| </div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;"> | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣅⣀⢈⣩⣷⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⣀⠴⣒⣤⣀⡲⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢾⣿⣯⡿⠟⠋⠈⠻⡛⠋⠹⣗⡄⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⣠⠊⢔⢉⢙⣹⡿⠳⣙⡊⣓⣉⣒⡤⡀⠀⠀⠀⠀⠀⣰⡟⣡⠟⠁⠀⠀⠀⠀⠀⠈⠑⠢⡍⡧⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠐⡇⠀⠻⣿⠟⠁⠀⠀⠀⠉⠉⠻⣟⠋⠙⠓⢤⣠⡴⣶⡿⣛⣉⣁⠒⠢⣄⣀⠀⣀⣤⡶⢺⣷⠇⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠱⡀⢾⠁⠀⠀⠀⣀⡠⠤⠶⠒⣺⠿⣟⢠⣯⣃⣳⡾⠲⠷⣮⣥⣴⣮⣤⣤⣬⣿⣟⣻⡿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠈⠢⣷⣦⣤⣾⣿⣷⣶⡂⢉⡤⢊⣥⣿⡿⠿⠿⢿⣦⣤⣀⠈⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⢀⡤⢤⣄⡀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠛⠛⠛⠋⡴⣻⣿⠏⠀⠀⠀⠘⢿⢯⠀⠳⣄⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⢀⢽⣿⣦⡄⠀⠀ | |
| ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⣡⢁⡏⠀⠀⠀⠀⠀⠈⠫⣳⠄⢹⡆⠀⠀⠀⠀⣠⣴⣿⣿⣿⠞⠁⠈⢿⢿⡷⠀⠀ | |
| ⠀⠀⣰⣾⣏⠩⡉⠰⣄⠀⠀⠀⠀⢠⢂⡴⢛⠎⠀⠀⠀⠀⠀⠀⠀⠀⠉⠷⣾⣿⡀⠀⢠⣾⣿⣿⡿⠟⠁⠀⠀⠀⣸⣾⠃⠀⢀ | |
| ⠀⣰⡇⠈⠙⠤⣽⣧⣹⣷⣤⣀⣴⣡⡤⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠒⠛⠛⠋⠁⠀⠀⠀⣀⣴⣾⡿⠁⠀⠀⠘ | |
| ⢰⣟⣹⡄⠀⠀⠀⠉⠛⠻⠿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⢀⡖⠁⢸⣿⠃⠀⠀⠀⠀ | |
| ⢹⡇⠂⢡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡁⠀⠠⣬⣧⣀⡜⠁⠀⠀⠀⠀⠀ | |
| ⠀⠱⡄⠀⠣⠀⣠⣤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⢶⠃⠙⠋⠉⠀⠀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠈⠢⢀⣙⠿⣿⡿⢿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⡾⡄⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀ | |
| ⠀⠀⠀⠀⠀⠈⠑⠊⠁⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠺⢷⣿⣿⡶⠤⢕⡄⠀⠀⠀ | |
| ⠀⠀⠀⣠⠔⠂⢶⣶⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡸⠁⠀⠀⠀ | |
| ⠀⣠⡎⠀⣀⣠⡾⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀ | |
| ⠀⣿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ | |
| </div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> | |
| <div style="display: flex; padding: 10px; gap: 10px;"> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 1 content**</div> | |
| <div style="flex: 1; padding: 10px; border: 1px solid #ccc;">**Container 2 content**</div> | |
| </div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| title: ASCII Gallery | |
| description: A responsive grid gallery for displaying ASCII art of varying sizes | |
| --- | |
| <style> | |
| .ascii-gallery { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: 1.5rem; | |
| padding: 2rem 0; | |
| margin: 2rem 0; | |
| } | |
| .ascii-item { | |
| background: var(--theme-surface-alt, #f9f9f9); | |
| border: 1px solid var(--theme-border, #e0e0e0); | |
| border-radius: 8px; | |
| padding: 1.5rem; | |
| overflow-x: auto; | |
| transition: all 0.3s ease; | |
| position: relative; | |
| } | |
| .ascii-item:hover { | |
| border-color: var(--theme-accent, #0084ff); | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); | |
| transform: translateY(-2px); | |
| } | |
| .ascii-item pre { | |
| margin: 0; | |
| font-family: 'Courier New', monospace; | |
| font-size: 0.85rem; | |
| line-height: 1.2; | |
| color: var(--theme-text, #333); | |
| white-space: pre; | |
| overflow-x: auto; | |
| } | |
| /* Size variations */ | |
| .ascii-item.small { | |
| grid-column: span 1; | |
| } | |
| .ascii-item.medium { | |
| grid-column: span 1; | |
| } | |
| .ascii-item.large { | |
| grid-column: span 2; | |
| } | |
| .ascii-item.xlarge { | |
| grid-column: span 2; | |
| } | |
| /* Responsive breakpoints */ | |
| @media (max-width: 768px) { | |
| .ascii-gallery { | |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
| gap: 1rem; | |
| } | |
| .ascii-item.large, | |
| .ascii-item.xlarge { | |
| grid-column: span 1; | |
| } | |
| .ascii-item pre { | |
| font-size: 0.75rem; | |
| } | |
| } | |
| .ascii-title { | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| margin: 0 0 0.75rem 0; | |
| color: var(--theme-text-secondary, #666); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .ascii-description { | |
| font-size: 0.8rem; | |
| color: var(--theme-text-tertiary, #999); | |
| margin: 0.75rem 0 0 0; | |
| } | |
| </style> | |
| # ASCII Art Gallery | |
| A responsive gallery for showcasing ASCII art and text-based designs. Mix and match sizes to create interesting compositions. | |
| <div class="ascii-gallery"> | |
| <div class="ascii-item small"> | |
| <div class="ascii-title">Tiny Smile</div> | |
| <pre>^_^</pre> | |
| </div> | |
| <div class="ascii-item small"> | |
| <div class="ascii-title">Shocked</div> | |
| <pre>o_o</pre> | |
| </div> | |
| <div class="ascii-item medium"> | |
| <div class="ascii-title">Small Triangle</div> | |
| <pre> /\ | |
| / \ | |
| /____\</pre> | |
| </div> | |
| <div class="ascii-item large"> | |
| <div class="ascii-title">Large Wave</div> | |
| <pre> ~ ~ ~ | |
| / \/ \/ | |
| / \ | |
| </__________\ </pre> | |
| <div class="ascii-description">Ocean vibes</div> | |
| </div> | |
| <div class="ascii-item medium"> | |
| <div class="ascii-title">Simple House</div> | |
| <pre> /\ | |
| / \ | |
| /____\ | |
| | | | |
| | | | |
| |____|</pre> | |
| </div> | |
| <div class="ascii-item small"> | |
| <div class="ascii-title">Star</div> | |
| <pre> * | |
| * * | |
| * * *</pre> | |
| </div> | |
| <div class="ascii-item xlarge"> | |
| <div class="ascii-title">Large Tree</div> | |
| <pre> * | |
| *** | |
| ***** | |
| ******* | |
| ********* | |
| *********** | |
| ||| | |
| ||| | |
| |||</pre> | |
| <div class="ascii-description">A majestic tree</div> | |
| </div> | |
| <div class="ascii-item small"> | |
| <div class="ascii-title">Heart</div> | |
| <pre> <3</pre> | |
| </div> | |
| <div class="ascii-item medium"> | |
| <div class="ascii-title">Mountain</div> | |
| <pre> /\ | |
| / \ | |
| / \ | |
| /______\</pre> | |
| </div> | |
| </div> | |
| --- | |
| ## How to Use This Template | |
| ### Add Your ASCII Art | |
| Replace the placeholder ASCII art with your own. Just add new `ascii-item` divs: | |
| ```html | |
| <div class="ascii-item [size]"> | |
| <div class="ascii-title">Your Title</div> | |
| <pre> | |
| [Your ASCII art here] | |
| </pre> | |
| <div class="ascii-description">Optional description</div> | |
| </div> | |
| ``` | |
| ### Size Classes | |
| - `small` - Single column width | |
| - `medium` - Single column width (default) | |
| - `large` - Double column width (spans 2 columns on desktop) | |
| - `xlarge` - Double column width (spans 2 columns on desktop) | |
| ### Tips | |
| 1. **Keep monospace in mind**: ASCII art looks best in monospace fonts. The template uses `Courier New`. | |
| 2. **Whitespace matters**: Use `<pre>` tags to preserve formatting exactly as intended. | |
| 3. **Responsive design**: On mobile, large and xlarge items automatically revert to single column to save space. | |
| 4. **Dark mode**: The gallery respects your Quartz theme colors via CSS variables. | |
| ### Example: Your Own ASCII | |
| ```html | |
| <div class="ascii-item large"> | |
| <div class="ascii-title">My Masterpiece</div> | |
| <pre> | |
| ___________ | |
| / hello! \ | |
| | there | | |
| \_________/ | |
| </pre> | |
| </div> | |
| ``` | |
| --- | |
| ## Customization | |
| If you want to tweak the styling, edit the CSS variables at the top or modify these properties: | |
| - `grid-template-columns`: Change the grid layout (currently 300px minimum per item) | |
| - `gap`: Adjust spacing between items | |
| - `font-family` in `pre`: Use a different monospace font | |
| - `--theme-*` variables: Controlled by your Quartz theme | |
| Enjoy your gallery! 🎨 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ``` | |
| === | |
| ========= | |
| =========== | |
| ============= | |
| ============== ::::::: | |
| ============== :::::::::::: | |
| ============== :::::::::::::::: | |
| ============== :::::::::::::::::: | |
| ============== ::::::::-=====-::::: | |
| ============== :::::::-=======:::::: | |
| ============== :::::::-========-:::::: | |
| ============== ::::::-=========::::::: | |
| ============== ::::::-=========::::::: | |
| ============= :::::::=========-::::::: | |
| ============-::::::-========-:::::::: | |
| ===========::::::-========:::::::: | |
| ::::::::::::-::::::-=======::::::::: | |
| :::...::::::::::::::::-====-::::::::: | |
| :::... ..:::::::::::::::::::::::::::: | |
| :::. ..::::::::::::::::::::::::::. | |
| ::.. .::::::::::::::::::::::::: | |
| ::.. .::::::::::::::::::::::: | |
| ::. ..::::::::*#*:::::::::::: | |
| ::.. ..:::::::-#%%%%:::::::::::: | |
| ::... ..:::::::=%%%%%-:::::::::::: | |
| =+=::+#-.:=:. ..:::::::#%%%+::::::::::::: | |
| =======-..:#%%%*: .::::::::--::::::::::::::: | |
| ::.--.*+..:. .:-=====-:::::::::::::::::::: | |
| +====:.+%*%#=#%:.:=-::::::-==:::::::::::::::::::::: | |
| ========:..=+++#*-. .:-==-:::::::::::::::::::::::::::::: | |
| ::.. ..::::-==-::::::::::::::::::::::::::::: | |
| ::::.......:::::::::-=:::::::::::::::::::::::::::::: | |
| .:::::::::::::::::::::::::::::::::::::::::::::::::: ......... | |
| -=--=--:::::::::::::---::::::::::::::::::::::::............ | |
| :-==========--=======-::::::::::::::::::::::::::............. | |
| :::--=============--:::::::::::::::::::::::::::::............ | |
| ::::::::-------::::::::::::::::::::::::::::::::::............ | |
| ::::::::::::::::::::::::::::::::::::::::::::::::::........... | |
| :::::::::::::::::::::::::::::::-==-:::::::::::::::........... | |
| .::::::::::::::::::::::::::::-==-::::::::::::::::::.......... | |
| :::::::::::::::::::::::::::-=-::::::::::::::::::::.......... | |
| :::::::::::::::::::::::::::-=-:::::::::::::::::::.......... | |
| :::::::::::::::::::::::::-==-:::::::::::::::::::....... | |
| ::::::::::::::::::::::::-==-::::::::::::::::::: | |
| :::::::::::::::::::::::-====-:::::::::::::::::: | |
| ::::::::--::::::::::-========-:::::::::::::::: | |
| :::::::-==:::::::::-=== =====-::::::::::::: | |
| ::::::::===::::::::-=== ==--:::::::::::::::: | |
| ::::::::-===::::::::=== ==-:::::::::::::::::: | |
| ::::::-=== ::::::::-===--:::::::::::::::::: | |
| :::-===- :::::::-=== =-::::::::::::::: | |
| .:::::--= ::::::::. | |
| powered by bunnies | |
| ``` | |
| ```ascii | |
| .,,uod8B8bou,,. | |
| ..,uod8BBBBBBBBBBBBBBBBRPFT?l!i:. | |
| ,=m8BBBBBBBBBBBBBBBRPFT?!|||||||||||||| | |
| !...:!TVBBBRPFT||||||||||!!^^""' |||| | |
| !.......:!?|||||!!^^""' |||| | |
| !.........|||| |||| | |
| !.........|||| ## |||| | |
| !.........|||| |||| | |
| !.........|||| |||| | |
| !.........|||| |||| | |
| !.........|||| |||| | |
| `.........|||| ,|||| | |
| .;.......|||| _.-!!||||| | |
| .,uodWBBBBb.....|||| _.-!!|||||||||!:' | |
| !YBBBBBBBBBBBBBBb..!|||:..-!!|||||||!iof68BBBBBb.... | |
| !..YBBBBBBBBBBBBBBb!!||||||||!iof68BBBBBBRPFT?!:: `. | |
| !....YBBBBBBBBBBBBBBbaaitf68BBBBBBRPFT?!::::::::: `. | |
| !......YBBBBBBBBBBBBBBBBBBBRPFT?!::::::;:!^"`;::: `. | |
| !........YBBBBBBBBBBRPFT?!::::::::::^''...::::::; iBBbo. | |
| `..........YBRPFT?!::::::::::::::::::::::::;iof68bo. WBBBBbo. | |
| `..........:::::::::::::::::::::::;iof688888888888b. `YBBBP^' | |
| `........::::::::::::::::;iof688888888888888888888b. ` | |
| `......:::::::::;iof688888888888888888888888888888b. | |
| `....:::;iof688888888888888888888888888888888899fT! | |
| `..::!8888888888888888888888888888888899fT|!^"' | |
| `' !!988888888888888888888888899fT|!^"' | |
| `!!8888888888888888899fT|!^"' | |
| `!988888888899fT|!^"' | |
| `!9899fT|!^"' | |
| `!^"' | |
| ``` | |
| ``` | |
| + ++ | |
| ++++ ++++ | |
| +++++ ++++++ | |
| + ++++++++ | |
| ++++++++++++ | |
| ++++++++++++++++++++++++++++ | |
| ++++++++++++++++++++++++++ | |
| ++++++++++++++++++++++ | |
| +++++ ++++++++++++++++++ | |
| +++++++ ++++++++++++++++ | |
| ++++++ + ++++++++++++++++ | |
| +++++ ++++ +++++++++++++++++ | |
| ++++ ++++++ +++++++++ ++++++++ | |
| ++++ ++++++++ +++++ +++++ | |
| +++ +++++ + + | |
| +++ ++++ | |
| +++++++ | |
| +++++ + | |
| +++++ +++++ | |
| ++++ ++++ | |
| +++ + | |
| ++ | |
| ++ | |
| + | |
| ``` | |
| ``` | |
| 777777777777777777777777777777777777777777777777777 | |
| 777777777000000777777777777777777777770000077777777 | |
| 777777700007777777777777777700007777777770000777777 | |
| 777770000777777770000777777000000777777777700007777 | |
| 777700077777777700070077770077770077777777777000777 | |
| 777007777777777007777007700777770077777777777770077 | |
| 770077777777770077777700700777777007777777777777007 | |
| 700777777777770077777700700777777007777777777777707 | |
| 707777777777770077777770700777777007777777777777777 | |
| 777777777777770077777770000777777007777777777777777 | |
| 777777777777777077777770000777770077777777777777777 | |
| 777777777777777007777777007777770777777777777777777 | |
| 777777777777777707777777777777770000777777777777777 | |
| 777777777777770007777777777777777700077777777777777 | |
| 777777777777700777777777777777777777007777777777777 | |
| 777777777777007777777777777777777777700777777777777 | |
| 777777777777007777777777777777777777700777777777777 | |
| 777777777777007777777777777777777777700777777777777 | |
| 707777777777007777777777777777777777700777777777777 | |
| 707777777777007777777777777777777777007777777777777 | |
| 700777777777700077777777777777777700077777777777707 | |
| 770077777777777070007777777777000077777777777777007 | |
| 777000777777700077777700000007777770007777777700077 | |
| 777700007777000770007777777777000077000777777000777 | |
| 777777000070077777777700000007777777770077700077777 | |
| 777777770000777777777777777777777777777000000777777 | |
| 777777777777777777777777777777777777777700077777777 | |
| 777777777777777777777777777777777777777777777777777 | |
| ``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>ASCII Grid Template</title> | |
| <style> | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: var(--font-mono, 'Courier New', monospace); | |
| padding: 1.5rem; | |
| background-color: var(--color-background-primary); | |
| color: var(--color-text-primary); | |
| } | |
| .controls { | |
| display: flex; | |
| gap: 1rem; | |
| margin-bottom: 1.5rem; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| } | |
| .control-group { | |
| display: flex; | |
| gap: 0.5rem; | |
| align-items: center; | |
| } | |
| label { | |
| font-size: 14px; | |
| font-weight: 500; | |
| } | |
| input[type="number"] { | |
| width: 60px; | |
| padding: 0.4rem; | |
| border: 1px solid var(--color-border-tertiary); | |
| border-radius: var(--border-radius-md); | |
| background-color: var(--color-background-secondary); | |
| color: var(--color-text-primary); | |
| font-family: var(--font-mono); | |
| } | |
| button { | |
| padding: 0.5rem 1rem; | |
| background-color: var(--color-background-secondary); | |
| border: 1px solid var(--color-border-secondary); | |
| border-radius: var(--border-radius-md); | |
| cursor: pointer; | |
| color: var(--color-text-primary); | |
| font-size: 14px; | |
| transition: background-color 0.2s; | |
| } | |
| button:hover { | |
| background-color: var(--color-border-tertiary); | |
| } | |
| .grid-container { | |
| background-color: var(--color-background-secondary); | |
| border: 1px solid var(--color-border-secondary); | |
| border-radius: var(--border-radius-md); | |
| padding: 1rem; | |
| overflow-x: auto; | |
| } | |
| .grid { | |
| font-family: var(--font-mono); | |
| font-size: 13px; | |
| line-height: 1.4; | |
| white-space: pre-wrap; | |
| word-wrap: break-word; | |
| color: var(--color-text-primary); | |
| min-width: fit-content; | |
| } | |
| .copy-btn { | |
| margin-top: 1rem; | |
| padding: 0.6rem 1.2rem; | |
| background-color: var(--color-background-secondary); | |
| border: 1px solid var(--color-border-secondary); | |
| border-radius: var(--border-radius-md); | |
| cursor: pointer; | |
| color: var(--color-text-primary); | |
| font-size: 14px; | |
| } | |
| .copy-btn:hover { | |
| background-color: var(--color-border-tertiary); | |
| } | |
| .copy-feedback { | |
| margin-top: 0.5rem; | |
| font-size: 12px; | |
| color: var(--color-text-success); | |
| min-height: 18px; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="controls"> | |
| <div class="control-group"> | |
| <label for="cols">Width (cols):</label> | |
| <input type="number" id="cols" min="5" max="200" value="40"> | |
| </div> | |
| <div class="control-group"> | |
| <label for="rows">Height (rows):</label> | |
| <input type="number" id="rows" min="5" max="100" value="20"> | |
| </div> | |
| <button onclick="generateGrid()">Generate Grid</button> | |
| <button onclick="clearGrid()">Clear</button> | |
| </div> | |
| <div class="grid-container"> | |
| <div class="grid" id="grid"></div> | |
| </div> | |
| <button class="copy-btn" onclick="copyToClipboard()">Copy Grid</button> | |
| <div class="copy-feedback" id="feedback"></div> | |
| <script> | |
| function generateGrid() { | |
| const cols = parseInt(document.getElementById('cols').value) || 40; | |
| const rows = parseInt(document.getElementById('rows').value) || 20; | |
| let grid = ''; | |
| grid += '┌' + '─'.repeat(cols - 2) + '┐\n'; | |
| for (let i = 0; i < rows - 2; i++) { | |
| grid += '│' + ' '.repeat(cols - 2) + '│\n'; | |
| } | |
| grid += '└' + '─'.repeat(cols - 2) + '┘'; | |
| document.getElementById('grid').textContent = grid; | |
| document.getElementById('feedback').textContent = ''; | |
| } | |
| function clearGrid() { | |
| document.getElementById('grid').textContent = ''; | |
| document.getElementById('feedback').textContent = ''; | |
| } | |
| function copyToClipboard() { | |
| const gridText = document.getElementById('grid').textContent; | |
| if (!gridText) { | |
| document.getElementById('feedback').textContent = 'Grid is empty!'; | |
| return; | |
| } | |
| navigator.clipboard.writeText(gridText).then(() => { | |
| document.getElementById('feedback').textContent = 'Copied to clipboard!'; | |
| setTimeout(() => { | |
| document.getElementById('feedback').textContent = ''; | |
| }, 2000); | |
| }).catch(() => { | |
| document.getElementById('feedback').textContent = 'Failed to copy'; | |
| }); | |
| } | |
| generateGrid(); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment