upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlog <log@invalid>2026-10-17 20:36:14 +0000
committerlog <log@invalid>2026-10-17 20:36:14 +0000
commitb515fb36f3972f3aa3ff1ba0d03ff4016297351e (patch)
tree71d12f260a7bde61fba1c1fcd621d7db1ded4e47
parentc0d16d545b5a097c3f9d5d7e11f33b971551e1ad (diff)
size 118908
-rw-r--r--reveal/v5-000022/check.py319
-rw-r--r--reveal/v5-000022/manifest.txt28
-rw-r--r--reveal/v5-000022/manifest.txt.otsbin0 -> 689 bytes
-rw-r--r--reveal/v5-000022/r33764212.ctbin0 -> 16388 bytes
-rw-r--r--reveal/v5-000022/r33764212.nostr.json1
-rw-r--r--reveal/v5-000022/r33764212.tlock11
-rw-r--r--reveal/v5-000022/r33793012.ctbin0 -> 25548 bytes
-rw-r--r--reveal/v5-000022/r33793012.nostr.json1
-rw-r--r--reveal/v5-000022/r33793012.tlock11
-rw-r--r--reveal/v5-000022/r33879412.ctbin0 -> 6545 bytes
-rw-r--r--reveal/v5-000022/r33879412.nostr.json1
-rw-r--r--reveal/v5-000022/r33879412.tlock11
-rw-r--r--reveal/v5-000022/r33908212.ctbin0 -> 2614 bytes
-rw-r--r--reveal/v5-000022/r33908212.nostr.json1
-rw-r--r--reveal/v5-000022/r33908212.tlock11
-rw-r--r--reveal/v5-000022/r33965812.ctbin0 -> 1016 bytes
-rw-r--r--reveal/v5-000022/r33965812.nostr.json1
-rw-r--r--reveal/v5-000022/r33965812.tlock11
-rw-r--r--reveal/v5-000022/r34023412.ctbin0 -> 744 bytes
-rw-r--r--reveal/v5-000022/r34023412.nostr.json1
-rw-r--r--reveal/v5-000022/r34023412.tlock11
-rw-r--r--reveal/v5-000022/r34916212.ctbin0 -> 16177 bytes
-rw-r--r--reveal/v5-000022/r34916212.nostr.json1
-rw-r--r--reveal/v5-000022/r34916212.tlock11
-rw-r--r--reveal/v5-000022/r34945012.ctbin0 -> 25228 bytes
-rw-r--r--reveal/v5-000022/r34945012.nostr.json1
-rw-r--r--reveal/v5-000022/r34945012.tlock11
-rw-r--r--reveal/v5-000022/r34973812.ctbin0 -> 664 bytes
-rw-r--r--reveal/v5-000022/r34973812.nostr.json1
-rw-r--r--reveal/v5-000022/r34973812.tlock11
-rw-r--r--reveal/v5-000022/r35031412.ctbin0 -> 6654 bytes
-rw-r--r--reveal/v5-000022/r35031412.nostr.json1
-rw-r--r--reveal/v5-000022/r35031412.tlock11
-rw-r--r--reveal/v5-000022/r35060212.ctbin0 -> 2940 bytes
-rw-r--r--reveal/v5-000022/r35060212.nostr.json1
-rw-r--r--reveal/v5-000022/r35060212.tlock11
-rw-r--r--reveal/v5-000022/r35117812.ctbin0 -> 1015 bytes
-rw-r--r--reveal/v5-000022/r35117812.nostr.json1
-rw-r--r--reveal/v5-000022/r35117812.tlock11
-rw-r--r--reveal/v5-000022/r35175412.ctbin0 -> 652 bytes
-rw-r--r--reveal/v5-000022/r35175412.nostr.json1
-rw-r--r--reveal/v5-000022/r35175412.tlock11
-rw-r--r--reveal/v5-000022/r35751412.ctbin0 -> 1026 bytes
-rw-r--r--reveal/v5-000022/r35751412.nostr.json1
-rw-r--r--reveal/v5-000022/r35751412.tlock11
-rw-r--r--reveal/v5-000022/r35924212.ctbin0 -> 7894 bytes
-rw-r--r--reveal/v5-000022/r35924212.nostr.json1
-rw-r--r--reveal/v5-000022/r35924212.tlock11
-rw-r--r--reveal/v5-000022/r36097012.ctbin0 -> 1424 bytes
-rw-r--r--reveal/v5-000022/r36097012.nostr.json1
-rw-r--r--reveal/v5-000022/r36097012.tlock11
-rw-r--r--reveal/v5-000022/r36183412.ctbin0 -> 672 bytes
-rw-r--r--reveal/v5-000022/r36183412.nostr.json1
-rw-r--r--reveal/v5-000022/r36183412.tlock11
-rw-r--r--reveal/v5-000022/r36903412.ctbin0 -> 1017 bytes
-rw-r--r--reveal/v5-000022/r36903412.nostr.json1
-rw-r--r--reveal/v5-000022/r36903412.tlock11
-rw-r--r--reveal/v5-000022/r37018612.ctbin0 -> 1552 bytes
-rw-r--r--reveal/v5-000022/r37018612.nostr.json1
-rw-r--r--reveal/v5-000022/r37018612.tlock11
-rw-r--r--reveal/v5-000022/r37076212.ctbin0 -> 7945 bytes
-rw-r--r--reveal/v5-000022/r37076212.nostr.json1
-rw-r--r--reveal/v5-000022/r37076212.tlock11
-rw-r--r--reveal/v5-000022/r37249012.ctbin0 -> 1012 bytes
-rw-r--r--reveal/v5-000022/r37249012.nostr.json1
-rw-r--r--reveal/v5-000022/r37249012.tlock11
-rw-r--r--reveal/v5-000022/r38170612.ctbin0 -> 1718 bytes
-rw-r--r--reveal/v5-000022/r38170612.nostr.json1
-rw-r--r--reveal/v5-000022/r38170612.tlock11
-rw-r--r--reveal/v5-000022/seal.json43
70 files changed, 654 insertions, 0 deletions
diff --git a/reveal/v5-000022/check.py b/reveal/v5-000022/check.py
new file mode 100644
index 0000000..7f86b8d
--- /dev/null
+++ b/reveal/v5-000022/check.py
@@ -0,0 +1,319 @@
1#!/usr/bin/env python3
2"""
3Check Echo's self-revealing ledger seals (`sha256-live-v5`) without trusting Echo.
4
5 python3 check.py SEAL_DIR [SEAL_DIR ...] [--tle PATH] [--offline]
6
7Needs Python 3.11+, the `cryptography` package (ChaCha20-Poly1305) and drand's `tle` binary
8(`go install github.com/drand/tlock/cmd/tle@v1.2.0`). It imports nothing of Echo's: a checker that needs the thing it
9checks is not a checker, which is why it is copied, whole, into every seal directory.
10
11Each SEAL_DIR is one seal: `manifest.txt` (the exact text the seal's digest is the sha256 of), `seal.json`, and per
12reveal group `r<ROUND>.tlock` (the group's key, time-locked to that drand round) and `r<ROUND>.ct` (the group,
13encrypted under that key), and, once the group has been revealed, `r<ROUND>.held.json` (how many of its withheld
14lines Echo publishes no salt for, and why) and any number of `r<ROUND>.salts.<N>.json`: each the salts of withheld
15lines Echo decided to open and had not erased, each with its line. `manifest.txt.ots`, when present, is an
16OpenTimestamps proof over the manifest: `ots verify manifest.txt.ots` checks it against Bitcoin.
17
18What it checks, from the files alone and the beacon:
19 1. the manifest hashes to the seal's digest, and each seal names the one before it (when several are given);
20 2. each group's ciphertext and locked key hash to what the manifest commits, and the key is locked to the
21 manifest's round of the manifest's chain;
22 3. for every group whose round the beacon has signed: the round's signature as each relay serves it, the key
23 unlocked with it, the group decrypted, its bytes hashed to the committed digest, its lines and withheld lines
24 counted against the committed counts, its lines in id order, and every line's reveal day recomputed from its
25 own settling instant under the seal's named rule (`utc-day-after-close`: the first 00:00 UTC after
26 `settles_at`, else after the deadline);
27 4. for every opened group with releases: each names this seal, round and group and its own number; each released
28 salt and line hash to the withheld line's committed hash; no line is settled twice; and a hold, where there is
29 one, names the group and counts no more lines than are withheld;
30 5. once every group of every seal from the first is open and every withheld line released: the union of their v4
31 lines, sorted by id, rehashes to the v4 digest the last seal follows, so no sealed forecast was left out of a
32 reveal. Where a withheld line has no released salt (held, erased, or not yet released) that digest cannot be
33 rebuilt, and this says so and why: what is checked then is only that every forecast the v4 seal covers is in a
34 group, counted. A withheld line is never called verified.
35
36A group whose round is not yet signed, or whose withheld lines have no release yet, is reported as pending or held,
37not as a failure. Exit 0 when everything checkable passed, 1 when anything did not match.
38"""
39from __future__ import annotations
40
41import argparse
42import base64
43import hashlib
44import json
45import re
46import subprocess
47import sys
48import urllib.request
49import zlib
50from datetime import datetime, timedelta, timezone
51from pathlib import Path
52
53
54def sha(b: bytes) -> str:
55 return hashlib.sha256(b).hexdigest()
56
57
58def parse_manifest(text: str) -> dict:
59 lines = text.split("\n")
60 if lines[0] != "sha256-live-v5":
61 raise ValueError(f"not a v5 manifest: {lines[0]!r}")
62 m = {"groups": []}
63 for ln in lines[1:]:
64 word, _, rest = ln.partition(" ")
65 if word == "prev":
66 m["prev"] = None if rest == "-" else rest
67 elif word == "follows":
68 seq, digest, n = rest.split(" ")
69 m["follows"] = {"seq": int(seq), "digest": digest, "n": int(n)}
70 elif word == "covers":
71 m["covers"] = rest.split(" ")
72 elif word == "variant":
73 m["variant"] = json.loads(rest)
74 elif word == "counts":
75 m["n"], m["n_withheld"], m["n_groups"] = map(int, rest.split(" "))
76 elif word == "group":
77 r, at, n, w, digest, ct, key, late = rest.split(" ")
78 m["groups"].append({"round": int(r), "reveal_at": at, "n": int(n), "n_withheld": int(w),
79 "digest": digest, "ct": ct, "key": key, "late": late == "1"})
80 else:
81 raise ValueError(f"unknown manifest line {ln!r}")
82 return m
83
84
85def stanza(locked: str) -> tuple[int, str] | None:
86 body = "".join(ln for ln in locked.strip().splitlines() if not ln.startswith("-----"))
87 m = re.search(rb"-> tlock (\d+) ([0-9a-f]{64})", base64.b64decode(body))
88 return (int(m.group(1)), m.group(2).decode()) if m else None
89
90
91def round_at(beacon: dict, at: datetime) -> int:
92 t = at.timestamp()
93 whole = int(t) + (t != int(t))
94 if whole <= beacon["genesis_time"]:
95 return 1
96 return -(-(whole - beacon["genesis_time"]) // beacon["period"]) + 1
97
98
99def reveal_day(closes: datetime) -> datetime:
100 d = closes.astimezone(timezone.utc).date() + timedelta(days=1)
101 return datetime(d.year, d.month, d.day, tzinfo=timezone.utc)
102
103
104def parse_line(ln: str) -> dict:
105 """One line: `id|issued_at|deadline|forecaster|p|settlement|anchor<TAB>open:<v4>` or `...<TAB>withheld:<hex>`."""
106 numeric, tab, text = ln.partition("\t")
107 if not tab:
108 raise ValueError("a line without its text layer")
109 fid, issued, deadline, forecaster, p, rest = numeric.split("|", 5)
110 dec = json.JSONDecoder()
111 settle, end = dec.raw_decode(rest)
112 if rest[end] != "|":
113 raise ValueError("settlement not followed by the anchor")
114 anchor, end2 = dec.raw_decode(rest, end + 1)
115 if end2 != len(rest):
116 raise ValueError("trailing bytes after the anchor")
117 out = {"id": int(fid), "issued_at": issued, "deadline": deadline, "forecaster": forecaster, "p": float(p),
118 "settlement": settle, "anchor": anchor}
119 if text.startswith("open:"):
120 out["v4"] = text[5:]
121 if not out["v4"].startswith(f"{fid}|"):
122 raise ValueError("the text layer is another forecast's line")
123 elif re.fullmatch(r"withheld:[0-9a-f]{64}", text):
124 out["withheld"] = text[9:]
125 else:
126 raise ValueError(f"unknown text layer {text[:20]!r}")
127 return out
128
129
130def beacon_round(beacon: dict, rnd: int) -> dict:
131 """What each relay serves for the round: its signature, or why there is none."""
132 out = {}
133 for relay in beacon["relays"]:
134 url = f"{relay.rstrip('/')}/{beacon['chain_hash']}/public/{rnd}"
135 try:
136 with urllib.request.urlopen(url, timeout=20) as r: # noqa: S310 — the seal's own relays
137 out[relay] = json.loads(r.read()).get("signature")
138 except Exception as exc: # noqa: BLE001 — report, go on
139 out[relay] = f"unavailable ({type(exc).__name__})"
140 return out
141
142
143def unlock(tle: str, beacon: dict, locked: str) -> bytes | None:
144 """The key, or None while the round is unsigned. Each relay is tried in turn."""
145 errors = []
146 for relay in beacon["relays"]:
147 r = subprocess.run([tle, "-d", "-n", relay.rstrip("/") + "/", "-c", beacon["chain_hash"]],
148 input=locked.encode(), capture_output=True, timeout=120, check=False)
149 if r.returncode == 0:
150 return r.stdout
151 if b"too early" in r.stderr:
152 return None
153 errors.append(f"{relay}: {r.stderr.decode(errors='replace').strip()[-160:]}")
154 raise RuntimeError("; ".join(errors))
155
156
157def release(d: Path, seal_digest: str, g: dict, lines: list[dict], say) -> tuple[dict[int, str], int, str | None]:
158 """An opened group's releases and hold, checked against the group: (id -> the v4 line each released salt opens,
159 how many withheld lines were opened and found erased, and the hold's reason where Echo published one)."""
160 r = g["round"]
161 shut = {x["id"]: x["withheld"] for x in lines if "withheld" in x}
162 out, erased, seen, bad = {}, set(), set(), []
163 files = sorted(d.glob(f"r{r}.salts.*.json"), key=lambda p: int(p.name.split(".")[-2]))
164 for k, path in enumerate(files):
165 rel = json.loads(path.read_text())
166 say(rel.get("format") == "echo-reveal-salts/1" and rel.get("seal") == seal_digest
167 and rel.get("round") == r and rel.get("group") == g["digest"] and rel.get("n") == k
168 and path.name == f"r{r}.salts.{k}.json",
169 f"round {r}: release {k} names this seal, round and group, and follows the one before")
170 for x in rel.get("released", []):
171 i, line = x["id"], x["line"]
172 opens = (i in shut and i not in seen and line.startswith(f"{i}|")
173 and sha(bytes.fromhex(x["salt"]) + line.encode()) == shut[i])
174 if opens:
175 out[i] = line
176 else:
177 bad.append(i)
178 seen.add(i)
179 for i in rel.get("erased", []):
180 if i not in shut or i in seen:
181 bad.append(i)
182 erased.add(i)
183 seen.add(i)
184 if files:
185 say(not bad, f"round {r}: {len(out)} released lines open their committed hashes, {len(erased)} opened lines "
186 f"found erased, none settled twice" + (f" ({len(bad)} do not, e.g. {bad[:3]})" if bad else ""))
187 why = None
188 hold = d / f"r{r}.held.json"
189 if hold.exists():
190 h = json.loads(hold.read_text())
191 say(h.get("format") == "echo-reveal-held/1" and h.get("seal") == seal_digest and h.get("round") == r
192 and h.get("group") == g["digest"] and 0 <= h.get("held", -1) <= len(shut),
193 f"round {r}: the hold names this seal, round and group, and counts at most its withheld lines")
194 why = str(h.get("why") or "no reason given")
195 left = len(shut) - len(out) - len(erased)
196 if left:
197 print(f" .... round {r}: {left} withheld lines have no released salt: counted, not rehashed"
198 + (f" (Echo publishes none: {why})" if why else " (no release or hold published yet)"))
199 return out, len(erased), why
200
201
202def check(dirs: list[Path], tle: str = "tle", offline: bool = False) -> int:
203 from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
204
205 failed, pending, withheld, held, erased, union = 0, 0, 0, 0, 0, {}
206 reasons: set[str] = set()
207 first_prev = "unset"
208
209 def say(ok: bool, what: str) -> None:
210 nonlocal failed
211 failed += not ok
212 print(f" {'PASS' if ok else 'FAIL'} {what}")
213
214 prev_digest = None
215 seals = []
216 for d in dirs:
217 text = (d / "manifest.txt").read_bytes()
218 row = json.loads((d / "seal.json").read_text())
219 seals.append((d, text, row, parse_manifest(text.decode())))
220 seals.sort(key=lambda s: s[2]["seq"])
221 last = None
222 for i, (d, text, row, m) in enumerate(seals):
223 print(f"v5 seal {row['seq']}: {m['n']} forecasts in {m['n_groups']} reveal groups, {m['n_withheld']} withheld, "
224 f"follows v4 seal {m['follows']['seq']}")
225 say(sha(text) == row["digest"], f"sha256(manifest.txt) is the seal's digest {row['digest'][:16]}…")
226 say(len(m["groups"]) == m["n_groups"] and sum(g["n"] for g in m["groups"]) == m["n"]
227 and sum(g["n_withheld"] for g in m["groups"]) == m["n_withheld"], "the manifest's counts add up")
228 if i == 0:
229 first_prev = m["prev"]
230 else:
231 say(m["prev"] == prev_digest, "it names the seal before it")
232 prev_digest, last = row["digest"], m
233 b = m["variant"]["beacon"]
234 for g in m["groups"]:
235 r = g["round"]
236 ct, locked = (d / f"r{r}.ct").read_bytes(), (d / f"r{r}.tlock").read_text()
237 say(sha(ct) == g["ct"] and sha(locked.encode()) == g["key"],
238 f"round {r}: the ciphertext and the locked key are the committed ones")
239 say(stanza(locked) == (r, b["chain_hash"]), f"round {r}: the key is locked to that round of that chain")
240 say(round_at(b, datetime.fromisoformat(g["reveal_at"])) == r, f"round {r} is signed at {g['reveal_at']}")
241 if not offline:
242 sigs = beacon_round(b, r)
243 good = {s for s in sigs.values() if s and not s.startswith("unavailable")}
244 print(f" .... round {r} signature from {len(sigs)} relays: "
245 + ("not yet signed" if not good else f"{len(good)} distinct: {min(good)[:24]}…"))
246 if len(good) > 1:
247 say(False, f"round {r}: relays disagree on its signature")
248 key = unlock(tle, b, locked)
249 if key is None:
250 pending += 1
251 print(f" .... round {r} ({g['reveal_at']}) not yet signed: {g['n']} forecasts stay locked")
252 continue
253 try:
254 plain = zlib.decompress(ChaCha20Poly1305(key).decrypt(b"\x00" * 12, ct, None))
255 except Exception as exc: # noqa: BLE001 — a finding, not a crash
256 say(False, f"round {r}: the ciphertext does not open under its key ({type(exc).__name__})")
257 continue
258 say(sha(plain) == g["digest"], f"round {r}: the opened group hashes to its committed digest")
259 lines = [parse_line(ln) for ln in plain.decode().split("\n")]
260 ids = [x["id"] for x in lines]
261 say(len(lines) == g["n"] and sum("withheld" in x for x in lines) == g["n_withheld"],
262 f"round {r}: {len(lines)} lines, {g['n_withheld']} withheld, as committed")
263 say(ids == sorted(set(ids)), f"round {r}: lines in id order, none twice")
264 due = datetime.fromisoformat(g["reveal_at"])
265 if m["variant"].get("reveal") == "utc-day-after-close":
266 wrong = [x["id"] for x in lines if reveal_day(datetime.fromisoformat(
267 (x["settlement"] or {}).get("settles_at") or x["deadline"])) != due]
268 say(not wrong, f"round {r}: every line belongs to this reveal day"
269 + (f" ({len(wrong)} do not, e.g. {wrong[:3]})" if wrong else ""))
270 else:
271 print(f" .... round {r}: reveal rule {m['variant'].get('reveal')!r} is not one this checker "
272 "recomputes; which lines belong to the day is unchecked")
273 opened, gone, why = release(d, row["digest"], g, lines, say)
274 for x in lines:
275 if x["id"] in union:
276 say(False, f"forecast {x['id']} is in two groups")
277 union[x["id"]] = x.get("v4") or opened.get(x["id"])
278 shut = sum(1 for x in lines if "withheld" in x and x["id"] not in opened) - gone
279 erased += gone
280 if why is None:
281 withheld += shut
282 else:
283 held += shut
284 reasons.add(why)
285 if last is not None:
286 if first_prev is not None:
287 print(" .... completeness: the first seal given is not the chain's first; give every seal from it")
288 elif pending:
289 print(f" .... completeness: {pending} groups still locked; it is checkable once all have opened")
290 elif withheld or held or erased:
291 told = [f"{withheld} withheld lines not yet released"] if withheld else []
292 told += ([f"{held} withheld lines held, for which Echo publishes no salt ({'; '.join(sorted(reasons))})"]
293 if held else [])
294 told += [f"{erased} erased stay hashes"] if erased else []
295 print(f" .... completeness: {', '.join(told)}: those lines can be counted but not rehashed, so the v4 "
296 f"lines cannot all be rebuilt and the v4 digest is NOT checked; {len(union)} forecasts against "
297 f"the v4 seal's {last['follows']['n']}")
298 say(len(union) == last["follows"]["n"], "every forecast the v4 seal covers is in a group, counted")
299 else:
300 got = sha("\n".join(union[k] for k in sorted(union)).encode())
301 say(got == last["follows"]["digest"] and len(union) == last["follows"]["n"],
302 f"the union of {len(union)} lines rehashes to v4 seal {last['follows']['seq']}'s digest")
303 print("\nNOT VERIFIED" if failed else f"\nVERIFIED{f' ({pending} groups not yet revealed)' if pending else ''}")
304 return 1 if failed else 0
305
306
307def main(argv: list[str]) -> int:
308 ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
309 ap.add_argument("dirs", nargs="*", default=[str(Path(__file__).resolve().parent)],
310 help="seal directories, any order (default: the one this script sits in)")
311 ap.add_argument("--tle", default="tle", help="the tle binary that unlocks a key once its round is signed")
312 ap.add_argument("--offline", action="store_true",
313 help="do not fetch each round's signature from the relays for display; tle still asks them")
314 args = ap.parse_args(argv)
315 return check([Path(d) for d in args.dirs], tle=args.tle, offline=args.offline)
316
317
318if __name__ == "__main__":
319 raise SystemExit(main(sys.argv[1:]))
diff --git a/reveal/v5-000022/manifest.txt b/reveal/v5-000022/manifest.txt
new file mode 100644
index 0000000..0578439
--- /dev/null
+++ b/reveal/v5-000022/manifest.txt
@@ -0,0 +1,28 @@
1sha256-live-v5
2prev ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1
3follows 52 36ab4cefedd8aeab5b3abdaf0eee7152f2b39497fe651944872f3632b4615132 72138
4covers 2026-10-17T16:11:15.061357Z 2026-10-17T20:34:34.042922Z
5variant {"beacon":{"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","genesis_time":1692803367,"period":3,"relays":["https://api.drand.sh","https://api2.drand.sh","https://api3.drand.sh","https://drand.cloudflare.com"],"scheme":"bls-unchained-g1-rfc9380"},"cipher":"chacha20poly1305-zlib6-nonce0","gate":{"default":"withheld: a kept salt can be released later; an opened text can never be withdrawn","opened":"none","why":"no decision by Echo yet"},"line":"numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)","reveal":"utc-day-after-close","salts":"key ring: one content a seal, one part a line","tool":{"name":"tle","sha256":"69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541","version":"tlock v1.2.0 -- github.com/drand/tlock"}}
6counts 2158 2158 22
7group 33764212 2026-11-08T00:00:00.000000Z 284 284 0aa6603af9b030aae52680c3a2de66ddbf8475a5827f300a6d47acb21d872236 6d4394d5fef2f3b4fea2fdc64d9c4d68d65e05a45dfd94b7d864b3e721fa1f5d 9c21f3a3464d3350e02f63781e07f6bb0d9470499f28c5f35b89c76ef5de0e6d 0
8group 33793012 2026-11-09T00:00:00.000000Z 444 444 db96b536e73b085eef9ebe4e942f9b3e59f06f041f99160ee03528ecccc7de6c 85d0046c53463624c51ffdc793e8c7ac1ecf4a609b8291d3bbf5f945d950bb85 27efd265e778721745939dbc35a880455eb2e23a7b8e475b1daf30cda165e76f 0
9group 33879412 2026-11-12T00:00:00.000000Z 108 108 65b7a32ffc1a47ff739894937620c549fca8531b6e9d1fc591f881bb2bc3bff6 edeb41b74cfd0334f17e4e60dc06b953c65a45495323e2f56f0697d6a38358fb 834a4d76853b2944b1ae8249089c84c3e9c81dc60406ce70a8034bc1dd095cc4 0
10group 33908212 2026-11-13T00:00:00.000000Z 39 39 074ddbae0a591db603f9470d6d0fe571f572743dbba5aa0f6935c8738477ae1a c9ad8331cb714a49ae1c3d6c28a9c6f825204b0374d6fd4fd0e9e253d4b64b7c a7e188afe036087ae968353d33e6f37f094ad42be8bd015c39a219f441a88d57 0
11group 33965812 2026-11-15T00:00:00.000000Z 12 12 3104e91bc3ac496a6fdf8d3ae5c46c251668b60423a8af29b77897c41c89866a ad47d4d96c678d26725946169892338813a4323c40f818a18ccbf97b8e56ac61 4be0615bda5d613eab42cc0b46dff1d5d8a2636a3b9759a78f09beca88fd2ea8 0
12group 34023412 2026-11-17T00:00:00.000000Z 8 8 b70f3fa226847f3d49c29d050e6c61c5b263dc581bfc93a51bec10ed42a9c959 c53c7f8b45fea3e68ac40b02eb7f4c62b6401b54cbc73b5fe991ce1f75d4f8fe 54aba1b8c85ce82bcc8b319f487c502460abb116aaff0281bcee9f5a60813335 0
13group 34916212 2026-12-18T00:00:00.000000Z 282 282 201f139dddcc73defd180e322293ed77967dc1cfcb9efc65dde738edf5a06cee c8e5908135dd0a4571870028a6fe359810e0400f7ef13be59fb34d3e50b764c1 69819039a6420386667ea099ed807948b5b68a2dd4b14604688ad3047416fc92 0
14group 34945012 2026-12-19T00:00:00.000000Z 435 435 3ec8f6b29148d44a85b8c5fb3b09e67cb1d1389427b2f49b2e873b5ed4327748 fed59fefda11b6ead4bd4f4aca0a79351b86e5872badedb91b21233a9a41fa10 5251bb6de1793a3765932775cff9fea248185e71ce2692a0838e7828ceafff5e 0
15group 34973812 2026-12-20T00:00:00.000000Z 6 6 785172bc39c2663874477b77a35567d21ac05c022509f198ef32962d4792d17f e01263b6a7f39e1051173a2049655f360e7bb828a94ca45e60fe6049baeb5622 e1705dc158dfc5183e6fbc863e5c58122b245bbb8fab59a8c944d08e1cfdc5e8 0
16group 35031412 2026-12-22T00:00:00.000000Z 108 108 14041aba767702ca3cd5aa0f4010b0cb0018e5dcfb2cd2962422023b55e938bd d7efc7d878460407cc9d4f059db6a2d7f188ad5dcea7e124c665a4a5c0857bba e8ee721c602078e0f7383b7d45d93c646fc5906489c8d86f859c8ddb1909f020 0
17group 35060212 2026-12-23T00:00:00.000000Z 45 45 4645bacebf2433d4275a0fd87bd2b6928c5c6e0e87d50953a23509c0250f5b66 e10d2138a4c77f265822f0690df4c2933e0126a1abe445138fa56270e0f21d8c f074c089e39f128d1cef4a1d43dfd74e6cc96e13c3bbb7dddfc70bc3b52708f1 0
18group 35117812 2026-12-25T00:00:00.000000Z 12 12 2637e8614dc91111500fba6ddcb2e1bdb5bc964b4df643247f5b329c389b4262 7f75b9a57dbfe62498c10ab9049cfc739bbe573c08f1c7f3356390362e67cd58 d925077149e4a24d03c063c48ca2d40b425204f0c02e2ad11e1cffb610bbd804 0
19group 35175412 2026-12-27T00:00:00.000000Z 6 6 86b639d9a4bc40d3a03394365b8eab4d0f79d0e0b6267d6d4020a4d7a6a2d95e 919e06cc71a834cd161421f03a1aab068f5e5429d666c8d941f1305da0111aea 7f0980ac81e1dc710d3dd075beed52c56f2aac8d36ab4e09cc0aff6d7064e9be 0
20group 35751412 2027-01-16T00:00:00.000000Z 12 12 075fae2de350222c092c6b8a9e627bff32e830d9dab7199b805f2b9773434717 acea6bee9711ba6a7b7c5a07057887c26791a6210a467a6ffb29aa256aab6d56 89ffdf8f3eb9265a42a571718defc174dfcf70f39103bad7fda81deaf9d26f7f 0
21group 35924212 2027-01-22T00:00:00.000000Z 132 132 7830ba01ea069f5255b40bfa297218000b3a4cd2f0c5ad039e8fd4d82727b0b4 94d3ac0ef459f8334bfe9631a2cd32169fd5fc38bf784a8500545d9973f6637a f22e215b4d166d13f4298718f2fd1345b67bbbd855c6324a73b91ba21ffca3cf 0
22group 36097012 2027-01-28T00:00:00.000000Z 18 18 76718be3683c83a73be7b987da499a17d727f85e82abd4baa90bb4758761c2e4 15a9484969cbaff79c4d25f560922a7a094aeff2f61904e62c79da756fb37f7c 6c488772dbcee8d9d3c272a067b45f399a77a55d6c43d6131d32343d4b591b17 0
23group 36183412 2027-01-31T00:00:00.000000Z 6 6 6eb146e0cec2b53e3a2ecf6baf04a2448a7e770cbb23a0841aa67c107e8144f6 e6482ae2347c17b161a87c3f7cfb0ecfdcb96b42ebdd76b73b693672ca723086 b64457c44436a4d535a9145f1096414892123787f4bb316cff369bb64786bae0 0
24group 36903412 2027-02-25T00:00:00.000000Z 12 12 96016342083978eddfdf8ae2f8c2dea7b0955e14ddb12f249736164b8580e5bd a9260a12f4a23515bdee45265132c54bb4c1c1a183d17de7f92f938848869675 901eeaa85a570b5aa53d1e7ebd13d02ef16a639c47496845f4a7f1fef32809de 0
25group 37018612 2027-03-01T00:00:00.000000Z 21 21 b93c7ce5ca9475075314d968836dfceac33298e0bcf8fd5a4c2194f8f8b7b7b1 a53f73d62009db36d2f3c4a5a4995ab6a2de8e6469a4a49ea525276e8c145c68 7256d3a41a10c8db78994460d24e9c9c73c796a66d16071422b05d7bb0fc50b2 0
26group 37076212 2027-03-03T00:00:00.000000Z 132 132 df98a339f10599a875208148c039fe4eaa3a843d91f8795538f493dc9c475389 bb254ae7a1a322de0c3888446d08c930efcce58d73dcb25d91acb3413757c230 fe0fa15a36735add003a72c02c9ea1f36c622b4d248d98cea79144a845c4ad10 0
27group 37249012 2027-03-09T00:00:00.000000Z 12 12 17f62ac2b3760838ca9583ffac2caf77a3bb636fc608e92085e35b562b7d8685 58fa10aea76c7889027b4e6466e680dca810e38adfdf6551ce145807d7fbf2a9 cbd570ff6edb67fc84853acdf33a3ca663cbfb4e790ac58b08d2704c18a795a9 0
28group 38170612 2027-04-10T00:00:00.000000Z 24 24 f2f28f235208e1cc2fcd3204ccab7e993c221e5228d2a67d94e8b3129b8531bf 95f8d2a20cc7206dbcecc9238a7028a343db3b5e504e4c6550a6afecf607bfa6 b4a17276bdd654b2e0673588730e1079d7ca17358bb91caea2eaddf7ca780b69 0 \ No newline at end of file
diff --git a/reveal/v5-000022/manifest.txt.ots b/reveal/v5-000022/manifest.txt.ots
new file mode 100644
index 0000000..82e15bb
--- /dev/null
+++ b/reveal/v5-000022/manifest.txt.ots
Binary files differ
diff --git a/reveal/v5-000022/r33764212.ct b/reveal/v5-000022/r33764212.ct
new file mode 100644
index 0000000..f0ad357
--- /dev/null
+++ b/reveal/v5-000022/r33764212.ct
Binary files differ
diff --git a/reveal/v5-000022/r33764212.nostr.json b/reveal/v5-000022/r33764212.nostr.json
new file mode 100644
index 0000000..4b12ded
--- /dev/null
+++ b/reveal/v5-000022/r33764212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzY0MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKbGgrQ3RwTzNOY0NVYURVZkFuT0tjZVFlM01YclJIT0UwOW4wN1BW\nelh2K2ZUMXFEK3FwMHJ4NGJqR1FDY0wxVgpGOWVrd2w0TWxNVUozWGh4YTl1VkFI\nek1QeHRsVXhJY0wzRkhUc250VGpibGVlRG93ZDJSbXhXcUpRTDVCOTNTCjc5RG1z\nalMzWXRLY2wraHJkTndSd0NaTXdhYTlaTGlkQ3R0QXJlMFp5SUUKLS0tIEcvYUxW\nSGJvMjJXODhlZVlqMnV6MzBPNEd1MWpLeldrZkszNmNnNGhLWmcKcNnUbjMzudNa\nVErFUlDLPP2t8u/oO0e1nyJEsEt0rOZEALJivcX1giFtoyJ69v3R3SRUt6xs6u1q\nPKLlzpQxLw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33764212"],["reveal_at","2026-11-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","0aa6603af9b030aae52680c3a2de66ddbf8475a5827f300a6d47acb21d872236"],["ct","6d4394d5fef2f3b4fea2fdc64d9c4d68d65e05a45dfd94b7d864b3e721fa1f5d"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r33764212.tlock b/reveal/v5-000022/r33764212.tlock
new file mode 100644
index 0000000..1806de5
--- /dev/null
+++ b/reveal/v5-000022/r33764212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzY0MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKbGgrQ3RwTzNOY0NVYURVZkFuT0tjZVFlM01YclJIT0UwOW4wN1BW
5elh2K2ZUMXFEK3FwMHJ4NGJqR1FDY0wxVgpGOWVrd2w0TWxNVUozWGh4YTl1VkFI
6ek1QeHRsVXhJY0wzRkhUc250VGpibGVlRG93ZDJSbXhXcUpRTDVCOTNTCjc5RG1z
7alMzWXRLY2wraHJkTndSd0NaTXdhYTlaTGlkQ3R0QXJlMFp5SUUKLS0tIEcvYUxW
8SGJvMjJXODhlZVlqMnV6MzBPNEd1MWpLeldrZkszNmNnNGhLWmcKcNnUbjMzudNa
9VErFUlDLPP2t8u/oO0e1nyJEsEt0rOZEALJivcX1giFtoyJ69v3R3SRUt6xs6u1q
10PKLlzpQxLw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r33793012.ct b/reveal/v5-000022/r33793012.ct
new file mode 100644
index 0000000..c29d629
--- /dev/null
+++ b/reveal/v5-000022/r33793012.ct
Binary files differ
diff --git a/reveal/v5-000022/r33793012.nostr.json b/reveal/v5-000022/r33793012.nostr.json
new file mode 100644
index 0000000..92cb64c
--- /dev/null
+++ b/reveal/v5-000022/r33793012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzkzMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaDVWSXcvbFB5UmFyb2p3Q1dKd20zM1lqS3JCZDdheDlKNFFiYXBR\neTlJL0x3Ynk0M1M2RVl0eDNGcG45MURWVQpFdHN1UE9SaEkzc1hGai9KemFSWWFu\nWnNIUmVKcXNCaWNZQngrTmJ6dzdHYUEwU1AxeFlBbjBqNUk2OWlUL2h3CktuU1Bk\nbmNZYVB1emJSQVo5ck94aEZ1N3RaM241bkNla2E2aFJRcWNCcmcKLS0tIGlZSnhx\na1F1dHhTRVRxeWpLUjFqamIvRGt4YWVPcTNKMGl2OGJ4eW9wL0kKwGRnX/dB/jA5\nN035y3dPf5IQO4efYXmValoygkI+us/tVMU7cOWGA9V6lvPe30vt6k9a+YIf1WIt\nJpHBT3LryA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33793012"],["reveal_at","2026-11-09T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","db96b536e73b085eef9ebe4e942f9b3e59f06f041f99160ee03528ecccc7de6c"],["ct","85d0046c53463624c51ffdc793e8c7ac1ecf4a609b8291d3bbf5f945d950bb85"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r33793012.tlock b/reveal/v5-000022/r33793012.tlock
new file mode 100644
index 0000000..b0e9f81
--- /dev/null
+++ b/reveal/v5-000022/r33793012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzkzMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaDVWSXcvbFB5UmFyb2p3Q1dKd20zM1lqS3JCZDdheDlKNFFiYXBR
5eTlJL0x3Ynk0M1M2RVl0eDNGcG45MURWVQpFdHN1UE9SaEkzc1hGai9KemFSWWFu
6WnNIUmVKcXNCaWNZQngrTmJ6dzdHYUEwU1AxeFlBbjBqNUk2OWlUL2h3CktuU1Bk
7bmNZYVB1emJSQVo5ck94aEZ1N3RaM241bkNla2E2aFJRcWNCcmcKLS0tIGlZSnhx
8a1F1dHhTRVRxeWpLUjFqamIvRGt4YWVPcTNKMGl2OGJ4eW9wL0kKwGRnX/dB/jA5
9N035y3dPf5IQO4efYXmValoygkI+us/tVMU7cOWGA9V6lvPe30vt6k9a+YIf1WIt
10JpHBT3LryA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r33879412.ct b/reveal/v5-000022/r33879412.ct
new file mode 100644
index 0000000..bd84985
--- /dev/null
+++ b/reveal/v5-000022/r33879412.ct
Binary files differ
diff --git a/reveal/v5-000022/r33879412.nostr.json b/reveal/v5-000022/r33879412.nostr.json
new file mode 100644
index 0000000..2f34c48
--- /dev/null
+++ b/reveal/v5-000022/r33879412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODc5NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcmR3YkhiOWJlTmJuMEJFRi81TVZ0Z254NUNkUzMydVlsOU9ZdTFE\nMzkrZkJUVHN2S242OTBTT3EyTm5GVkZNdApGQ2RDSmpDSDJvcjFQY2dXdk9ISjNv\nd3hMTnFDQUczK0FDazBYNE9TU0ZMNEl5azVuSnFuOEp4RXIxbWo5RzkxCks4eEdJ\nUVBaeXE2ZXduMEtUTit6bVVyQ3ptRXFob1hjeU1HMmRIOVh2SkkKLS0tIHFTRURP\nbTVGRGFmS1VJQ0wwYjIwU3FzeCtBdUR5Nnh5eVBCc0ozUk1hSkkK2652HepIKxdr\ngaZCchhvMp9o2XgsVsaviQ2qhKowSDE1s2PypySAYFMB39BPWUip/X9tvfwDYghy\nnXHEk1hdvw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33879412"],["reveal_at","2026-11-12T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","65b7a32ffc1a47ff739894937620c549fca8531b6e9d1fc591f881bb2bc3bff6"],["ct","edeb41b74cfd0334f17e4e60dc06b953c65a45495323e2f56f0697d6a38358fb"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r33879412.tlock b/reveal/v5-000022/r33879412.tlock
new file mode 100644
index 0000000..de99098
--- /dev/null
+++ b/reveal/v5-000022/r33879412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODc5NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcmR3YkhiOWJlTmJuMEJFRi81TVZ0Z254NUNkUzMydVlsOU9ZdTFE
5MzkrZkJUVHN2S242OTBTT3EyTm5GVkZNdApGQ2RDSmpDSDJvcjFQY2dXdk9ISjNv
6d3hMTnFDQUczK0FDazBYNE9TU0ZMNEl5azVuSnFuOEp4RXIxbWo5RzkxCks4eEdJ
7UVBaeXE2ZXduMEtUTit6bVVyQ3ptRXFob1hjeU1HMmRIOVh2SkkKLS0tIHFTRURP
8bTVGRGFmS1VJQ0wwYjIwU3FzeCtBdUR5Nnh5eVBCc0ozUk1hSkkK2652HepIKxdr
9gaZCchhvMp9o2XgsVsaviQ2qhKowSDE1s2PypySAYFMB39BPWUip/X9tvfwDYghy
10nXHEk1hdvw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r33908212.ct b/reveal/v5-000022/r33908212.ct
new file mode 100644
index 0000000..c9e2ba0
--- /dev/null
+++ b/reveal/v5-000022/r33908212.ct
Binary files differ
diff --git a/reveal/v5-000022/r33908212.nostr.json b/reveal/v5-000022/r33908212.nostr.json
new file mode 100644
index 0000000..3e1077f
--- /dev/null
+++ b/reveal/v5-000022/r33908212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTA4MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKamdGUkVibm1rZGNpR0FoOWJpUVZsM1dtV2M2MVpzbVU0Nzg3ZlBK\nRVJ5QVVPbG1zUWFXYytGK1lJeVlJK2lqTQpGN010OHZTclA3MFVycXNmRHNtRUlU\nZG5udXd0UERMQ3IvdlpwN0ttUUFtY3lIMm4xcWNLVUZiQ2RIaWhEejM2CmFmdU83\nRE15UjQyL1RET2dOaVpsTFhJQ3VWWHZjNFh4TlZuNHA2bUpZM1kKLS0tIEhMcXB2\nZ1AvNk9sVEc2eTRxSXluZzNMdlN3STZJMGZ5S3JTQUZVRytBUEEKLYgc8ZI9Xxcs\nXEdCvTVFLQODUuJR0Gqx36oH/0BSrJ5/hymuS/KmuILEzGvmp65oncRrvvWmiVBH\nKpe/NBLexA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33908212"],["reveal_at","2026-11-13T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","074ddbae0a591db603f9470d6d0fe571f572743dbba5aa0f6935c8738477ae1a"],["ct","c9ad8331cb714a49ae1c3d6c28a9c6f825204b0374d6fd4fd0e9e253d4b64b7c"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r33908212.tlock b/reveal/v5-000022/r33908212.tlock
new file mode 100644
index 0000000..b9fc791
--- /dev/null
+++ b/reveal/v5-000022/r33908212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTA4MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKamdGUkVibm1rZGNpR0FoOWJpUVZsM1dtV2M2MVpzbVU0Nzg3ZlBK
5RVJ5QVVPbG1zUWFXYytGK1lJeVlJK2lqTQpGN010OHZTclA3MFVycXNmRHNtRUlU
6ZG5udXd0UERMQ3IvdlpwN0ttUUFtY3lIMm4xcWNLVUZiQ2RIaWhEejM2CmFmdU83
7RE15UjQyL1RET2dOaVpsTFhJQ3VWWHZjNFh4TlZuNHA2bUpZM1kKLS0tIEhMcXB2
8Z1AvNk9sVEc2eTRxSXluZzNMdlN3STZJMGZ5S3JTQUZVRytBUEEKLYgc8ZI9Xxcs
9XEdCvTVFLQODUuJR0Gqx36oH/0BSrJ5/hymuS/KmuILEzGvmp65oncRrvvWmiVBH
10Kpe/NBLexA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r33965812.ct b/reveal/v5-000022/r33965812.ct
new file mode 100644
index 0000000..36feda8
--- /dev/null
+++ b/reveal/v5-000022/r33965812.ct
Binary files differ
diff --git a/reveal/v5-000022/r33965812.nostr.json b/reveal/v5-000022/r33965812.nostr.json
new file mode 100644
index 0000000..65448ad
--- /dev/null
+++ b/reveal/v5-000022/r33965812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTY1ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ2tYelhrNDFLUWswSk9DQmMwSTlKUDQxSlRCVTROWjJMVTdWc2xj\nZjc5MUFaRVJOYm9pSm1PbDVleTNBclAxSApGbEtRSVVIdDFuNWFMM0ZrRStlOFhN\nNkVYclVnY2EranBNdUp5a2FCWEZOSDc2MkZXM1haUGduQTF3WUVSMlk4ClBMSDFo\nVXo2WWJYTU8xTTRnYVR1MTg3T0ZyWVdxTVN1NHhtWjY5S2d5REUKLS0tIDU1Ymdx\nUnJhem9vMGRsb0cydjV1QXpmbEQzTHg4TTJ6ZXIwZENRVXprb00KjfrC1swG1XJh\nm1MOET33EA5WhKYtVRReebOdRxsXmNrIZXThqq2S410l8ZzBGS0kJgb3IDc+8srE\nFHREg2AdnA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33965812"],["reveal_at","2026-11-15T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","3104e91bc3ac496a6fdf8d3ae5c46c251668b60423a8af29b77897c41c89866a"],["ct","ad47d4d96c678d26725946169892338813a4323c40f818a18ccbf97b8e56ac61"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r33965812.tlock b/reveal/v5-000022/r33965812.tlock
new file mode 100644
index 0000000..e8ce240
--- /dev/null
+++ b/reveal/v5-000022/r33965812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTY1ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ2tYelhrNDFLUWswSk9DQmMwSTlKUDQxSlRCVTROWjJMVTdWc2xj
5Zjc5MUFaRVJOYm9pSm1PbDVleTNBclAxSApGbEtRSVVIdDFuNWFMM0ZrRStlOFhN
6NkVYclVnY2EranBNdUp5a2FCWEZOSDc2MkZXM1haUGduQTF3WUVSMlk4ClBMSDFo
7VXo2WWJYTU8xTTRnYVR1MTg3T0ZyWVdxTVN1NHhtWjY5S2d5REUKLS0tIDU1Ymdx
8UnJhem9vMGRsb0cydjV1QXpmbEQzTHg4TTJ6ZXIwZENRVXprb00KjfrC1swG1XJh
9m1MOET33EA5WhKYtVRReebOdRxsXmNrIZXThqq2S410l8ZzBGS0kJgb3IDc+8srE
10FHREg2AdnA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r34023412.ct b/reveal/v5-000022/r34023412.ct
new file mode 100644
index 0000000..af53e54
--- /dev/null
+++ b/reveal/v5-000022/r34023412.ct
Binary files differ
diff --git a/reveal/v5-000022/r34023412.nostr.json b/reveal/v5-000022/r34023412.nostr.json
new file mode 100644
index 0000000..4b21ce4
--- /dev/null
+++ b/reveal/v5-000022/r34023412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0MDIzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaXhXc201cWY3Q08yaHRyL3NjTVYxdGFiVUxpVFZJdE9UMlA2cm0r\nSHk4Qk02N1hlZTNlMWY1bW4xQzh6akd6cQpFQ21lOUtuMU0ycUZOUVNuM1prSkZS\nSWFiNFQ2b3Nub1J3dExDeCtzYk5NL1VvTkR5amtyK1YyTlJlRE0wN2tkCm1KTngx\nSFBQVWhnckhIYlpoNlA3NEoxZTdQcERJOG9VMy80RFJvUzlhVUEKLS0tIHAwUlhU\nTU10Nkw0MU1NZlNwbHk4SWlJM0syRlFrR0plSXZSSGUxSWpydGcK32zGrbXvyvpk\nCaxKEXhU01TMFVUOTylQfr3BrFPIC3i3d+7dDCn2mTmIAdKEOJeANZLf3jDS4kaP\ndcJD19VjtQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34023412"],["reveal_at","2026-11-17T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","b70f3fa226847f3d49c29d050e6c61c5b263dc581bfc93a51bec10ed42a9c959"],["ct","c53c7f8b45fea3e68ac40b02eb7f4c62b6401b54cbc73b5fe991ce1f75d4f8fe"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r34023412.tlock b/reveal/v5-000022/r34023412.tlock
new file mode 100644
index 0000000..c21e8d0
--- /dev/null
+++ b/reveal/v5-000022/r34023412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0MDIzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaXhXc201cWY3Q08yaHRyL3NjTVYxdGFiVUxpVFZJdE9UMlA2cm0r
5SHk4Qk02N1hlZTNlMWY1bW4xQzh6akd6cQpFQ21lOUtuMU0ycUZOUVNuM1prSkZS
6SWFiNFQ2b3Nub1J3dExDeCtzYk5NL1VvTkR5amtyK1YyTlJlRE0wN2tkCm1KTngx
7SFBQVWhnckhIYlpoNlA3NEoxZTdQcERJOG9VMy80RFJvUzlhVUEKLS0tIHAwUlhU
8TU10Nkw0MU1NZlNwbHk4SWlJM0syRlFrR0plSXZSSGUxSWpydGcK32zGrbXvyvpk
9CaxKEXhU01TMFVUOTylQfr3BrFPIC3i3d+7dDCn2mTmIAdKEOJeANZLf3jDS4kaP
10dcJD19VjtQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r34916212.ct b/reveal/v5-000022/r34916212.ct
new file mode 100644
index 0000000..44f9199
--- /dev/null
+++ b/reveal/v5-000022/r34916212.ct
Binary files differ
diff --git a/reveal/v5-000022/r34916212.nostr.json b/reveal/v5-000022/r34916212.nostr.json
new file mode 100644
index 0000000..257be44
--- /dev/null
+++ b/reveal/v5-000022/r34916212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTE2MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc1pHZ0Zvck1GcVgyUkNSUGk1b1dWU3FTSk1IU09NWXRkQjdwY2xn\nWFZhMnRIaDRaUWJSRjk0RHdpUmYzbEREZwpEMDJmck5JM29kd3V0UkYxYnQ3ek5J\naENMMWlBRmV0WnJ2ZUduL0lMaGtGQ3lpYWwrNFA5aXRtSFg1NjRwUmNDCnF3WXFU\nem1JaGlVOWMzY1l2TnJ5WDJTUHIwRnZkRGdPVGRyQzUwbWxlZEEKLS0tIGJFM2ll\nUEJjK1N0emtkZzhNT3hVMFRYMk04ZnZibGlOUUhzUi94cmgzUmMKeiEMCo/1CzQx\niEY5+iZT6r7waYBK71niP2H87+t4nE493YFOctqV5vnep46spHuW+Vc7e0WPsUiP\nUPJFlcoxYw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34916212"],["reveal_at","2026-12-18T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","201f139dddcc73defd180e322293ed77967dc1cfcb9efc65dde738edf5a06cee"],["ct","c8e5908135dd0a4571870028a6fe359810e0400f7ef13be59fb34d3e50b764c1"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r34916212.tlock b/reveal/v5-000022/r34916212.tlock
new file mode 100644
index 0000000..3a23986
--- /dev/null
+++ b/reveal/v5-000022/r34916212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTE2MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc1pHZ0Zvck1GcVgyUkNSUGk1b1dWU3FTSk1IU09NWXRkQjdwY2xn
5WFZhMnRIaDRaUWJSRjk0RHdpUmYzbEREZwpEMDJmck5JM29kd3V0UkYxYnQ3ek5J
6aENMMWlBRmV0WnJ2ZUduL0lMaGtGQ3lpYWwrNFA5aXRtSFg1NjRwUmNDCnF3WXFU
7em1JaGlVOWMzY1l2TnJ5WDJTUHIwRnZkRGdPVGRyQzUwbWxlZEEKLS0tIGJFM2ll
8UEJjK1N0emtkZzhNT3hVMFRYMk04ZnZibGlOUUhzUi94cmgzUmMKeiEMCo/1CzQx
9iEY5+iZT6r7waYBK71niP2H87+t4nE493YFOctqV5vnep46spHuW+Vc7e0WPsUiP
10UPJFlcoxYw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r34945012.ct b/reveal/v5-000022/r34945012.ct
new file mode 100644
index 0000000..9b833f2
--- /dev/null
+++ b/reveal/v5-000022/r34945012.ct
Binary files differ
diff --git a/reveal/v5-000022/r34945012.nostr.json b/reveal/v5-000022/r34945012.nostr.json
new file mode 100644
index 0000000..1f9e5b0
--- /dev/null
+++ b/reveal/v5-000022/r34945012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTQ1MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcHlyVmw0ek1HRGZwZVJQTENhRURRa2RhU1FRVGJZV0lqUURhUzZK\nNU1RSFlMRWxYbVJ6SVcrcFF1M2FJdEFJZgpBRHVudXRVVm1pSW5RTldkNE4rak1D\ncTZzNXJpc3VBb1puaVB0QmJ2TlVvSVBLYXgvRU52VXRRcjVNZTd5VmhzCk5OaGZh\nT04wL1k5dGVoSXpwdjFqVEI0SHNXejNHRUVDci9UUEZJTjdEQncKLS0tIElLUHZi\ndlJ5cEs1QlpZbWpzTi9PNzZ1Q3lUMGZWckFpQkFkVVpxKzJ1czgKmhRdq0z/vc8U\nv3fTzX2IenhN0A2rQf1dO1npwjk1lODHqPgCrJXLSOCaFUIzIjiL1U6OC6mgTqVL\n4Onq6CuwUA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34945012"],["reveal_at","2026-12-19T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","3ec8f6b29148d44a85b8c5fb3b09e67cb1d1389427b2f49b2e873b5ed4327748"],["ct","fed59fefda11b6ead4bd4f4aca0a79351b86e5872badedb91b21233a9a41fa10"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r34945012.tlock b/reveal/v5-000022/r34945012.tlock
new file mode 100644
index 0000000..51567be
--- /dev/null
+++ b/reveal/v5-000022/r34945012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTQ1MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcHlyVmw0ek1HRGZwZVJQTENhRURRa2RhU1FRVGJZV0lqUURhUzZK
5NU1RSFlMRWxYbVJ6SVcrcFF1M2FJdEFJZgpBRHVudXRVVm1pSW5RTldkNE4rak1D
6cTZzNXJpc3VBb1puaVB0QmJ2TlVvSVBLYXgvRU52VXRRcjVNZTd5VmhzCk5OaGZh
7T04wL1k5dGVoSXpwdjFqVEI0SHNXejNHRUVDci9UUEZJTjdEQncKLS0tIElLUHZi
8dlJ5cEs1QlpZbWpzTi9PNzZ1Q3lUMGZWckFpQkFkVVpxKzJ1czgKmhRdq0z/vc8U
9v3fTzX2IenhN0A2rQf1dO1npwjk1lODHqPgCrJXLSOCaFUIzIjiL1U6OC6mgTqVL
104Onq6CuwUA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r34973812.ct b/reveal/v5-000022/r34973812.ct
new file mode 100644
index 0000000..e4859d0
--- /dev/null
+++ b/reveal/v5-000022/r34973812.ct
Binary files differ
diff --git a/reveal/v5-000022/r34973812.nostr.json b/reveal/v5-000022/r34973812.nostr.json
new file mode 100644
index 0000000..b0d9053
--- /dev/null
+++ b/reveal/v5-000022/r34973812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTczODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc2xCNk9SaXc0QkJhaklkOWlCYjh3WmNhMnUrS2VsT1didW5FanNr\nWGhmbFVhNG9kSXpHSGtnanZ0QjZpYkI2QQpFcEY4ZXB5alZwaEhoU054MU9UWjRV\ndVhOaXlST28xZ2dYeTVNdTE4cmNveTdjY01FQ2paSFlMdEgrb1RnV0Q0CjRyaWlt\nNlIxdUdqc3BLdGhaM3ZaQXhCQXBFQ2pmZzVEK013YnFrR2loeUUKLS0tIG4rQm55\nMmRSYVZYSWlia1BLbS9OSmJWYVF1QW12WVpIcXVmM0JRYWl1Q00KLmDOwtpzfwd0\n+ff/IV0liaEIdaLNBy4AZfM9RkPbGbh6xFQtsRhndDdzfXaRrgeVT2Vt4sPmkP4P\nVLohXNnNMw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34973812"],["reveal_at","2026-12-20T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","785172bc39c2663874477b77a35567d21ac05c022509f198ef32962d4792d17f"],["ct","e01263b6a7f39e1051173a2049655f360e7bb828a94ca45e60fe6049baeb5622"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r34973812.tlock b/reveal/v5-000022/r34973812.tlock
new file mode 100644
index 0000000..2aa9cdc
--- /dev/null
+++ b/reveal/v5-000022/r34973812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTczODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc2xCNk9SaXc0QkJhaklkOWlCYjh3WmNhMnUrS2VsT1didW5FanNr
5WGhmbFVhNG9kSXpHSGtnanZ0QjZpYkI2QQpFcEY4ZXB5alZwaEhoU054MU9UWjRV
6dVhOaXlST28xZ2dYeTVNdTE4cmNveTdjY01FQ2paSFlMdEgrb1RnV0Q0CjRyaWlt
7NlIxdUdqc3BLdGhaM3ZaQXhCQXBFQ2pmZzVEK013YnFrR2loeUUKLS0tIG4rQm55
8MmRSYVZYSWlia1BLbS9OSmJWYVF1QW12WVpIcXVmM0JRYWl1Q00KLmDOwtpzfwd0
9+ff/IV0liaEIdaLNBy4AZfM9RkPbGbh6xFQtsRhndDdzfXaRrgeVT2Vt4sPmkP4P
10VLohXNnNMw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35031412.ct b/reveal/v5-000022/r35031412.ct
new file mode 100644
index 0000000..49a3b6c
--- /dev/null
+++ b/reveal/v5-000022/r35031412.ct
Binary files differ
diff --git a/reveal/v5-000022/r35031412.nostr.json b/reveal/v5-000022/r35031412.nostr.json
new file mode 100644
index 0000000..3a1c074
--- /dev/null
+++ b/reveal/v5-000022/r35031412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDMxNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKdDFzTFJTWGlUcm56R3BvTUtPUzh5M1ljVkFpZmp0M0N6c2dmaE1M\nRWJkMjU3OEg4YU5VOWpLQzIzdnEzY3NGSgpDWGUzaERBWHR3VUljU0lPQ3A0WFJC\nOElBQnpraXd3YytqNFJGdDZJenl4T3ErVk5nKzRveVdFZ3ZPUFhWb0N3CnFqRkYy\nZjUwVWlWTmNXdGx2aDYxOXdmcjdkbjE1YTZBR1BZaDVoWER4N0EKLS0tIG8zeVlV\nV29VNFlEMEdyUTNGNUhvZlpOWFRqSjFDK0Z6WmJNb29hRWh4eFUKxvTvQPePihc2\nmbcgDqEjQZKMuH1IUpsK1GcjzkK0ENaKPGC8mtduts4OQCYqUCcoYcJSl3joFa+q\nSZ+fseYwfg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35031412"],["reveal_at","2026-12-22T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","14041aba767702ca3cd5aa0f4010b0cb0018e5dcfb2cd2962422023b55e938bd"],["ct","d7efc7d878460407cc9d4f059db6a2d7f188ad5dcea7e124c665a4a5c0857bba"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35031412.tlock b/reveal/v5-000022/r35031412.tlock
new file mode 100644
index 0000000..9b25c5d
--- /dev/null
+++ b/reveal/v5-000022/r35031412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDMxNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKdDFzTFJTWGlUcm56R3BvTUtPUzh5M1ljVkFpZmp0M0N6c2dmaE1M
5RWJkMjU3OEg4YU5VOWpLQzIzdnEzY3NGSgpDWGUzaERBWHR3VUljU0lPQ3A0WFJC
6OElBQnpraXd3YytqNFJGdDZJenl4T3ErVk5nKzRveVdFZ3ZPUFhWb0N3CnFqRkYy
7ZjUwVWlWTmNXdGx2aDYxOXdmcjdkbjE1YTZBR1BZaDVoWER4N0EKLS0tIG8zeVlV
8V29VNFlEMEdyUTNGNUhvZlpOWFRqSjFDK0Z6WmJNb29hRWh4eFUKxvTvQPePihc2
9mbcgDqEjQZKMuH1IUpsK1GcjzkK0ENaKPGC8mtduts4OQCYqUCcoYcJSl3joFa+q
10SZ+fseYwfg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35060212.ct b/reveal/v5-000022/r35060212.ct
new file mode 100644
index 0000000..17d154e
--- /dev/null
+++ b/reveal/v5-000022/r35060212.ct
Binary files differ
diff --git a/reveal/v5-000022/r35060212.nostr.json b/reveal/v5-000022/r35060212.nostr.json
new file mode 100644
index 0000000..82f3805
--- /dev/null
+++ b/reveal/v5-000022/r35060212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDYwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcEF4K0hEQTNiczE0QTBBbzFDeWdDUEFDcmN5YmZ1REp5TmFkRmJt\nNjh1TW8vTkRPRlU2Q2cwd2FvcE9sclJjQQpCek5tYmJNQjhlR2toU3VESGNXZ1RS\ndkwrdzY2MzJhV0pSb28rRXEwQXFKWWxxUitKZGcrcE1ISDFKZmNubmErCnUvVjNa\nRkE0OUFkWVpUT1hTck5PZDNPRWtWQnFRdG00am1EemhMdS9CUlUKLS0tIFRWRXls\nMmNDYmt6U0pqVnAxY2QrbnRmc0t3cnlqMzB3ZDJqRHBqWStRZFEKGUy4P+O3WB/2\nN8qy403T6jKC7MIVUIVu19CRdukzOhnaB5epPHvBM7gQM3pIFnxcHcw/yNvRfxEC\n/iRO2DCVmA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35060212"],["reveal_at","2026-12-23T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","4645bacebf2433d4275a0fd87bd2b6928c5c6e0e87d50953a23509c0250f5b66"],["ct","e10d2138a4c77f265822f0690df4c2933e0126a1abe445138fa56270e0f21d8c"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35060212.tlock b/reveal/v5-000022/r35060212.tlock
new file mode 100644
index 0000000..a53dfee
--- /dev/null
+++ b/reveal/v5-000022/r35060212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDYwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcEF4K0hEQTNiczE0QTBBbzFDeWdDUEFDcmN5YmZ1REp5TmFkRmJt
5Njh1TW8vTkRPRlU2Q2cwd2FvcE9sclJjQQpCek5tYmJNQjhlR2toU3VESGNXZ1RS
6dkwrdzY2MzJhV0pSb28rRXEwQXFKWWxxUitKZGcrcE1ISDFKZmNubmErCnUvVjNa
7RkE0OUFkWVpUT1hTck5PZDNPRWtWQnFRdG00am1EemhMdS9CUlUKLS0tIFRWRXls
8MmNDYmt6U0pqVnAxY2QrbnRmc0t3cnlqMzB3ZDJqRHBqWStRZFEKGUy4P+O3WB/2
9N8qy403T6jKC7MIVUIVu19CRdukzOhnaB5epPHvBM7gQM3pIFnxcHcw/yNvRfxEC
10/iRO2DCVmA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35117812.ct b/reveal/v5-000022/r35117812.ct
new file mode 100644
index 0000000..30ca07b
--- /dev/null
+++ b/reveal/v5-000022/r35117812.ct
Binary files differ
diff --git a/reveal/v5-000022/r35117812.nostr.json b/reveal/v5-000022/r35117812.nostr.json
new file mode 100644
index 0000000..c93ff31
--- /dev/null
+++ b/reveal/v5-000022/r35117812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTE3ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaUtyWFdGR3JqKytVSWk2dFZKSllGeDZhT0xUZDRKTEZDSHRsa2JJ\nYjhzRk4rdmg5Y2grSGpaRC9RbXNKNENmWApERVM5L3pONDlNa1k0NCttMXZyVkZR\nSW4vTVVXd3d1ODBsYmc1WXE3M0FuWEZ2aWcyOHhnT0xhZHVSSzNTVEl6CkFhbkQr\nTkVhQ2o2ZGhNRmFRbzdySkNmMUpHQlgzeVo3cTRwd0lCTFBvcXMKLS0tIDdRZjY3\najZ5WEx2VEpoUDNqVG1PWmVaYk8xVmVaSVlZU1lOMjZQVVJzN0EKSg7U3yHkPeCg\nCzMgCgwRoCI58VO+TqvowC+z463HqCeCZeUS6/DUSYdj0DlxR1OIzDstpZdwMmWJ\n1AZ/Tb4iJw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35117812"],["reveal_at","2026-12-25T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","2637e8614dc91111500fba6ddcb2e1bdb5bc964b4df643247f5b329c389b4262"],["ct","7f75b9a57dbfe62498c10ab9049cfc739bbe573c08f1c7f3356390362e67cd58"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35117812.tlock b/reveal/v5-000022/r35117812.tlock
new file mode 100644
index 0000000..7ebc5e8
--- /dev/null
+++ b/reveal/v5-000022/r35117812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTE3ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaUtyWFdGR3JqKytVSWk2dFZKSllGeDZhT0xUZDRKTEZDSHRsa2JJ
5YjhzRk4rdmg5Y2grSGpaRC9RbXNKNENmWApERVM5L3pONDlNa1k0NCttMXZyVkZR
6SW4vTVVXd3d1ODBsYmc1WXE3M0FuWEZ2aWcyOHhnT0xhZHVSSzNTVEl6CkFhbkQr
7TkVhQ2o2ZGhNRmFRbzdySkNmMUpHQlgzeVo3cTRwd0lCTFBvcXMKLS0tIDdRZjY3
8ajZ5WEx2VEpoUDNqVG1PWmVaYk8xVmVaSVlZU1lOMjZQVVJzN0EKSg7U3yHkPeCg
9CzMgCgwRoCI58VO+TqvowC+z463HqCeCZeUS6/DUSYdj0DlxR1OIzDstpZdwMmWJ
101AZ/Tb4iJw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35175412.ct b/reveal/v5-000022/r35175412.ct
new file mode 100644
index 0000000..aa076f7
--- /dev/null
+++ b/reveal/v5-000022/r35175412.ct
Binary files differ
diff --git a/reveal/v5-000022/r35175412.nostr.json b/reveal/v5-000022/r35175412.nostr.json
new file mode 100644
index 0000000..4b842d9
--- /dev/null
+++ b/reveal/v5-000022/r35175412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTc1NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKanpMVSs4OWFLWmI2UERPWDVTOEl6eXJJVHJUa05teVNqeGNKNlc2\nNUFmaGZNMjROTEUrV2k4ZHdHZ2xBenVOUgpCenh1bFZGYUViTC9sRUtDTDZwWnh0\nMWZWNG1PSEFxVlNHU3lvZWI5aERBM3g1Wkt4U20xd2tEejZrNFZITloyCjhXcFJ6\nRGpTL2tYVVIrdnJQOElxUFpZZGtMVmNLb1Bpam5QaTFlL3BOdTQKLS0tIHFTSFl4\nTG9UUFJkcTN2dG11Q2tuekRPYmdpNWtNRjRGNUN1UnJZcTh5dk0KBBfZVHI+MQWM\n8ZjtO6nfZZxSM8S4uBs3tO0+SBcgerGO3QeQCoPd5h1LTnvt1VD4mwthcJt2M8hi\ntzHrB/eq5w==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35175412"],["reveal_at","2026-12-27T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","86b639d9a4bc40d3a03394365b8eab4d0f79d0e0b6267d6d4020a4d7a6a2d95e"],["ct","919e06cc71a834cd161421f03a1aab068f5e5429d666c8d941f1305da0111aea"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35175412.tlock b/reveal/v5-000022/r35175412.tlock
new file mode 100644
index 0000000..670e793
--- /dev/null
+++ b/reveal/v5-000022/r35175412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTc1NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKanpMVSs4OWFLWmI2UERPWDVTOEl6eXJJVHJUa05teVNqeGNKNlc2
5NUFmaGZNMjROTEUrV2k4ZHdHZ2xBenVOUgpCenh1bFZGYUViTC9sRUtDTDZwWnh0
6MWZWNG1PSEFxVlNHU3lvZWI5aERBM3g1Wkt4U20xd2tEejZrNFZITloyCjhXcFJ6
7RGpTL2tYVVIrdnJQOElxUFpZZGtMVmNLb1Bpam5QaTFlL3BOdTQKLS0tIHFTSFl4
8TG9UUFJkcTN2dG11Q2tuekRPYmdpNWtNRjRGNUN1UnJZcTh5dk0KBBfZVHI+MQWM
98ZjtO6nfZZxSM8S4uBs3tO0+SBcgerGO3QeQCoPd5h1LTnvt1VD4mwthcJt2M8hi
10tzHrB/eq5w==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35751412.ct b/reveal/v5-000022/r35751412.ct
new file mode 100644
index 0000000..a8df51f
--- /dev/null
+++ b/reveal/v5-000022/r35751412.ct
Binary files differ
diff --git a/reveal/v5-000022/r35751412.nostr.json b/reveal/v5-000022/r35751412.nostr.json
new file mode 100644
index 0000000..edadb2e
--- /dev/null
+++ b/reveal/v5-000022/r35751412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzUxNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcDc0T3o0UnYzbEl0SFZlTXFiSnBOU3VCZU1GQVZKQktxUENJaXNn\neUVsakxaSVdvOG5pRWZWT3lDWFRnZDZmTApEcThDODdyUUo3dHlOTUs1enYzRXBH\nQyt3UmZnMG1rb1oxVm8vbysvRUoxT2wzYXJkV1FjVU9Dd3pKMUFvd3RuCmgyeXZO\nb1dtMUJ6UlFOcXhkTW5Rc2ZEMVREVGFtbkNCMkMwOVVTN0l2NFUKLS0tIFM0ZUVu\ncHduN0NjcVRwZkRDdVFVR3ZyVHlFejhXQzY0MG9yZGlvcTMrblUKVBpH+LsKQnlo\nbUV8ArzsSmOiY1R1EGG3YcAavHMRP/3/oV5/04ZIoufl9dOpzpy2Mtrp3gxxf7LE\nqZXsO3tWnA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35751412"],["reveal_at","2027-01-16T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","075fae2de350222c092c6b8a9e627bff32e830d9dab7199b805f2b9773434717"],["ct","acea6bee9711ba6a7b7c5a07057887c26791a6210a467a6ffb29aa256aab6d56"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35751412.tlock b/reveal/v5-000022/r35751412.tlock
new file mode 100644
index 0000000..d531e6f
--- /dev/null
+++ b/reveal/v5-000022/r35751412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzUxNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcDc0T3o0UnYzbEl0SFZlTXFiSnBOU3VCZU1GQVZKQktxUENJaXNn
5eUVsakxaSVdvOG5pRWZWT3lDWFRnZDZmTApEcThDODdyUUo3dHlOTUs1enYzRXBH
6Qyt3UmZnMG1rb1oxVm8vbysvRUoxT2wzYXJkV1FjVU9Dd3pKMUFvd3RuCmgyeXZO
7b1dtMUJ6UlFOcXhkTW5Rc2ZEMVREVGFtbkNCMkMwOVVTN0l2NFUKLS0tIFM0ZUVu
8cHduN0NjcVRwZkRDdVFVR3ZyVHlFejhXQzY0MG9yZGlvcTMrblUKVBpH+LsKQnlo
9bUV8ArzsSmOiY1R1EGG3YcAavHMRP/3/oV5/04ZIoufl9dOpzpy2Mtrp3gxxf7LE
10qZXsO3tWnA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r35924212.ct b/reveal/v5-000022/r35924212.ct
new file mode 100644
index 0000000..de22dc3
--- /dev/null
+++ b/reveal/v5-000022/r35924212.ct
Binary files differ
diff --git a/reveal/v5-000022/r35924212.nostr.json b/reveal/v5-000022/r35924212.nostr.json
new file mode 100644
index 0000000..5e3e0df
--- /dev/null
+++ b/reveal/v5-000022/r35924212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1OTI0MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ1ptZzVMUWtvVmpGZ0ZWR0QxcjFGaVJrNEVFSFpTUTdYNG91R0xz\naW52RW9kY1RqRS81Y3pSV2NlZmJyTHFDbQpFczJQTTBCRHRXSENJd3VjOUd6TnBG\na24xTGluRzl0ZXFaelRlUnQvbmpqUzBGRVJjbXcrb2UzNkg3OWgxMnZQCnRvRmFp\naWYwNHpldU9mK2JTUUlwUVdGQ2RLcnZwTDM0d042OVY5c3p5T0UKLS0tIG9ZYmdP\nZHpRRGZ0Nyt6bTFRdW9QcDNmSjB3anlDNndXMnFMTW5GYmFWNXMKAOWccYEV2Ilo\n/oPx4q6kZqi4b4efp7fP74kiCnn76WrfreVUeAf7hYJCjoAiau5I0YJaego0yGlq\nPDFpPcF7gA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35924212"],["reveal_at","2027-01-22T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","7830ba01ea069f5255b40bfa297218000b3a4cd2f0c5ad039e8fd4d82727b0b4"],["ct","94d3ac0ef459f8334bfe9631a2cd32169fd5fc38bf784a8500545d9973f6637a"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r35924212.tlock b/reveal/v5-000022/r35924212.tlock
new file mode 100644
index 0000000..ca906a6
--- /dev/null
+++ b/reveal/v5-000022/r35924212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1OTI0MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ1ptZzVMUWtvVmpGZ0ZWR0QxcjFGaVJrNEVFSFpTUTdYNG91R0xz
5aW52RW9kY1RqRS81Y3pSV2NlZmJyTHFDbQpFczJQTTBCRHRXSENJd3VjOUd6TnBG
6a24xTGluRzl0ZXFaelRlUnQvbmpqUzBGRVJjbXcrb2UzNkg3OWgxMnZQCnRvRmFp
7aWYwNHpldU9mK2JTUUlwUVdGQ2RLcnZwTDM0d042OVY5c3p5T0UKLS0tIG9ZYmdP
8ZHpRRGZ0Nyt6bTFRdW9QcDNmSjB3anlDNndXMnFMTW5GYmFWNXMKAOWccYEV2Ilo
9/oPx4q6kZqi4b4efp7fP74kiCnn76WrfreVUeAf7hYJCjoAiau5I0YJaego0yGlq
10PDFpPcF7gA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r36097012.ct b/reveal/v5-000022/r36097012.ct
new file mode 100644
index 0000000..03b781f
--- /dev/null
+++ b/reveal/v5-000022/r36097012.ct
Binary files differ
diff --git a/reveal/v5-000022/r36097012.nostr.json b/reveal/v5-000022/r36097012.nostr.json
new file mode 100644
index 0000000..d76d6a4
--- /dev/null
+++ b/reveal/v5-000022/r36097012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDk3MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaWxlV0J4bjB2ZG1lZkZLK2RkdU91bm9SenlXcVlDakF0aWtyY1Ny\nckZ4NHNyWU83WHJXMjNFb0k0TkdMUmRSLwpEanQ2U2pQRmQ1VnpUeERtanFxSlJH\nMUFMRUJBM01HaFhRY29sdmtMV1pndHNMNUVBY2NrWVhheGRVYlRjK2pzCk9XSmVI\nWlZ2WGJBdXBHT1NyUGFrQlJjQmdmRGJGbVhheXRPaE0wK0lObzQKLS0tIGwyZVUx\nd1BaYUYreU5sZ0tRZW5yN0xqeVNSWGxCTEw3Z1BFMHhHRmxycEkK4K/ArhHGMC3B\ndUIXcOOuikD0weLxIotJcqrmV+RiuJoSaqGbYi8dhr/jM/PgI1AQCR7i3B1kaAuq\nJ5VFJDsHdA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36097012"],["reveal_at","2027-01-28T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","76718be3683c83a73be7b987da499a17d727f85e82abd4baa90bb4758761c2e4"],["ct","15a9484969cbaff79c4d25f560922a7a094aeff2f61904e62c79da756fb37f7c"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r36097012.tlock b/reveal/v5-000022/r36097012.tlock
new file mode 100644
index 0000000..7bf33bd
--- /dev/null
+++ b/reveal/v5-000022/r36097012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDk3MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaWxlV0J4bjB2ZG1lZkZLK2RkdU91bm9SenlXcVlDakF0aWtyY1Ny
5ckZ4NHNyWU83WHJXMjNFb0k0TkdMUmRSLwpEanQ2U2pQRmQ1VnpUeERtanFxSlJH
6MUFMRUJBM01HaFhRY29sdmtMV1pndHNMNUVBY2NrWVhheGRVYlRjK2pzCk9XSmVI
7WlZ2WGJBdXBHT1NyUGFrQlJjQmdmRGJGbVhheXRPaE0wK0lObzQKLS0tIGwyZVUx
8d1BaYUYreU5sZ0tRZW5yN0xqeVNSWGxCTEw3Z1BFMHhHRmxycEkK4K/ArhHGMC3B
9dUIXcOOuikD0weLxIotJcqrmV+RiuJoSaqGbYi8dhr/jM/PgI1AQCR7i3B1kaAuq
10J5VFJDsHdA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r36183412.ct b/reveal/v5-000022/r36183412.ct
new file mode 100644
index 0000000..43e948b
--- /dev/null
+++ b/reveal/v5-000022/r36183412.ct
Binary files differ
diff --git a/reveal/v5-000022/r36183412.nostr.json b/reveal/v5-000022/r36183412.nostr.json
new file mode 100644
index 0000000..5fcc1f2
--- /dev/null
+++ b/reveal/v5-000022/r36183412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MTgzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb25yM1RGM0JJTnhSTWJoUUEzUjVocFZJYm9zeUxteVZyelhpZ2pj\nRGhjSjJ0Y0F1aldRb2U0bG1NSlhtdSs2UQpCOGhRT1VXRXZybEEwcXhyUDFLT1Jt\nZWJRS2JLUklIZmlYS3Y4ZjZuaXpMcHhKYlgrcEhub0IxVTNBKzlyYUZKClpZTzVX\nTG9iL283N1M1b05QbHN4YjdnbC80SXk3VWYvZ3RQQkh4SW9LNjAKLS0tIHhITEZJ\nNWVVTFNtSVF6NW5EbWdjcFRXVis4UHBSek5TZktTbGlIV3RhMHcKlyUm3O3D89pR\nFuYsD08RvxxEaX5xt+G9hZ4GwL9aeDzRlAlAS64A2jqIkVRvv6KpchbqkfPDEZCK\ngNJ6PyE2EA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36183412"],["reveal_at","2027-01-31T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","6eb146e0cec2b53e3a2ecf6baf04a2448a7e770cbb23a0841aa67c107e8144f6"],["ct","e6482ae2347c17b161a87c3f7cfb0ecfdcb96b42ebdd76b73b693672ca723086"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r36183412.tlock b/reveal/v5-000022/r36183412.tlock
new file mode 100644
index 0000000..e734017
--- /dev/null
+++ b/reveal/v5-000022/r36183412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MTgzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb25yM1RGM0JJTnhSTWJoUUEzUjVocFZJYm9zeUxteVZyelhpZ2pj
5RGhjSjJ0Y0F1aldRb2U0bG1NSlhtdSs2UQpCOGhRT1VXRXZybEEwcXhyUDFLT1Jt
6ZWJRS2JLUklIZmlYS3Y4ZjZuaXpMcHhKYlgrcEhub0IxVTNBKzlyYUZKClpZTzVX
7TG9iL283N1M1b05QbHN4YjdnbC80SXk3VWYvZ3RQQkh4SW9LNjAKLS0tIHhITEZJ
8NWVVTFNtSVF6NW5EbWdjcFRXVis4UHBSek5TZktTbGlIV3RhMHcKlyUm3O3D89pR
9FuYsD08RvxxEaX5xt+G9hZ4GwL9aeDzRlAlAS64A2jqIkVRvv6KpchbqkfPDEZCK
10gNJ6PyE2EA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r36903412.ct b/reveal/v5-000022/r36903412.ct
new file mode 100644
index 0000000..ea34c72
--- /dev/null
+++ b/reveal/v5-000022/r36903412.ct
Binary files differ
diff --git a/reveal/v5-000022/r36903412.nostr.json b/reveal/v5-000022/r36903412.nostr.json
new file mode 100644
index 0000000..4aead63
--- /dev/null
+++ b/reveal/v5-000022/r36903412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTAzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcFFDczBiQmh0OERnNUpJY3J0dzh4Zk9mTzdPbUVtRi9uNE5YUmlP\na3hrOG01WDFGNTRNejh4L3lPb3JpR0ZkNApDdzQzbmFnVDVsbytBNVY1VEpWbWk4\nRFE3dXJvQUJDS1lncnFHVGtIMGxIbll4Y2ZtNTdFYXdER1FFKzhnMjgrCmVTWjZE\nQkhxSVo2Wkx5TFVTN3gxVzE4a2tLalRLMVdLUUxEU3FPRUVFOGsKLS0tIG1nZTdH\nMEZSQ2pUSXJpTDdxdjljMThoaGpzb1M1LzlEbHZVZy9RSjFrVk0Krco1at9OxUZn\n+2bqUn05CEHevcCuVjXoSHGNZ6bbWHMO8GF0P7q3E++yn3NEJlUt9EnJ+vTqIF/V\n2j9lrC+kIw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36903412"],["reveal_at","2027-02-25T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","96016342083978eddfdf8ae2f8c2dea7b0955e14ddb12f249736164b8580e5bd"],["ct","a9260a12f4a23515bdee45265132c54bb4c1c1a183d17de7f92f938848869675"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r36903412.tlock b/reveal/v5-000022/r36903412.tlock
new file mode 100644
index 0000000..6997468
--- /dev/null
+++ b/reveal/v5-000022/r36903412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTAzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcFFDczBiQmh0OERnNUpJY3J0dzh4Zk9mTzdPbUVtRi9uNE5YUmlP
5a3hrOG01WDFGNTRNejh4L3lPb3JpR0ZkNApDdzQzbmFnVDVsbytBNVY1VEpWbWk4
6RFE3dXJvQUJDS1lncnFHVGtIMGxIbll4Y2ZtNTdFYXdER1FFKzhnMjgrCmVTWjZE
7QkhxSVo2Wkx5TFVTN3gxVzE4a2tLalRLMVdLUUxEU3FPRUVFOGsKLS0tIG1nZTdH
8MEZSQ2pUSXJpTDdxdjljMThoaGpzb1M1LzlEbHZVZy9RSjFrVk0Krco1at9OxUZn
9+2bqUn05CEHevcCuVjXoSHGNZ6bbWHMO8GF0P7q3E++yn3NEJlUt9EnJ+vTqIF/V
102j9lrC+kIw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r37018612.ct b/reveal/v5-000022/r37018612.ct
new file mode 100644
index 0000000..e915e3a
--- /dev/null
+++ b/reveal/v5-000022/r37018612.ct
Binary files differ
diff --git a/reveal/v5-000022/r37018612.nostr.json b/reveal/v5-000022/r37018612.nostr.json
new file mode 100644
index 0000000..9e9b96f
--- /dev/null
+++ b/reveal/v5-000022/r37018612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDE4NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcnNhTW9uR2gxTGhOSjl0SlE5UWl4eWxSY3g0QWo4bUNUdnBWTUZz\naWE0ZlBINUpsUWxoSWdZMUdQRE1raGMxbApCWjlKQmc4M2hnY3gyNTd6NGR1ZTVj\ncm9wb3NUc0RFNXZoZEFYTmlTTWRTNjU5WmhLZDdhZ2dBdzE4WU1UTzByCk1wRjRL\nOHhBQzZLbUhmUndoM0ZETFlJQTRMTFc1dlhuT2FqUjc5Y3VNMzQKLS0tIGt4eS93\naDY5Z0JwTjBXNDJkYi95bE9ab0JwS20vL1VJUi9uUUlIWGFQSEEKOzCdEZodax6S\nPpPWskks7BbKk/J954iJLq0h3EIGZ4eFQs1jB/Lv8/NErxC7NECPBna6bv8oJZda\nT/QC8T6wXA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37018612"],["reveal_at","2027-03-01T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","b93c7ce5ca9475075314d968836dfceac33298e0bcf8fd5a4c2194f8f8b7b7b1"],["ct","a53f73d62009db36d2f3c4a5a4995ab6a2de8e6469a4a49ea525276e8c145c68"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r37018612.tlock b/reveal/v5-000022/r37018612.tlock
new file mode 100644
index 0000000..7566acc
--- /dev/null
+++ b/reveal/v5-000022/r37018612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDE4NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcnNhTW9uR2gxTGhOSjl0SlE5UWl4eWxSY3g0QWo4bUNUdnBWTUZz
5aWE0ZlBINUpsUWxoSWdZMUdQRE1raGMxbApCWjlKQmc4M2hnY3gyNTd6NGR1ZTVj
6cm9wb3NUc0RFNXZoZEFYTmlTTWRTNjU5WmhLZDdhZ2dBdzE4WU1UTzByCk1wRjRL
7OHhBQzZLbUhmUndoM0ZETFlJQTRMTFc1dlhuT2FqUjc5Y3VNMzQKLS0tIGt4eS93
8aDY5Z0JwTjBXNDJkYi95bE9ab0JwS20vL1VJUi9uUUlIWGFQSEEKOzCdEZodax6S
9PpPWskks7BbKk/J954iJLq0h3EIGZ4eFQs1jB/Lv8/NErxC7NECPBna6bv8oJZda
10T/QC8T6wXA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r37076212.ct b/reveal/v5-000022/r37076212.ct
new file mode 100644
index 0000000..ee1b57e
--- /dev/null
+++ b/reveal/v5-000022/r37076212.ct
Binary files differ
diff --git a/reveal/v5-000022/r37076212.nostr.json b/reveal/v5-000022/r37076212.nostr.json
new file mode 100644
index 0000000..99ffcc5
--- /dev/null
+++ b/reveal/v5-000022/r37076212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDc2MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc2FlSUgyYXJrNFkwUGw0NXJUTVpLVXRWTEVZUmQyU1pWZEE5LzRF\nTGpRb3duRVhycDBPVHQwaTRsZzlqeHZwZApGUE1lTTlwNDdiRzBUZHZpZ08wdlZI\nTG84dHd5Y0pGSDdQOUVhU3c0UFl1WE5hZmJhdWFrdThiV3lJN0ZLazY5CjZOeTc3\nMGN1YmpqOHBXV2dSMldDQ0sxN293MEtQR2swS3BDdStYS0VtNU0KLS0tIEd6YmM5\ndlNESWVEZDdBQ2ZlRjJZcHR2ZjN2cW5HUisvUmw1STByYStEVDQKmFIeOLkcpFec\nk/Oc5PfFLGJRb9q0tULWs31o9ELdbpTnpXu2EykAaOvEkvfG3Uii0CvaGKybcdUz\nL+vsHNBZ5A==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37076212"],["reveal_at","2027-03-03T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","df98a339f10599a875208148c039fe4eaa3a843d91f8795538f493dc9c475389"],["ct","bb254ae7a1a322de0c3888446d08c930efcce58d73dcb25d91acb3413757c230"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r37076212.tlock b/reveal/v5-000022/r37076212.tlock
new file mode 100644
index 0000000..250ca31
--- /dev/null
+++ b/reveal/v5-000022/r37076212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDc2MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc2FlSUgyYXJrNFkwUGw0NXJUTVpLVXRWTEVZUmQyU1pWZEE5LzRF
5TGpRb3duRVhycDBPVHQwaTRsZzlqeHZwZApGUE1lTTlwNDdiRzBUZHZpZ08wdlZI
6TG84dHd5Y0pGSDdQOUVhU3c0UFl1WE5hZmJhdWFrdThiV3lJN0ZLazY5CjZOeTc3
7MGN1YmpqOHBXV2dSMldDQ0sxN293MEtQR2swS3BDdStYS0VtNU0KLS0tIEd6YmM5
8dlNESWVEZDdBQ2ZlRjJZcHR2ZjN2cW5HUisvUmw1STByYStEVDQKmFIeOLkcpFec
9k/Oc5PfFLGJRb9q0tULWs31o9ELdbpTnpXu2EykAaOvEkvfG3Uii0CvaGKybcdUz
10L+vsHNBZ5A==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r37249012.ct b/reveal/v5-000022/r37249012.ct
new file mode 100644
index 0000000..c349792
--- /dev/null
+++ b/reveal/v5-000022/r37249012.ct
Binary files differ
diff --git a/reveal/v5-000022/r37249012.nostr.json b/reveal/v5-000022/r37249012.nostr.json
new file mode 100644
index 0000000..05a2ec5
--- /dev/null
+++ b/reveal/v5-000022/r37249012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjQ5MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb2tZbTN0NTRKMFJxTytyaHhHc1NGc1lTT051eWVOUVdmc2thRlBn\nakM1MmtWV3FCYWI2Wlg3TWhwNXBDdmo1NwpBOXJ3T2tMY0JubTlPRzZXdThYRmJT\neTdGandaampMWC91akgxazRwbEt0cFpTR2x1TVIvK3pBcm9ZMGNyWCs4ClEvUTlP\nTm1YejAxN2hpaEpvc1krYldEQWQ4cVRjRllDNDRnZmQ5dm1ZQUEKLS0tIDN2emh1\nVjJFKzhuUmF4WEhzU2JmUGZNVVk0Rk5LRlI4bTMxcWJMdGxKV2cKssHqpq+cf7M/\nBmFxx/ONS13GDxfwTAz++sWqAIVv8ZZBEFE1+Raat5c5DRGnzPHRI9pcYyDldwDP\n6tCSftcJlg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37249012"],["reveal_at","2027-03-09T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","17f62ac2b3760838ca9583ffac2caf77a3bb636fc608e92085e35b562b7d8685"],["ct","58fa10aea76c7889027b4e6466e680dca810e38adfdf6551ce145807d7fbf2a9"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r37249012.tlock b/reveal/v5-000022/r37249012.tlock
new file mode 100644
index 0000000..09765e3
--- /dev/null
+++ b/reveal/v5-000022/r37249012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjQ5MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb2tZbTN0NTRKMFJxTytyaHhHc1NGc1lTT051eWVOUVdmc2thRlBn
5akM1MmtWV3FCYWI2Wlg3TWhwNXBDdmo1NwpBOXJ3T2tMY0JubTlPRzZXdThYRmJT
6eTdGandaampMWC91akgxazRwbEt0cFpTR2x1TVIvK3pBcm9ZMGNyWCs4ClEvUTlP
7Tm1YejAxN2hpaEpvc1krYldEQWQ4cVRjRllDNDRnZmQ5dm1ZQUEKLS0tIDN2emh1
8VjJFKzhuUmF4WEhzU2JmUGZNVVk0Rk5LRlI4bTMxcWJMdGxKV2cKssHqpq+cf7M/
9BmFxx/ONS13GDxfwTAz++sWqAIVv8ZZBEFE1+Raat5c5DRGnzPHRI9pcYyDldwDP
106tCSftcJlg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/r38170612.ct b/reveal/v5-000022/r38170612.ct
new file mode 100644
index 0000000..0830233
--- /dev/null
+++ b/reveal/v5-000022/r38170612.ct
Binary files differ
diff --git a/reveal/v5-000022/r38170612.nostr.json b/reveal/v5-000022/r38170612.nostr.json
new file mode 100644
index 0000000..5548918
--- /dev/null
+++ b/reveal/v5-000022/r38170612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM4MTcwNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKa3g0L05JVXl0RHJ0SE1kUnlZVEpmUnYrNEZOZ1RBek05WnpCQjk4\nZkVzb2k5dkFtRkFPWDc0Q1ZLT1FabW00ZgpGMEtMeENBdjErVHc0V2FWUmd6ZFVq\ncHdySkdXL28vSFhaWHJ6WDhLb3hYdWxBRTVnOXdxQ2xHK3MzM3NnS0U3Ck92L2pC\nUUtFNU9HeldvVVdrSXZwdWxTRUREN2ZwVTVrOUY4Tk9OQjVEa3cKLS0tIGdUamVC\nMGVsMDJCWGhGMC9KNFA5TWhDaC9TOUZ5bHZKTkRvOWNKNWE4SjAKln7i+H79gake\nTNZqYvHtUsDob7dJx9c8dZJeXaRhdjHTMFRz8zDBm714mIwQvR1SscYya4sUYA8I\nS46dpWXiuQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","38170612"],["reveal_at","2027-04-10T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","f2f28f235208e1cc2fcd3204ccab7e993c221e5228d2a67d94e8b3129b8531bf"],["ct","95f8d2a20cc7206dbcecc9238a7028a343db3b5e504e4c6550a6afecf607bfa6"],["seal","90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4"]]}
diff --git a/reveal/v5-000022/r38170612.tlock b/reveal/v5-000022/r38170612.tlock
new file mode 100644
index 0000000..b6f71e0
--- /dev/null
+++ b/reveal/v5-000022/r38170612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM4MTcwNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKa3g0L05JVXl0RHJ0SE1kUnlZVEpmUnYrNEZOZ1RBek05WnpCQjk4
5ZkVzb2k5dkFtRkFPWDc0Q1ZLT1FabW00ZgpGMEtMeENBdjErVHc0V2FWUmd6ZFVq
6cHdySkdXL28vSFhaWHJ6WDhLb3hYdWxBRTVnOXdxQ2xHK3MzM3NnS0U3Ck92L2pC
7UUtFNU9HeldvVVdrSXZwdWxTRUREN2ZwVTVrOUY4Tk9OQjVEa3cKLS0tIGdUamVC
8MGVsMDJCWGhGMC9KNFA5TWhDaC9TOUZ5bHZKTkRvOWNKNWE4SjAKln7i+H79gake
9TNZqYvHtUsDob7dJx9c8dZJeXaRhdjHTMFRz8zDBm714mIwQvR1SscYya4sUYA8I
10S46dpWXiuQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000022/seal.json b/reveal/v5-000022/seal.json
new file mode 100644
index 0000000..4a425e0
--- /dev/null
+++ b/reveal/v5-000022/seal.json
@@ -0,0 +1,43 @@
1{
2 "algorithm": "sha256-live-v5",
3 "anchor_ref": "sha256:90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4",
4 "covers_after": "2026-10-17T16:11:15.061357Z",
5 "covers_through": "2026-10-17T20:34:34.042922Z",
6 "digest": "90d016853abee69d7845364489f53f17b90ba7c10548ecbd6a685b160b7d36f4",
7 "follows_seq": 52,
8 "n_forecasts": 2158,
9 "n_groups": 22,
10 "n_withheld": 2158,
11 "prev_digest": "ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1",
12 "prev_seq": 21,
13 "sealed_at": "2026-10-17T20:35:06.562534Z",
14 "seq": 22,
15 "variant": {
16 "beacon": {
17 "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
18 "genesis_time": 1692803367,
19 "period": 3,
20 "relays": [
21 "https://api.drand.sh",
22 "https://api2.drand.sh",
23 "https://api3.drand.sh",
24 "https://drand.cloudflare.com"
25 ],
26 "scheme": "bls-unchained-g1-rfc9380"
27 },
28 "cipher": "chacha20poly1305-zlib6-nonce0",
29 "gate": {
30 "default": "withheld: a kept salt can be released later; an opened text can never be withdrawn",
31 "opened": "none",
32 "why": "no decision by Echo yet"
33 },
34 "line": "numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)",
35 "reveal": "utc-day-after-close",
36 "salts": "key ring: one content a seal, one part a line",
37 "tool": {
38 "name": "tle",
39 "sha256": "69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541",
40 "version": "tlock v1.2.0 -- github.com/drand/tlock"
41 }
42 }
43}