zwesty
Write-ups / Day 5 / Warmups
Day 5 · Mon, Oct 5 · Warmups

By the Numbers

Prey slaughtered

Decimal character codes · building a decoder a day early · per-line decoding of five mixed encodings

STTMClaude Homebase Both

Flags are shortened to their first 8 and last 4 characters because they're unique per team.

Challenge ID
warmups-day-05 (+ /time_trial, /mastery)
Solved
2026-10-07, all three modes, first attempt each, in 33 s from the first start (15:37:59 → 15:38:32 UTC)
Player
Zwesty (solo), with Claude Code (Opus 5.5)

The challenge

These characters have been reduced to numbers.

The question, word for word Days 1–4: decode the blob completely and submit the slug its final non-empty line names. Answer format: word-word-word-NN, trimmed. Mastery: 23 blobs.

Reading the prompt: what it said we'd need

Clue What it pointed to What I did about it
"Characters … reduced to numbers" Each character written as its decimal byte value (ASCII) Nothing new. The Day 4 solver had a decimal decoder added a day early from this very prompt
"By the Numbers" (the title) The same —
The question is identical to Days 1–4 Compounding: Mastery would gain a fifth line, in decimal Test a five-line blob whose decimal line holds only the slug before any timed run

What was in the files

The familiar sentence, as decimal numbers:

78 105 99 101 32 119 111 114 107 32 100 101 99 111 100 105 110 103 …

Nice work decoding this warmup! To solve, submit this exact answer to the Game Master: sturdy-river-grove-57

How to read decimal by eye: printable ASCII is 32–126. 32 is a space, 65–90 are A–Z, 97–122 are a–z, and 45 is a hyphen. So a run of numbers mostly between 97 and 122, with 32s between groups, is lowercase text.

Mode Delivered as Raw format
Single Solve blob.txt, 395 B The sentence as space-separated decimal
Time Trial blob.txt, 390 B The same
Mastery One stored zip of blob-01..23.txt Five labelled lines: Base64, ROT13, hex, binary, decimal

A Mastery blob, the sentence now split five ways, one encoding per day so far:

Line Encoding Decodes to (blob-01)
01 Base64 (Day 1) "Nice work decoding th"
02 ROT13 (Day 2) "is warmup! To solve, s"
03 Hex (Day 3) "ubmit this exact answ"
04 Binary (Day 4) "er to the Game Master:"
05 Decimal (Day 5) " deft-garden-harbor-81": a leading space plus the slug, no ordinary words at all

That last line is exactly the case that broke Day 4's second Mastery attempt. A line with no common English words used to tie with its own undecoded form. The fix made then (a naturalness tie-breaker, plus trying candidate combinations) handled all 23 blobs here first time.

Single Solve: CORRECT in 22 seconds

Started at 15:37:59 UTC. The blob's SHA-256 matched. The Day 4 solver read it in one decimal layer: sturdy-river-grove-57. CORRECT at 15:38:21, flag 57b3dead…56ce.

The solver: our Day 5 solver just loads Day 4's by path, for the one-folder-per-day layout. 4 tests passed before the timed runs: the real blob, plain decimal, a five-line blob with a slug-only decimal line, and decimal mixed with ROT13 and Base64.

Time Trial: 1.46 s of a 6-second clock

started_at 2026-10-07T15:38:25.033Z  deadline 2026-10-07T15:38:31.033Z
  artifact blob.txt 390 bytes sha256 2273864b8d9ed78e… (checked)
  message: kind-cloud-willow-54
  start         412 ms
  artifact      388 ms
  solve           0 ms
  submit        665 ms
  TOTAL        1464 ms
result CORRECT  flag b6fd5252…fe89

Mastery: 1.63 s of a 7-second clock, first attempt

started_at 2026-10-07T15:38:30.451Z  deadline 2026-10-07T15:38:37.451Z
  artifact warmups-day-05-mastery.zip (23 blobs, checked)
  set1.message … set23.message (23 slugs)
  start         477 ms
  solve          16 ms
  submit        772 ms
  TOTAL        1634 ms
result CORRECT  flag 4ba8ebe1…759c

23 five-line blobs solved in 16 ms in total. Trying candidate combinations costs almost nothing.

Time to solve

All three modes were solved on 2026-10-07 by 15:38:32 UTC, 33 s after the first start. The Single Solve took 22 s, and the Time Trial (1.46 s of 6 s) and the Mastery (1.63 s of 7 s) each went through on the first submit.

Takeaways

  • Building a day ahead paid off. Adding decimal on Day 4, from Day 5's posted prompt, turned this into a 33-second challenge.
  • Yesterday's bug fix was today's requirement. Day 4's slug-only-line failure was exactly Day 5's Mastery layout. Fixing the cause properly, rather than patching the one case, meant no surprises.
  • The warmups compound one line a day: Mastery had 2 lines on Day 2, then 3, 4, and now 5. Day 6's will likely add octal as line 6, and Day 7's percent-encoding as line 7. Both decoders are already in.