npm i minimist
node upgrades.js <args>
-f с какого уровня (Default 0)
-w до скольки белыми (Default 12)
| 0xa380b4a64382F58dEa354aBc83Eb6361a5C1cc30 |


Even though this challenge was not so hard, in the end only 10 teams solved it, so it had a preety high dynamic point value. Sorry for my shitty code, I was solving this challenge in a hurry and finished it 8 minutes before the end of CTF, so I apologize.
So, as we connect we see a little proof of work prompt (actually this was a preety useless PoW, because it doesn't require any prefix in our string, so we could just precompute all possible sha256 hashes with different 6 chars at [-6:], but still it took around a minute on my laptop :D)
| // Filter out the names that start with a vowel | |
| const words = ['Петро', 'Емма', 'Юстин', 'Ілля', 'Марта']; | |
| const vowels = ['а', 'е', 'и', 'і', 'о', 'у', 'я', 'ю', 'є', 'ї']; | |
| let filteredNames = [] | |
| // Using loop with confition | |
| for (let i = 0; i < words.length; i++) { | |
| const word = words[i]; | |
| if (typeof word !== 'string') { |
| html, body { | |
| overscroll-behavior: none; | |
| } |
| { | |
| "name": "TokyoNight Custom", | |
| "version": 1, | |
| "shared": { | |
| "backgroundColor": "#1A1E2F", | |
| "colorPaletteOverrides": [ | |
| "#1D202F", | |
| "#F7768D", | |
| "#9ECE6A", | |
| "#E0AF67", |