← back to Wallco Ai
curator: 24/36/54 widths + 12x12 sq room (fix 0x0 wall) + drag-to-mark-misaligned highlighter (saves to bad_examples) + drunk/list returns existing boxes
39a931a99acf7b36bbb0418afb7bd6cb809f6eae · 2026-05-27 16:29:17 -0700 · Steve Abrams
Files touched
M data/auto-decide-ledger.jsonlM data/rescreen-voids-ledger.jsonlM public/admin/drunk-curator.htmlM server.js
Diff
commit 39a931a99acf7b36bbb0418afb7bd6cb809f6eae
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed May 27 16:29:17 2026 -0700
curator: 24/36/54 widths + 12x12 sq room (fix 0x0 wall) + drag-to-mark-misaligned highlighter (saves to bad_examples) + drunk/list returns existing boxes
---
data/auto-decide-ledger.jsonl | 367 +++++++++++++++++++++++++++++++++++
data/rescreen-voids-ledger.jsonl | 400 +++++++++++++++++++++++++++++++++++++++
public/admin/drunk-curator.html | 90 ++++++++-
server.js | 3 +-
4 files changed, 856 insertions(+), 4 deletions(-)
diff --git a/data/auto-decide-ledger.jsonl b/data/auto-decide-ledger.jsonl
index cb67cde..101448b 100644
--- a/data/auto-decide-ledger.jsonl
+++ b/data/auto-decide-ledger.jsonl
@@ -2949,3 +2949,370 @@
{"t":"2026-05-27T23:13:26.237Z","id":42498,"verdict":"hot_candidate","n":15,"see":"A wallpaper tile with a repeating floral motif."}
{"t":"2026-05-27T23:13:29.254Z","id":42499,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
{"t":"2026-05-27T23:13:32.346Z","id":42500,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:13:35.338Z","id":42501,"verdict":"hot_candidate","n":6,"see":"A repeating wallpaper pattern with birds on branches."}
+{"t":"2026-05-27T23:13:38.529Z","id":42502,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:13:41.628Z","id":42503,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating pattern of birds on branches."}
+{"t":"2026-05-27T23:13:44.704Z","id":42504,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:13:47.743Z","id":42505,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of birds and flowers."}
+{"t":"2026-05-27T23:13:50.874Z","id":42507,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating bird and flower motif."}
+{"t":"2026-05-27T23:13:54.364Z","id":42508,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:13:57.314Z","id":42509,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:14:00.368Z","id":42510,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:03.891Z","id":42511,"verdict":"hot_candidate","n":10,"see":"A wallpaper tile with a floral motif in a repeating pattern."}
+{"t":"2026-05-27T23:14:06.946Z","id":42512,"verdict":"hot_candidate","n":6,"see":"A repeating floral motif with butterflies."}
+{"t":"2026-05-27T23:14:10.288Z","id":42513,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:14:13.326Z","id":42514,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:16.363Z","id":42515,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:14:19.327Z","id":42516,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:22.254Z","id":42517,"verdict":"hot_candidate","n":9,"see":"A repeating floral and bird motif covers the tile."}
+{"t":"2026-05-27T23:14:25.146Z","id":42519,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:28.216Z","id":42521,"verdict":"hot_candidate","n":5,"see":"I see a wallpaper repeat pattern with floral motifs."}
+{"t":"2026-05-27T23:14:31.148Z","id":42522,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:34.014Z","id":42524,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:37.014Z","id":42525,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of birds on branches with flowers."}
+{"t":"2026-05-27T23:14:40.341Z","id":42526,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of birds on branches."}
+{"t":"2026-05-27T23:14:43.349Z","id":42527,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper tile with a bird and floral motif."}
+{"t":"2026-05-27T23:14:46.372Z","id":42528,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of flowers and birds."}
+{"t":"2026-05-27T23:14:49.373Z","id":42529,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating bird and flower motif."}
+{"t":"2026-05-27T23:14:52.425Z","id":42530,"verdict":"hot_candidate","n":9,"see":"This is a wallpaper repeat with a floral motif."}
+{"t":"2026-05-27T23:14:55.384Z","id":42532,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:14:58.506Z","id":42533,"verdict":"hot_candidate","n":10,"see":"A wallpaper tile with a repeating pattern of birds, butterflies, and flowers."}
+{"t":"2026-05-27T23:15:01.608Z","id":42534,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:04.813Z","id":42535,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:07.828Z","id":42536,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral and bird motif."}
+{"t":"2026-05-27T23:15:10.719Z","id":42537,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral pattern."}
+{"t":"2026-05-27T23:15:13.728Z","id":42538,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:16.841Z","id":42539,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of birds and flowers."}
+{"t":"2026-05-27T23:15:20.249Z","id":42540,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral and bird motif."}
+{"t":"2026-05-27T23:15:23.310Z","id":42541,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:26.238Z","id":42542,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and leaf motif."}
+{"t":"2026-05-27T23:15:29.367Z","id":42543,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:32.579Z","id":42544,"verdict":"hot_candidate","n":7,"see":"A repeating wallpaper pattern with floral and bird motifs."}
+{"t":"2026-05-27T23:15:35.596Z","id":42546,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:38.386Z","id":42547,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:41.578Z","id":42548,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:44.751Z","id":42549,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:47.756Z","id":42550,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of birds and floral elements."}
+{"t":"2026-05-27T23:15:50.795Z","id":42551,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:15:53.772Z","id":42552,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:15:56.951Z","id":42553,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:00.139Z","id":42554,"verdict":"hot_candidate","n":8,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:16:03.068Z","id":42555,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral bouquet motif."}
+{"t":"2026-05-27T23:16:06.215Z","id":42556,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of stylized floral motifs."}
+{"t":"2026-05-27T23:16:09.106Z","id":42557,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of birds on branches with leaves and flowers."}
+{"t":"2026-05-27T23:16:12.179Z","id":42558,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of cranes and floral arrangements."}
+{"t":"2026-05-27T23:16:15.404Z","id":42559,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:18.462Z","id":42560,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and flower motif."}
+{"t":"2026-05-27T23:16:21.291Z","id":42561,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:24.282Z","id":42562,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating bird and flower motif on a brick background."}
+{"t":"2026-05-27T23:16:27.510Z","id":42563,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:30.644Z","id":42564,"verdict":"hot_candidate","n":15,"see":"A wallpaper tile with a repeating floral motif on a brick background."}
+{"t":"2026-05-27T23:16:33.665Z","id":42565,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:36.617Z","id":42566,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:39.729Z","id":42567,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of blue birds on flowering branches."}
+{"t":"2026-05-27T23:16:42.568Z","id":42569,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:45.670Z","id":42570,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral and bird motif."}
+{"t":"2026-05-27T23:16:48.559Z","id":42571,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:16:51.748Z","id":42572,"verdict":"hot_candidate","n":6,"see":"A repeating floral and bird pattern."}
+{"t":"2026-05-27T23:16:54.740Z","id":42573,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of birds and floral arrangements."}
+{"t":"2026-05-27T23:16:57.595Z","id":42574,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral bouquet motif."}
+{"t":"2026-05-27T23:17:00.613Z","id":42575,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:03.573Z","id":42576,"verdict":"hot_candidate","n":6,"see":"The wallpaper tile shows a repeating pattern of floral and bird motifs."}
+{"t":"2026-05-27T23:17:06.476Z","id":42577,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:09.289Z","id":42578,"verdict":"hot_candidate","n":4,"see":"I see a wallpaper repeat with a floral motif."}
+{"t":"2026-05-27T23:17:12.042Z","id":42579,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral and bird motif."}
+{"t":"2026-05-27T23:17:14.922Z","id":42580,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:18.051Z","id":42581,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:21.151Z","id":42582,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:24.063Z","id":42583,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a floral repeating pattern."}
+{"t":"2026-05-27T23:17:27.098Z","id":42584,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating bird and flower motif."}
+{"t":"2026-05-27T23:17:30.397Z","id":42585,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:33.300Z","id":42586,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:36.110Z","id":42587,"verdict":"hot_candidate","n":9,"see":"A repeating floral motif on a gray background."}
+{"t":"2026-05-27T23:17:39.122Z","id":42588,"verdict":"hot_candidate","n":10,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:42.122Z","id":42589,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:45.600Z","id":42590,"verdict":"hot_candidate","n":16,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:48.550Z","id":42591,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:17:51.470Z","id":42592,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral and bird motif."}
+{"t":"2026-05-27T23:17:54.409Z","id":42593,"verdict":"hot_candidate","n":4,"see":"A repeating floral and bird pattern."}
+{"t":"2026-05-27T23:17:57.210Z","id":42594,"verdict":"hot_candidate","n":8,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:18:00.075Z","id":42595,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:18:03.034Z","id":42596,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and flower motif."}
+{"t":"2026-05-27T23:18:06.200Z","id":42597,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of flowering tree branches."}
+{"t":"2026-05-27T23:18:09.240Z","id":42598,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of leafy branches on a blue background."}
+{"t":"2026-05-27T23:18:12.573Z","id":42600,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral bouquet motif."}
+{"t":"2026-05-27T23:18:15.509Z","id":42601,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:18:19.175Z","id":42602,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating bird and branch motif."}
+{"t":"2026-05-27T23:18:22.397Z","id":42604,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:18:25.680Z","id":42605,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of frogs holding champagne."}
+{"t":"2026-05-27T23:18:28.545Z","id":42606,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of frogs with champagne."}
+{"t":"2026-05-27T23:18:31.716Z","id":42610,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of parrots with beer and roses."}
+{"t":"2026-05-27T23:18:34.940Z","id":42611,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with repeating peacocks holding beer and tulips."}
+{"t":"2026-05-27T23:18:38.149Z","id":42612,"verdict":"hot_candidate","n":7,"see":"Repeating pattern of parrots holding beer."}
+{"t":"2026-05-27T23:18:41.439Z","id":42614,"verdict":"hot_candidate","n":7,"see":"A repeating pattern of giraffes with cocktails and red flowers."}
+{"t":"2026-05-27T23:18:44.674Z","id":42615,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of orangutans holding bags and foxgloves."}
+{"t":"2026-05-27T23:18:47.999Z","id":42617,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of capybaras with beer and roses."}
+{"t":"2026-05-27T23:18:51.037Z","id":42618,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of lemurs with wine bottles and orchids."}
+{"t":"2026-05-27T23:18:54.309Z","id":42619,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of capybaras with beer and flowers."}
+{"t":"2026-05-27T23:18:57.305Z","id":42620,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating lemur and flower motif."}
+{"t":"2026-05-27T23:19:00.224Z","id":42621,"verdict":"hot_candidate","n":6,"see":"The tile shows a repeating pattern of pink elephants and black flowers."}
+{"t":"2026-05-27T23:19:03.171Z","id":42622,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of elephants and flowers."}
+{"t":"2026-05-27T23:19:06.496Z","id":42623,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of sloth faces with vodka bottles and flowers."}
+{"t":"2026-05-27T23:19:10.383Z","id":42625,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of frogs holding vodka bottles and clover flowers."}
+{"t":"2026-05-27T23:19:13.286Z","id":42627,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of a frog holding a drink in a diamond frame."}
+{"t":"2026-05-27T23:19:16.199Z","id":42628,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of frogs holding beer in sunflowers."}
+{"t":"2026-05-27T23:19:19.233Z","id":42630,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of frogs with wine glasses and roses."}
+{"t":"2026-05-27T23:19:22.414Z","id":42632,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of parrots with beer bottles and flowers."}
+{"t":"2026-05-27T23:19:25.380Z","id":42634,"verdict":"hot_candidate","n":6,"see":"Repeating pattern of orangutans with cocktails."}
+{"t":"2026-05-27T23:19:28.516Z","id":42635,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of giraffes holding wine glasses."}
+{"t":"2026-05-27T23:19:31.692Z","id":42636,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of giraffes with wine glasses and flowers."}
+{"t":"2026-05-27T23:19:34.882Z","id":42638,"verdict":"hot_candidate","n":4,"see":"Four lemurs with drinks are arranged in a repeating pattern."}
+{"t":"2026-05-27T23:19:37.705Z","id":42640,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of red pandas holding drinks."}
+{"t":"2026-05-27T23:19:40.823Z","id":42641,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of red pandas holding drinks."}
+{"t":"2026-05-27T23:19:44.082Z","id":42642,"verdict":"hot_candidate","n":7,"see":"A repeating pattern of giraffes with flowers and bottles."}
+{"t":"2026-05-27T23:19:47.110Z","id":42643,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of elephants, bottles, and flowers."}
+{"t":"2026-05-27T23:19:50.540Z","id":42644,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of giraffes, flowers, and bottles."}
+{"t":"2026-05-27T23:19:53.621Z","id":42645,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:19:56.539Z","id":42648,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating bird and floral motif."}
+{"t":"2026-05-27T23:19:59.705Z","id":42649,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of pink floral and bird motifs within a diamond grid."}
+{"t":"2026-05-27T23:20:02.783Z","id":42650,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral pattern."}
+{"t":"2026-05-27T23:20:05.658Z","id":42651,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:20:08.763Z","id":42652,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:20:11.628Z","id":42653,"verdict":"hot_candidate","n":6,"see":"The image shows a wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:20:14.550Z","id":42654,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of stylized leaf motifs."}
+{"t":"2026-05-27T23:20:17.399Z","id":42655,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of birds on branches."}
+{"t":"2026-05-27T23:20:20.315Z","id":42656,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of pink floral motifs on a green background."}
+{"t":"2026-05-27T23:20:23.292Z","id":42658,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:20:26.320Z","id":42659,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:20:29.407Z","id":42661,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of frogs with champagne bottles."}
+{"t":"2026-05-27T23:20:31.835Z","id":42907,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of peacocks and stylized floral motifs."}
+{"t":"2026-05-27T23:20:34.093Z","id":42914,"verdict":"not","reason":"centered-hero (n=1)","see":"A large monkey is centered with bottles around it."}
+{"t":"2026-05-27T23:20:36.468Z","id":43193,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating monstera leaf motif."}
+{"t":"2026-05-27T23:20:38.797Z","id":43194,"verdict":"hot_candidate","n":6,"see":"A repeating toile pattern with landscape scenes."}
+{"t":"2026-05-27T23:20:41.037Z","id":43195,"verdict":"hot_candidate","n":3,"see":"The tile shows a repeating pattern of birds on branches with leaves and flowers."}
+{"t":"2026-05-27T23:20:43.275Z","id":43196,"verdict":"hot_candidate","n":10,"see":"A repeating toile pattern with various scenes."}
+{"t":"2026-05-27T23:20:45.451Z","id":43197,"verdict":"hot_candidate","n":20,"see":"A repeating pattern of birds, deer, and trees."}
+{"t":"2026-05-27T23:20:47.591Z","id":43239,"verdict":"hot_candidate","n":5,"see":"The tile shows a repeating pattern of giraffes and palm trees."}
+{"t":"2026-05-27T23:20:49.937Z","id":43240,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:20:52.120Z","id":43269,"verdict":"hot_candidate","n":5,"see":"There are multiple giraffe motifs in a repeating pattern."}
+{"t":"2026-05-27T23:20:54.288Z","id":43270,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:20:56.639Z","id":43271,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating pattern of parrots and foliage."}
+{"t":"2026-05-27T23:20:58.773Z","id":43272,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper repeat with a parrot motif."}
+{"t":"2026-05-27T23:21:01.111Z","id":43291,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper repeat of lemurs in trees."}
+{"t":"2026-05-27T23:21:03.293Z","id":43314,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating pattern of parrots."}
+{"t":"2026-05-27T23:21:05.959Z","id":43320,"verdict":"hot_candidate","n":15,"see":"This is a wallpaper repeat of llama silhouettes."}
+{"t":"2026-05-27T23:21:08.343Z","id":43336,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper tile with monkeys and bottles."}
+{"t":"2026-05-27T23:21:10.561Z","id":43341,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:21:12.741Z","id":43403,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of palm trees and a bear."}
+{"t":"2026-05-27T23:21:14.945Z","id":43404,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of palm trees and animals."}
+{"t":"2026-05-27T23:21:17.646Z","id":43417,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of mushrooms and forest creatures."}
+{"t":"2026-05-27T23:21:20.128Z","id":43418,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of mushrooms and forest creatures."}
+{"t":"2026-05-27T23:21:22.606Z","id":43423,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of mushrooms and animals."}
+{"t":"2026-05-27T23:21:25.075Z","id":43437,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of frogs and decorative elements."}
+{"t":"2026-05-27T23:21:27.441Z","id":43438,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating frog motif."}
+{"t":"2026-05-27T23:21:30.591Z","id":43478,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:21:32.837Z","id":43479,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of a gorilla holding a lamp."}
+{"t":"2026-05-27T23:21:35.036Z","id":43480,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of a gorilla holding a lamp."}
+{"t":"2026-05-27T23:21:37.391Z","id":43481,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of a gorilla holding a lamp."}
+{"t":"2026-05-27T23:21:39.712Z","id":43485,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper repeat of giraffes and trees."}
+{"t":"2026-05-27T23:21:42.234Z","id":43486,"verdict":"hot_candidate","n":8,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:21:44.605Z","id":43491,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:21:46.981Z","id":43503,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:21:49.278Z","id":43504,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating lemur motif."}
+{"t":"2026-05-27T23:21:51.578Z","id":43505,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating lemur motif."}
+{"t":"2026-05-27T23:21:54.368Z","id":43506,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of lemurs and foliage."}
+{"t":"2026-05-27T23:21:56.743Z","id":43516,"verdict":"hot_candidate","n":20,"see":"A repeating pattern of mushrooms and animals."}
+{"t":"2026-05-27T23:21:59.024Z","id":43536,"verdict":"hot_candidate","n":10,"see":"I see a repeating pattern of animals and plants."}
+{"t":"2026-05-27T23:22:01.150Z","id":43537,"verdict":"hot_candidate","n":10,"see":"A repeating wallpaper tile with animal and plant motifs."}
+{"t":"2026-05-27T23:22:03.605Z","id":43540,"verdict":"hot_candidate","n":16,"see":"A wallpaper repeat of animal silhouettes."}
+{"t":"2026-05-27T23:22:06.273Z","id":43541,"verdict":"hot_candidate","n":20,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:22:08.512Z","id":43563,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:22:10.804Z","id":43564,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:22:12.926Z","id":43570,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:22:15.260Z","id":43575,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of deer and foliage."}
+{"t":"2026-05-27T23:22:17.887Z","id":43579,"verdict":"hot_candidate","n":20,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:22:20.044Z","id":43604,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:22:22.426Z","id":43605,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:22:24.706Z","id":43606,"verdict":"hot_candidate","n":15,"see":"The tile shows a repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:22:27.021Z","id":43615,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:22:29.322Z","id":43616,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:22:31.555Z","id":43630,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:22:34.004Z","id":43706,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:22:36.174Z","id":43707,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of elephants and floral garlands."}
+{"t":"2026-05-27T23:22:38.786Z","id":43748,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:22:41.185Z","id":43797,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of raccoons in trees."}
+{"t":"2026-05-27T23:22:43.312Z","id":43798,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of raccoons in trees."}
+{"t":"2026-05-27T23:22:45.784Z","id":43799,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of raccoons in trees."}
+{"t":"2026-05-27T23:22:48.080Z","id":43820,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of various animals."}
+{"t":"2026-05-27T23:22:50.324Z","id":43821,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of various animals."}
+{"t":"2026-05-27T23:22:52.729Z","id":43822,"verdict":"hot_candidate","n":10,"see":"This is a wallpaper tile with a repeating pattern of animals."}
+{"t":"2026-05-27T23:22:54.850Z","id":43858,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:22:56.910Z","id":43863,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:22:59.046Z","id":43869,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:23:01.369Z","id":43870,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:23:03.853Z","id":43920,"verdict":"hot_candidate","n":12,"see":"This is a wallpaper repeat with many floral motifs."}
+{"t":"2026-05-27T23:23:06.271Z","id":43921,"verdict":"hot_candidate","n":16,"see":"This is a wallpaper tile with a repeating floral pattern."}
+{"t":"2026-05-27T23:23:08.657Z","id":43922,"verdict":"hot_candidate","n":12,"see":"This is a wallpaper repeat with a dense floral motif."}
+{"t":"2026-05-27T23:23:11.330Z","id":43944,"verdict":"hot_candidate","n":8,"see":"The tile shows a repeating pattern of elephants and palm trees."}
+{"t":"2026-05-27T23:23:13.551Z","id":43945,"verdict":"not","reason":"centered-hero (n=4)","see":"A centered red panda motif with wrap-around fragments."}
+{"t":"2026-05-27T23:23:15.795Z","id":43946,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of animal motifs."}
+{"t":"2026-05-27T23:23:17.919Z","id":43954,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of giraffes in a jungle setting."}
+{"t":"2026-05-27T23:23:20.192Z","id":43980,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of monkeys."}
+{"t":"2026-05-27T23:23:22.424Z","id":43981,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of monkeys with bottles."}
+{"t":"2026-05-27T23:23:24.640Z","id":44048,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating sloth motif."}
+{"t":"2026-05-27T23:23:26.854Z","id":44089,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating floral motif."}
+{"t":"2026-05-27T23:23:29.142Z","id":44090,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of floral arrangements in vases."}
+{"t":"2026-05-27T23:23:31.198Z","id":44116,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of okapi motifs."}
+{"t":"2026-05-27T23:23:33.285Z","id":44117,"verdict":"hot_candidate","n":4,"see":"There are four giraffe motifs in a repeating pattern."}
+{"t":"2026-05-27T23:23:35.476Z","id":44123,"verdict":"hot_candidate","n":15,"see":"The tile shows a repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:23:37.715Z","id":44139,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:23:39.970Z","id":44152,"verdict":"hot_candidate","n":10,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:23:42.192Z","id":44153,"verdict":"hot_candidate","n":10,"see":"A wallpaper tile with a repeating giraffe and palm tree motif."}
+{"t":"2026-05-27T23:23:44.304Z","id":44163,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating giraffe and zebra motif."}
+{"t":"2026-05-27T23:23:46.490Z","id":44170,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of a mythical creature."}
+{"t":"2026-05-27T23:23:48.765Z","id":44176,"verdict":"hot_candidate","n":5,"see":"I see a repeating pattern of lemurs in trees."}
+{"t":"2026-05-27T23:23:51.053Z","id":44196,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating sloth motif."}
+{"t":"2026-05-27T23:23:53.502Z","id":44197,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of sloths on branches."}
+{"t":"2026-05-27T23:23:55.824Z","id":44202,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper repeat of a wildebeest motif."}
+{"t":"2026-05-27T23:23:58.200Z","id":44254,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:24:00.565Z","id":44260,"verdict":"hot_candidate","n":15,"see":"A wallpaper tile with a repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:24:02.963Z","id":44308,"verdict":"hot_candidate","n":25,"see":"A wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:24:05.157Z","id":44309,"verdict":"hot_candidate","n":25,"see":"A repeating pattern of giraffe silhouettes."}
+{"t":"2026-05-27T23:24:07.149Z","id":44375,"verdict":"hot_candidate","n":7,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:24:09.500Z","id":44376,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper repeat of parrots on branches."}
+{"t":"2026-05-27T23:24:11.747Z","id":44377,"verdict":"hot_candidate","n":6,"see":"A repeating wallpaper tile with a parrot motif."}
+{"t":"2026-05-27T23:24:14.160Z","id":44403,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of mammoths and other animals."}
+{"t":"2026-05-27T23:24:16.351Z","id":44404,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of mammoths and other animals."}
+{"t":"2026-05-27T23:24:18.631Z","id":44414,"verdict":"hot_candidate","n":4,"see":"The tile shows a repeating pattern of mammoths and other animals."}
+{"t":"2026-05-27T23:24:20.920Z","id":44428,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of lemurs and palm fronds."}
+{"t":"2026-05-27T23:24:23.139Z","id":44429,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of lemurs and palm fronds."}
+{"t":"2026-05-27T23:24:25.242Z","id":44477,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:24:27.280Z","id":44502,"verdict":"hot_candidate","n":4,"see":"Four elephant motifs are visible in a repeating pattern."}
+{"t":"2026-05-27T23:24:29.682Z","id":44508,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:24:32.218Z","id":44509,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:24:34.452Z","id":44549,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of giraffes and camels in a jungle setting."}
+{"t":"2026-05-27T23:24:36.614Z","id":44550,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of giraffes and camels in a forest."}
+{"t":"2026-05-27T23:24:38.786Z","id":44554,"verdict":"hot_candidate","n":16,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:24:41.071Z","id":44601,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of frogs and foliage."}
+{"t":"2026-05-27T23:24:43.258Z","id":44603,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of raccoons."}
+{"t":"2026-05-27T23:24:45.809Z","id":44658,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper repeat with a mythological scene."}
+{"t":"2026-05-27T23:24:48.143Z","id":44671,"verdict":"hot_candidate","n":6,"see":"A repeating wallpaper tile with animal motifs."}
+{"t":"2026-05-27T23:24:50.432Z","id":44728,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating motif of animals and plants."}
+{"t":"2026-05-27T23:24:52.799Z","id":44729,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of animals and plants."}
+{"t":"2026-05-27T23:24:55.059Z","id":44730,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper tile with a toile-like motif."}
+{"t":"2026-05-27T23:24:57.239Z","id":44758,"verdict":"hot_candidate","n":8,"see":"A wallpaper tile with a repeating monkey motif."}
+{"t":"2026-05-27T23:24:59.494Z","id":44793,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of giraffes."}
+{"t":"2026-05-27T23:25:01.638Z","id":44829,"verdict":"hot_candidate","n":9,"see":"This is a wallpaper repeat of elephant motifs."}
+{"t":"2026-05-27T23:25:03.882Z","id":44830,"verdict":"hot_candidate","n":8,"see":"There are multiple instances of the elephant motif."}
+{"t":"2026-05-27T23:25:06.124Z","id":44831,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of apes holding bottles."}
+{"t":"2026-05-27T23:25:08.391Z","id":44837,"verdict":"hot_candidate","n":6,"see":"I see a repeating pattern of apes holding bottles."}
+{"t":"2026-05-27T23:25:11.014Z","id":44838,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of a gorilla holding a bottle."}
+{"t":"2026-05-27T23:25:13.279Z","id":44853,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of monkeys."}
+{"t":"2026-05-27T23:25:15.531Z","id":44854,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating monkey motif."}
+{"t":"2026-05-27T23:25:17.924Z","id":44908,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of parrots and foliage."}
+{"t":"2026-05-27T23:25:20.213Z","id":44909,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper tile with a repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:25:22.364Z","id":44919,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating monkey and palm tree motif."}
+{"t":"2026-05-27T23:25:24.584Z","id":44924,"verdict":"hot_candidate","n":4,"see":"The image shows a wallpaper tile with a repeating pattern of monkeys in trees."}
+{"t":"2026-05-27T23:25:26.852Z","id":44925,"verdict":"hot_candidate","n":6,"see":"The tile shows a repeating pattern of elephants."}
+{"t":"2026-05-27T23:25:29.091Z","id":44933,"verdict":"hot_candidate","n":4,"see":"I see a wallpaper repeat of parrots and foliage."}
+{"t":"2026-05-27T23:25:31.388Z","id":44934,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots and foliage."}
+{"t":"2026-05-27T23:25:33.702Z","id":44943,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:25:35.908Z","id":44981,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper repeat of monkeys in trees."}
+{"t":"2026-05-27T23:25:38.216Z","id":44988,"verdict":"hot_candidate","n":12,"see":"A repeating wallpaper pattern of elephants and palm trees."}
+{"t":"2026-05-27T23:25:40.366Z","id":44994,"verdict":"hot_candidate","n":40,"see":"A wallpaper tile with a repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:25:42.564Z","id":44995,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating lemur and palm tree motif."}
+{"t":"2026-05-27T23:25:44.795Z","id":44998,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper repeat of giraffe motifs."}
+{"t":"2026-05-27T23:25:46.950Z","id":45000,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:25:49.381Z","id":45001,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating lemur motif."}
+{"t":"2026-05-27T23:25:51.539Z","id":45063,"verdict":"hot_candidate","n":6,"see":"I see a repeating pattern of chimpanzees and bottles."}
+{"t":"2026-05-27T23:25:53.915Z","id":45076,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper repeat of giraffes and trees."}
+{"t":"2026-05-27T23:25:56.239Z","id":45077,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:25:58.602Z","id":45078,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:26:00.771Z","id":45093,"verdict":"hot_candidate","n":3,"see":"This is a wallpaper tile with a repeating sloth motif."}
+{"t":"2026-05-27T23:26:02.926Z","id":45094,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of sloths and cocktails."}
+{"t":"2026-05-27T23:26:05.112Z","id":45095,"verdict":"hot_candidate","n":3,"see":"I see a repeating pattern of sloths and cocktails."}
+{"t":"2026-05-27T23:26:07.371Z","id":45098,"verdict":"not","reason":"centered-hero (n=4)","see":"A large goat motif is centered with other goats around it."}
+{"t":"2026-05-27T23:26:09.540Z","id":45142,"verdict":"not","reason":"centered-hero (n=1)","see":"A single large deer motif is centered."}
+{"t":"2026-05-27T23:26:11.728Z","id":45151,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of raccoons and trees."}
+{"t":"2026-05-27T23:26:13.930Z","id":45185,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of frogs and foliage."}
+{"t":"2026-05-27T23:26:16.094Z","id":45186,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper tile with a repeating pattern of frogs and foliage."}
+{"t":"2026-05-27T23:26:18.200Z","id":45195,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating parrot motif."}
+{"t":"2026-05-27T23:26:20.427Z","id":45222,"verdict":"hot_candidate","n":16,"see":"A wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:26:22.626Z","id":45239,"verdict":"hot_candidate","n":6,"see":"A repeating wallpaper tile with giraffes and other animals in a jungle setting."}
+{"t":"2026-05-27T23:26:24.916Z","id":45240,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper repeat of a jungle scene with giraffes and other animals."}
+{"t":"2026-05-27T23:26:27.200Z","id":45242,"verdict":"hot_candidate","n":7,"see":"This is a wallpaper tile with a repeating giraffe motif."}
+{"t":"2026-05-27T23:26:29.638Z","id":45260,"verdict":"hot_candidate","n":12,"see":"A wallpaper tile with a repeating pattern of elephants and trees."}
+{"t":"2026-05-27T23:26:32.038Z","id":45261,"verdict":"hot_candidate","n":16,"see":"A repeating pattern of elephants and trees."}
+{"t":"2026-05-27T23:26:34.271Z","id":45269,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of parrots."}
+{"t":"2026-05-27T23:26:36.454Z","id":45283,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper tile with a monkey motif."}
+{"t":"2026-05-27T23:26:38.755Z","id":45284,"verdict":"hot_candidate","n":4,"see":"Four instances of a horse-like creature are visible in a repeating pattern."}
+{"t":"2026-05-27T23:26:41.009Z","id":45285,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper tile with a monkey motif."}
+{"t":"2026-05-27T23:26:43.188Z","id":45288,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of parrots on branches."}
+{"t":"2026-05-27T23:26:45.375Z","id":45290,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of animals and trees."}
+{"t":"2026-05-27T23:26:47.633Z","id":45304,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of frogs and foliage."}
+{"t":"2026-05-27T23:26:49.931Z","id":45305,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of frogs and foliage."}
+{"t":"2026-05-27T23:26:52.067Z","id":45310,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of parrots and palm trees."}
+{"t":"2026-05-27T23:26:54.297Z","id":45315,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots and palm trees."}
+{"t":"2026-05-27T23:26:56.517Z","id":45316,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of parrots and palm trees."}
+{"t":"2026-05-27T23:26:59.090Z","id":45331,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of raccoons, cats, bottles, and cans."}
+{"t":"2026-05-27T23:27:01.414Z","id":45356,"verdict":"hot_candidate","n":20,"see":"A wallpaper tile with a repeating pattern of giraffes and other animals."}
+{"t":"2026-05-27T23:27:03.660Z","id":45358,"verdict":"hot_candidate","n":5,"see":"I see a repeating pattern of monkeys with bottles in trees."}
+{"t":"2026-05-27T23:27:05.887Z","id":45366,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of frogs and tables."}
+{"t":"2026-05-27T23:27:08.199Z","id":45367,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of frogs and tables."}
+{"t":"2026-05-27T23:27:10.289Z","id":45368,"verdict":"hot_candidate","n":7,"see":"A wallpaper tile with a repeating pattern of frogs and tables."}
+{"t":"2026-05-27T23:27:12.431Z","id":45373,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of antelope silhouettes."}
+{"t":"2026-05-27T23:27:14.550Z","id":45374,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of antelope silhouettes."}
+{"t":"2026-05-27T23:27:16.746Z","id":45375,"verdict":"hot_candidate","n":12,"see":"A repeating pattern of antelope motifs."}
+{"t":"2026-05-27T23:27:19.033Z","id":45492,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating giraffe motif among trees."}
+{"t":"2026-05-27T23:27:21.315Z","id":45495,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:27:23.472Z","id":45497,"verdict":"hot_candidate","n":25,"see":"A wallpaper tile with a repeating pattern of deer."}
+{"t":"2026-05-27T23:27:25.604Z","id":45498,"verdict":"hot_candidate","n":20,"see":"A repeating pattern of deer motifs."}
+{"t":"2026-05-27T23:27:27.673Z","id":45516,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:27:29.787Z","id":45517,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:27:32.167Z","id":45518,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:27:34.533Z","id":45521,"verdict":"not","reason":"centered-hero (n=1)","see":"A centered elephant motif with wrap-around fragments."}
+{"t":"2026-05-27T23:27:36.869Z","id":45526,"verdict":"hot_candidate","n":4,"see":"There are four instances of the monkey motif."}
+{"t":"2026-05-27T23:27:39.096Z","id":45527,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of cartoonish ape-like figures with drinks."}
+{"t":"2026-05-27T23:27:41.383Z","id":45528,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of a monkey holding a drink."}
+{"t":"2026-05-27T23:27:43.842Z","id":45559,"verdict":"hot_candidate","n":9,"see":"A repeating wallpaper tile with a pattern of trees and objects on shelves."}
+{"t":"2026-05-27T23:27:46.266Z","id":45560,"verdict":"hot_candidate","n":9,"see":"The tile shows a repeating pattern of trees and objects."}
+{"t":"2026-05-27T23:27:48.586Z","id":45561,"verdict":"hot_candidate","n":9,"see":"A wallpaper tile with a repeating pattern of trees and decorative objects."}
+{"t":"2026-05-27T23:27:50.830Z","id":45571,"verdict":"hot_candidate","n":5,"see":"The tile shows a repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:27:52.994Z","id":45572,"verdict":"hot_candidate","n":6,"see":"A wallpaper tile with a repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:27:55.154Z","id":45582,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of lemurs and palm fronds."}
+{"t":"2026-05-27T23:27:57.280Z","id":45603,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of dragon-like creatures and foliage."}
+{"t":"2026-05-27T23:27:59.460Z","id":45625,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of deer and jungle foliage."}
+{"t":"2026-05-27T23:28:01.692Z","id":45626,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating deer motif."}
+{"t":"2026-05-27T23:28:04.118Z","id":45634,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:28:06.417Z","id":45635,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of deer and tropical foliage."}
+{"t":"2026-05-27T23:28:08.695Z","id":45643,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of lemurs and palm trees."}
+{"t":"2026-05-27T23:28:10.836Z","id":45644,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of monkeys and palm trees."}
+{"t":"2026-05-27T23:28:13.180Z","id":45706,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating pattern of trees and birds."}
+{"t":"2026-05-27T23:28:15.345Z","id":45726,"verdict":"hot_candidate","n":7,"see":"A repeating pattern of frogs and flowers."}
+{"t":"2026-05-27T23:28:17.502Z","id":45735,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:28:19.747Z","id":45736,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:28:22.016Z","id":45831,"verdict":"hot_candidate","n":6,"see":"I see a repeating pattern of animals and plants."}
+{"t":"2026-05-27T23:28:24.223Z","id":45832,"verdict":"hot_candidate","n":6,"see":"The tile shows a repeating pattern of animals and plants."}
+{"t":"2026-05-27T23:28:26.302Z","id":45833,"verdict":"hot_candidate","n":6,"see":"This is a wallpaper tile with a repeating pattern of animals and plants."}
+{"t":"2026-05-27T23:28:28.640Z","id":45839,"verdict":"hot_candidate","n":5,"see":"A repeating pattern of a monkey holding a bottle."}
+{"t":"2026-05-27T23:28:30.749Z","id":45840,"verdict":"hot_candidate","n":6,"see":"A repeating pattern of apes holding bottles."}
+{"t":"2026-05-27T23:28:32.864Z","id":45843,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of parrots and trees."}
+{"t":"2026-05-27T23:28:35.277Z","id":45904,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of vases and deer."}
+{"t":"2026-05-27T23:28:37.516Z","id":45905,"verdict":"hot_candidate","n":4,"see":"A wallpaper tile with a repeating pattern of vases and trees."}
+{"t":"2026-05-27T23:28:39.855Z","id":45906,"verdict":"hot_candidate","n":4,"see":"I see a repeating pattern of urns and deer."}
+{"t":"2026-05-27T23:28:42.019Z","id":45936,"verdict":"hot_candidate","n":5,"see":"A wallpaper tile with a repeating pattern of giraffes and trees."}
+{"t":"2026-05-27T23:28:44.092Z","id":45937,"verdict":"hot_candidate","n":5,"see":"This is a wallpaper tile with a repeating giraffe and tree motif."}
+{"t":"2026-05-27T23:28:46.293Z","id":45943,"verdict":"hot_candidate","n":10,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:28:48.581Z","id":45944,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:28:50.661Z","id":45945,"verdict":"hot_candidate","n":9,"see":"A repeating pattern of animal silhouettes."}
+{"t":"2026-05-27T23:28:53.151Z","id":45987,"verdict":"hot_candidate","n":4,"see":"A repeating wallpaper pattern with elephants and wine glasses."}
+{"t":"2026-05-27T23:28:55.252Z","id":46010,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper repeat of giraffes and trees."}
+{"t":"2026-05-27T23:28:57.423Z","id":46044,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of animals on pedestals."}
+{"t":"2026-05-27T23:28:59.483Z","id":46059,"verdict":"hot_candidate","n":4,"see":"Repeating pattern of urns and frogs."}
+{"t":"2026-05-27T23:29:01.771Z","id":46067,"verdict":"hot_candidate","n":12,"see":"A repeating wallpaper pattern of elephants in frames."}
+{"t":"2026-05-27T23:29:04.284Z","id":46068,"verdict":"hot_candidate","n":10,"see":"A wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:29:06.559Z","id":46069,"verdict":"hot_candidate","n":12,"see":"This is a wallpaper tile with a repeating elephant motif."}
+{"t":"2026-05-27T23:29:08.798Z","id":46136,"verdict":"hot_candidate","n":4,"see":"This is a wallpaper repeat with a vase motif."}
+{"t":"2026-05-27T23:29:10.943Z","id":46137,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of urns and animals."}
+{"t":"2026-05-27T23:29:13.044Z","id":46138,"verdict":"hot_candidate","n":4,"see":"A repeating pattern of urns and animals."}
+{"t":"2026-05-27T23:29:15.326Z","id":46142,"verdict":"hot_candidate","n":8,"see":"A repeating pattern of frogs and monkeys in trees."}
diff --git a/data/rescreen-voids-ledger.jsonl b/data/rescreen-voids-ledger.jsonl
index d1e0a82..d59a9c3 100644
--- a/data/rescreen-voids-ledger.jsonl
+++ b/data/rescreen-voids-ledger.jsonl
@@ -96,3 +96,403 @@
{"t":"2026-05-27T23:13:27.703Z","id":11787,"verdict":"kept","n":4}
{"t":"2026-05-27T23:13:29.960Z","id":11788,"verdict":"kept","n":4}
{"t":"2026-05-27T23:13:32.379Z","id":11825,"verdict":"kept","n":28}
+{"t":"2026-05-27T23:13:34.900Z","id":11829,"verdict":"kept","n":25}
+{"t":"2026-05-27T23:13:37.232Z","id":11830,"verdict":"kept","n":30}
+{"t":"2026-05-27T23:13:39.638Z","id":11831,"verdict":"kept","n":25}
+{"t":"2026-05-27T23:13:41.924Z","id":11836,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:13:44.826Z","id":11848,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:13:47.743Z","id":11856,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:13:50.196Z","id":11860,"verdict":"kept","n":30}
+{"t":"2026-05-27T23:13:52.367Z","id":11865,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:13:54.743Z","id":11894,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:13:57.223Z","id":11896,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:13:59.614Z","id":11913,"verdict":"kept","n":14}
+{"t":"2026-05-27T23:14:02.016Z","id":11914,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:14:04.350Z","id":11915,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:14:06.946Z","id":11991,"verdict":"kept","n":14}
+{"t":"2026-05-27T23:14:09.225Z","id":11997,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:14:11.576Z","id":11998,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:14:13.801Z","id":11999,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:14:16.306Z","id":12003,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:14:18.787Z","id":12004,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:14:21.345Z","id":12005,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:14:23.720Z","id":12006,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:25.976Z","id":12067,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:28.326Z","id":12069,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:30.547Z","id":12070,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:32.830Z","id":12071,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:35.061Z","id":12242,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:37.419Z","id":12243,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:40.260Z","id":12244,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:42.562Z","id":12245,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:44.970Z","id":12333,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:47.255Z","id":12334,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:49.867Z","id":12335,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:52.128Z","id":12412,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:54.319Z","id":12413,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:14:56.684Z","id":12443,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:14:58.858Z","id":12537,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:01.113Z","id":12538,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:03.325Z","id":12539,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:05.640Z","id":12540,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:07.928Z","id":12589,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:10.649Z","id":12590,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:13.175Z","id":12591,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:15.587Z","id":12618,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:17.919Z","id":12619,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:20.108Z","id":12620,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:22.355Z","id":12621,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:24.735Z","id":12626,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:27.063Z","id":12649,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:29.264Z","id":12650,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:31.442Z","id":12651,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:15:33.710Z","id":12665,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:36.021Z","id":12666,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:38.633Z","id":12667,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:41.026Z","id":12723,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:15:43.307Z","id":12724,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:15:45.724Z","id":12863,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:48.008Z","id":12902,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:50.602Z","id":12903,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:15:52.899Z","id":12905,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:55.281Z","id":12906,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:57.664Z","id":12907,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:15:59.959Z","id":12943,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:02.315Z","id":12948,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:04.621Z","id":12949,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:16:07.000Z","id":12950,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:16:09.250Z","id":12964,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:16:11.571Z","id":12966,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:16:13.760Z","id":12971,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:16:15.898Z","id":12972,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:16:18.160Z","id":12973,"verdict":"kept","n":14}
+{"t":"2026-05-27T23:16:20.424Z","id":13125,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:16:22.717Z","id":13126,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:16:24.992Z","id":13127,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:16:27.330Z","id":13130,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:16:29.735Z","id":13131,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:16:32.177Z","id":13132,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:16:34.529Z","id":13164,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:16:36.887Z","id":13166,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:39.656Z","id":13167,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:42.122Z","id":13242,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:16:44.469Z","id":13243,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:16:46.620Z","id":13244,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:16:48.951Z","id":13248,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:51.572Z","id":13249,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:54.025Z","id":13250,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:16:56.335Z","id":13251,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:16:58.666Z","id":13350,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:00.888Z","id":13354,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:03.141Z","id":13355,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:05.404Z","id":13356,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:07.672Z","id":13395,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:17:09.995Z","id":13396,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:17:12.272Z","id":13397,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:17:14.872Z","id":13398,"verdict":"kept","n":25}
+{"t":"2026-05-27T23:17:17.417Z","id":13399,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:19.754Z","id":13400,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:17:22.008Z","id":13401,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:17:24.200Z","id":13402,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:26.866Z","id":13552,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:17:29.583Z","id":13553,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:17:32.292Z","id":13554,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:17:34.842Z","id":13555,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:17:37.338Z","id":13556,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:17:39.506Z","id":13557,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:17:42.122Z","id":13558,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:17:44.442Z","id":13591,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:17:46.637Z","id":13592,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:17:48.842Z","id":13663,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:17:51.562Z","id":13664,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:17:53.795Z","id":13665,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:17:56.163Z","id":13949,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:17:58.387Z","id":13950,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:18:00.664Z","id":13951,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:18:03.009Z","id":14049,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:18:05.788Z","id":14050,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:08.108Z","id":14051,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:10.300Z","id":14151,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:12.458Z","id":14152,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:14.795Z","id":14153,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:17.068Z","id":14190,"verdict":"kept","n":14}
+{"t":"2026-05-27T23:18:19.430Z","id":14234,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:18:22.004Z","id":14253,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:18:24.118Z","id":14255,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:18:26.247Z","id":14256,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:18:28.314Z","id":14257,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:30.547Z","id":14281,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:18:32.944Z","id":14282,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:18:35.310Z","id":14283,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:18:37.510Z","id":14284,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:18:39.775Z","id":14379,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:18:42.107Z","id":14380,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:18:44.365Z","id":14381,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:18:46.578Z","id":14412,"verdict":"kept","n":25}
+{"t":"2026-05-27T23:18:48.774Z","id":14413,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:18:51.109Z","id":14432,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:53.866Z","id":14435,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:18:56.152Z","id":14436,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:18:58.383Z","id":14463,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:19:00.574Z","id":14511,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:19:02.825Z","id":14512,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:05.078Z","id":14513,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:07.309Z","id":14514,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:10.258Z","id":14516,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:19:12.551Z","id":14517,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:19:14.789Z","id":14518,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:19:17.019Z","id":14583,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:19.247Z","id":14586,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:21.655Z","id":14587,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:23.999Z","id":14588,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:19:26.320Z","id":14596,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:28.733Z","id":14602,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:31.134Z","id":14603,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:19:33.207Z","id":14615,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:19:35.423Z","id":14623,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:19:37.656Z","id":14624,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:19:40.433Z","id":14625,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:19:42.728Z","id":14652,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:45.109Z","id":14653,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:47.444Z","id":14654,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:49.808Z","id":14655,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:52.130Z","id":14804,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:54.392Z","id":14806,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:19:56.711Z","id":14807,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:19:59.498Z","id":14808,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:01.796Z","id":14833,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:04.066Z","id":14834,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:06.412Z","id":14835,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:08.762Z","id":14838,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:20:11.573Z","id":14839,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:20:13.977Z","id":14840,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:20:16.332Z","id":14858,"verdict":"kept","n":2}
+{"t":"2026-05-27T23:20:18.560Z","id":14859,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:20:20.848Z","id":14860,"verdict":"kept","n":2}
+{"t":"2026-05-27T23:20:23.203Z","id":14929,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:20:25.546Z","id":14930,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:20:27.942Z","id":14931,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:20:30.153Z","id":14938,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:20:32.489Z","id":15047,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:20:35.001Z","id":15049,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:20:37.177Z","id":15310,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:20:39.449Z","id":15311,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:20:41.578Z","id":15312,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:20:43.894Z","id":15313,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:20:46.121Z","id":15360,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:48.334Z","id":15361,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:50.651Z","id":15362,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:20:52.912Z","id":15363,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:20:55.029Z","id":15382,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:57.235Z","id":15385,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:20:59.615Z","id":15419,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:21:02.189Z","id":15420,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:04.606Z","id":15421,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:21:07.043Z","id":15429,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:09.535Z","id":15430,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:21:12.044Z","id":15431,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:21:14.648Z","id":15432,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:21:17.157Z","id":15529,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:21:19.657Z","id":15533,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:21:21.992Z","id":15534,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:21:24.792Z","id":15535,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:21:27.164Z","id":15597,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:21:29.510Z","id":15598,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:21:31.879Z","id":15599,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:34.097Z","id":15729,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:36.333Z","id":15731,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:38.769Z","id":15732,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:40.973Z","id":15733,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:21:43.246Z","id":15775,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:21:45.643Z","id":15776,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:21:47.972Z","id":15777,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:50.241Z","id":15778,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:53.093Z","id":15787,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:55.364Z","id":15788,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:57.538Z","id":15789,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:21:59.673Z","id":15790,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:02.040Z","id":15817,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:22:04.558Z","id":15818,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:22:06.902Z","id":15819,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:09.455Z","id":15965,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:11.924Z","id":15966,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:14.285Z","id":15967,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:17.045Z","id":15981,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:19.433Z","id":15982,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:22:21.804Z","id":15983,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:22:24.073Z","id":15984,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:26.470Z","id":16035,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:22:28.654Z","id":16036,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:22:31.026Z","id":16037,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:22:33.384Z","id":16038,"verdict":"kept","n":14}
+{"t":"2026-05-27T23:22:35.650Z","id":16137,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:38.218Z","id":16138,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:22:40.662Z","id":16141,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:43.378Z","id":16142,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:45.712Z","id":16143,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:48.554Z","id":16187,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:51.214Z","id":16188,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:22:53.443Z","id":16189,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:22:55.704Z","id":16195,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:22:57.825Z","id":16196,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:23:00.003Z","id":16197,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:23:02.263Z","id":16198,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:23:04.634Z","id":16376,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:07.402Z","id":16380,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:09.949Z","id":16381,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:12.465Z","id":16382,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:14.758Z","id":16576,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:17.048Z","id":16583,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:23:19.477Z","id":16584,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:23:21.918Z","id":16585,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:23:24.540Z","id":16586,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:23:27.063Z","id":16620,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:23:29.444Z","id":16621,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:31.795Z","id":16705,"verdict":"kept","n":1}
+{"t":"2026-05-27T23:23:34.336Z","id":16706,"verdict":"kept","n":3}
+{"t":"2026-05-27T23:23:36.544Z","id":16741,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:23:38.936Z","id":16742,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:23:41.095Z","id":16743,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:23:43.320Z","id":16802,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:23:45.800Z","id":16805,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:23:48.316Z","id":16852,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:23:50.701Z","id":16854,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:53.008Z","id":16855,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:23:55.566Z","id":16856,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:23:57.868Z","id":16969,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:24:00.258Z","id":16970,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:24:02.638Z","id":16971,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:24:05.185Z","id":17024,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:24:07.491Z","id":17038,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:24:09.999Z","id":17039,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:24:12.449Z","id":17040,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:24:14.831Z","id":17041,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:24:17.199Z","id":17047,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:24:19.447Z","id":17051,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:24:21.767Z","id":17052,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:24:24.020Z","id":17053,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:24:26.386Z","id":17132,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:29.240Z","id":17133,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:31.628Z","id":17134,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:33.984Z","id":17135,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:36.576Z","id":17192,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:38.903Z","id":17193,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:24:41.498Z","id":17194,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:24:44.068Z","id":17195,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:24:46.313Z","id":17267,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:24:48.620Z","id":17268,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:24:50.937Z","id":17269,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:24:53.260Z","id":17394,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:24:55.621Z","id":17447,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:24:57.797Z","id":17448,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:00.123Z","id":17449,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:02.553Z","id":17450,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:04.924Z","id":17465,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:25:07.430Z","id":17467,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:25:09.780Z","id":17468,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:25:12.185Z","id":17469,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:25:14.526Z","id":17482,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:16.996Z","id":17486,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:19.307Z","id":17487,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:21.695Z","id":17488,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:23.959Z","id":17506,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:25:26.242Z","id":17507,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:25:28.525Z","id":17508,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:25:30.810Z","id":17533,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:25:33.144Z","id":17534,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:25:35.597Z","id":17535,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:25:38.210Z","id":17536,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:25:40.392Z","id":17733,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:42.572Z","id":17734,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:44.806Z","id":17735,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:47.048Z","id":17736,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:25:49.466Z","id":17738,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:25:51.764Z","id":17743,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:25:54.082Z","id":17744,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:25:56.392Z","id":17745,"verdict":"kept","n":12}
+{"t":"2026-05-27T23:25:58.728Z","id":17763,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:01.029Z","id":17764,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:03.220Z","id":17765,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:26:05.445Z","id":17766,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:26:07.781Z","id":17788,"verdict":"kept","n":45}
+{"t":"2026-05-27T23:26:09.840Z","id":17790,"verdict":"kept","n":40}
+{"t":"2026-05-27T23:26:12.078Z","id":17791,"verdict":"kept","n":40}
+{"t":"2026-05-27T23:26:14.284Z","id":17792,"verdict":"kept","n":45}
+{"t":"2026-05-27T23:26:16.527Z","id":17793,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:26:18.752Z","id":17794,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:26:21.112Z","id":17795,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:26:23.355Z","id":17814,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:26:25.695Z","id":17815,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:26:27.987Z","id":17816,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:26:30.470Z","id":17817,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:26:32.859Z","id":17819,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:26:35.107Z","id":17820,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:26:37.339Z","id":17821,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:39.598Z","id":17913,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:41.910Z","id":17914,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:26:44.278Z","id":17915,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:46.498Z","id":17916,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:26:49.273Z","id":18054,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:26:51.589Z","id":18056,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:26:53.924Z","id":18057,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:26:56.228Z","id":18058,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:26:58.693Z","id":18117,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:27:01.102Z","id":18120,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:03.549Z","id":18121,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:05.973Z","id":18122,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:08.213Z","id":18143,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:27:10.452Z","id":18144,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:27:12.633Z","id":18145,"verdict":"kept","n":9}
+{"t":"2026-05-27T23:27:15.031Z","id":18154,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:27:17.365Z","id":18155,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:27:19.664Z","id":18156,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:27:21.824Z","id":18157,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:27:24.081Z","id":18178,"verdict":"kept","n":3}
+{"t":"2026-05-27T23:27:26.333Z","id":18179,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:28.590Z","id":18180,"verdict":"kept","n":3}
+{"t":"2026-05-27T23:27:30.807Z","id":18181,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:33.154Z","id":18225,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:35.493Z","id":18226,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:37.966Z","id":18227,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:40.273Z","id":18272,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:27:42.632Z","id":18318,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:45.008Z","id":18320,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:47.356Z","id":18321,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:27:49.541Z","id":18322,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:27:51.875Z","id":18352,"verdict":"kept","n":3}
+{"t":"2026-05-27T23:27:54.121Z","id":18354,"verdict":"kept","n":3}
+{"t":"2026-05-27T23:27:56.299Z","id":18378,"verdict":"kept","n":1}
+{"t":"2026-05-27T23:27:58.638Z","id":18408,"verdict":"kept","n":2}
+{"t":"2026-05-27T23:28:00.874Z","id":18410,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:28:03.009Z","id":18411,"verdict":"kept","n":4}
+{"t":"2026-05-27T23:28:05.164Z","id":18412,"verdict":"kept","n":2}
+{"t":"2026-05-27T23:28:07.338Z","id":18413,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:09.422Z","id":18414,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:11.539Z","id":18415,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:28:13.912Z","id":18517,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:28:16.133Z","id":18518,"verdict":"kept","n":5}
+{"t":"2026-05-27T23:28:18.451Z","id":18519,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:20.836Z","id":18520,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:23.157Z","id":18533,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:25.372Z","id":18534,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:27.639Z","id":18535,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:29.871Z","id":18536,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:28:32.950Z","id":18697,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:28:35.302Z","id":18698,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:28:37.943Z","id":18699,"verdict":"kept","n":15}
+{"t":"2026-05-27T23:28:40.342Z","id":18700,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:28:42.652Z","id":18703,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:44.873Z","id":18704,"verdict":"kept","n":6}
+{"t":"2026-05-27T23:28:47.102Z","id":18705,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:28:49.377Z","id":18726,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:28:51.610Z","id":18727,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:28:53.850Z","id":18728,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:28:56.278Z","id":18729,"verdict":"kept","n":8}
+{"t":"2026-05-27T23:28:58.450Z","id":18765,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:29:00.651Z","id":18766,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:29:02.877Z","id":18767,"verdict":"kept","n":7}
+{"t":"2026-05-27T23:29:05.703Z","id":18871,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:29:08.292Z","id":18873,"verdict":"kept","n":20}
+{"t":"2026-05-27T23:29:10.520Z","id":18907,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:29:12.772Z","id":18908,"verdict":"kept","n":10}
+{"t":"2026-05-27T23:29:15.036Z","id":18909,"verdict":"kept","n":10}
diff --git a/public/admin/drunk-curator.html b/public/admin/drunk-curator.html
index 30e732f..798fe0d 100644
--- a/public/admin/drunk-curator.html
+++ b/public/admin/drunk-curator.html
@@ -26,7 +26,7 @@
.extracted{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:99;background:#1f6a2c;color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;display:flex;align-items:center;gap:10px;}
.extracted img{height:42px;width:42px;object-fit:contain;background:#fff;border-radius:6px;}
/* right: CSS room setting */
- .room{position:relative;background:#cfc7ba;flex:0 0 auto;}
+ .room{position:relative;background:#cfc7ba;flex:0 0 auto;height:100%;aspect-ratio:1;}
.roomrow{display:flex;gap:8px;align-items:flex-start;height:100%;justify-content:center;}
.roombtns{display:flex;flex-direction:column;gap:8px;padding-top:14px;}
.rb{background:#1d2023;color:var(--ink);border:1px solid #3a3f44;border-radius:9px;padding:11px 12px;font:600 12px sans-serif;cursor:pointer;white-space:nowrap;}
@@ -79,6 +79,12 @@
.rruler.v .rt{left:0;height:1px;width:5px;} .rruler.v .rt.maj{width:9px;}
.rruler .rl{position:absolute;font:800 8px sans-serif;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.9);}
.rruler.h .rl{top:5px;transform:translateX(-50%);} .rruler.v .rl{left:5px;transform:translateY(-50%);}
+ /* manual "mark misaligned" highlighter — admin drags red boxes on the flat tile */
+ .mboxes{position:absolute;inset:0;z-index:5;}
+ .mbox{position:absolute;border:2px solid #ff3b3b;background:rgba(255,59,59,.20);cursor:pointer;border-radius:2px;}
+ .mbox.drawing{background:rgba(255,59,59,.32);pointer-events:none;}
+ .mbox b{position:absolute;top:-1px;left:-1px;background:#ff3b3b;color:#fff;font:800 9px sans-serif;padding:1px 5px;border-radius:3px 0 3px 0;}
+ .mhint{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);z-index:6;pointer-events:none;background:rgba(0,0,0,.55);color:#ffd0d0;font:700 9px sans-serif;padding:2px 7px;border-radius:10px;white-space:nowrap;}
</style>
</head>
<body>
@@ -127,8 +133,31 @@ let scaleInches = snapScale(parseInt(localStorage.getItem('drunk_scale_in'))||36
const WALL_INCHES = 144; // the room pane represents a 12ft × 12ft room (Steve 2026-05-27) — repeat shows at true relative size
const FURN = ['console', 'sofa', 'bed']; // furniture silhouettes the "Furniture" button cycles for staging/scale
let furnIdx = (parseInt(localStorage.getItem('drunk_furn')) || 0) % FURN.length;
-function genFurniture(){ furnIdx = (furnIdx + 1) % FURN.length; localStorage.setItem('drunk_furn', furnIdx);
- const u = document.querySelector('#furn use'); if(u) u.setAttribute('href', '#' + FURN[furnIdx]); }
+// "Furniture" → render a REAL furnished room scene for THIS design via /api/room
+// (ROOM_API photoreal renderer). Cycles room types on repeat clicks; swaps the
+// flat CSS room for the render. Advancing the queue rebuilds the flat room fresh.
+const ROOMTYPES = ['bedroom', 'living_room', 'dining_room', 'office'];
+let roomTypeIdx = 0;
+async function genFurniture(){
+ const d = QUEUE[i], room = document.getElementById('room'); if(!d || !room) return;
+ const rt = ROOMTYPES[roomTypeIdx % ROOMTYPES.length]; roomTypeIdx++;
+ let ov = document.getElementById('roomov');
+ if(!ov){ ov = document.createElement('div'); ov.id = 'roomov';
+ ov.style.cssText = 'position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);color:#fff;font:600 13px sans-serif;text-align:center;padding:12px';
+ room.appendChild(ov); }
+ ov.textContent = '🪑 rendering ' + rt.replace(/_/g,' ') + '… (ROOM_API)';
+ try{
+ const r = await fetch(q('/api/room'), { method:'POST', headers:{'Content-Type':'application/json'},
+ body: JSON.stringify({ design_id: d.id, roomType: rt, patternWidth: scaleInches, patternHeight: scaleInches }) });
+ const j = await r.json();
+ if(!j.ok || !j.image_url) throw new Error(j.error || ('HTTP ' + r.status));
+ room.innerHTML = `<img src="${j.image_url}" style="width:100%;height:100%;object-fit:cover;display:block">`
+ + `<span class="tag" style="bottom:8px;top:auto">🪑 ${rt.replace(/_/g,' ')} · Furniture → another</span>`;
+ }catch(e){
+ ov.innerHTML = '⚠ render failed: ' + String(e.message).slice(0,50) + '<br><span style="font-size:11px;opacity:.8">ROOM_API may be down — flat room kept</span>';
+ setTimeout(()=>document.getElementById('roomov')?.remove(), 4000);
+ }
+}
function setScale(n){
scaleInches = snapScale(parseInt(n)||36);
localStorage.setItem('drunk_scale_in', scaleInches);
@@ -201,6 +230,61 @@ function drawRoomRulers(){
rv.innerHTML=s; }
}
addEventListener('resize',()=>{ if(document.querySelector('.scalewrap')) applyScale(); });
+
+// === Manual "mark misaligned" highlighter ===========================
+// Admin drags a red box on the flat tile over any misaligned/seam-broken area.
+// Each box is saved to bad_examples.boxes (label 'misaligned', auto:false) via the
+// shared annotations endpoint, so it joins the learning corpus. Click a box to
+// remove it. Self-wires through a MutationObserver so it never touches render().
+let curBoxes = [];
+const curDesign = () => (i < QUEUE.length && QUEUE[i]) ? QUEUE[i] : null;
+async function saveBoxes(){
+ const d = curDesign(); if(!d) return;
+ try{ await fetch(q('/api/admin/cactus/'+d.id+'/annotations'),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({boxes:curBoxes})}); flash('🖍'); }
+ catch{ flash('⚠'); }
+}
+function drawMboxes(){
+ const si=document.getElementById('scaleimg'); if(!si) return;
+ let layer=document.getElementById('mboxes');
+ if(!layer){ layer=document.createElement('div'); layer.id='mboxes'; layer.className='mboxes'; si.appendChild(layer); }
+ const manual = curBoxes.filter(b=>!b.auto);
+ layer.innerHTML = manual.map(b=>`<div class="mbox" style="left:${b.x*100}%;top:${b.y*100}%;width:${b.w*100}%;height:${b.h*100}%" title="click to remove"><b>${(b.label||'misaligned').replace(/</g,'')}</b></div>`).join('')
+ + `<div class="mhint">drag to mark misaligned · click a box to remove</div>`;
+ [...layer.querySelectorAll('.mbox')].forEach((el,k)=>el.addEventListener('click',ev=>{
+ ev.stopPropagation(); const target=manual[k]; curBoxes=curBoxes.filter(b=>b!==target); saveBoxes(); drawMboxes();
+ }));
+}
+function startDraw(e){
+ if(e.button!==0) return;
+ const si=document.getElementById('scaleimg'); if(!si) return;
+ if(e.target.closest('.mbox')) return; // clicking an existing box = remove, not draw
+ const rect=si.getBoundingClientRect();
+ const x0=(e.clientX-rect.left)/rect.width, y0=(e.clientY-rect.top)/rect.height;
+ if(x0<0||x0>1||y0<0||y0>1) return;
+ e.preventDefault();
+ const layer=document.getElementById('mboxes')||si;
+ const ghost=document.createElement('div'); ghost.className='mbox drawing'; layer.appendChild(ghost);
+ const mv=ev=>{ const x=(ev.clientX-rect.left)/rect.width, y=(ev.clientY-rect.top)/rect.height;
+ const L=Math.min(x0,x),T=Math.min(y0,y),W=Math.abs(x-x0),H=Math.abs(y-y0);
+ ghost.style.cssText=`left:${L*100}%;top:${T*100}%;width:${W*100}%;height:${H*100}%`; };
+ const up=ev=>{ document.removeEventListener('mousemove',mv); document.removeEventListener('mouseup',up);
+ const x=(ev.clientX-rect.left)/rect.width, y=(ev.clientY-rect.top)/rect.height;
+ const L=Math.max(0,Math.min(x0,x)),T=Math.max(0,Math.min(y0,y));
+ const W=Math.min(1-L,Math.abs(x-x0)),H=Math.min(1-T,Math.abs(y-y0));
+ ghost.remove();
+ if(W>0.02&&H>0.02){ curBoxes.push({x:+L.toFixed(4),y:+T.toFixed(4),w:+W.toFixed(4),h:+H.toFixed(4),label:'misaligned',auto:false}); saveBoxes(); }
+ drawMboxes();
+ };
+ document.addEventListener('mousemove',mv); document.addEventListener('mouseup',up);
+}
+new MutationObserver(()=>{
+ const si=document.getElementById('scaleimg'); if(!si || si.dataset.mwired) return;
+ si.dataset.mwired='1';
+ const d=curDesign();
+ curBoxes = (d && Array.isArray(d.annotations)) ? d.annotations.slice() : [];
+ si.addEventListener('mousedown',startDraw);
+ drawMboxes();
+}).observe(document.getElementById('stage'),{childList:true,subtree:true});
// Move through the queue WITHOUT deciding — lets Steve go back/forward to review
// or fix items. Clamps to [0, length] (length = the cleared screen).
function go(delta){ if(busy) return; const ni=i+delta; if(ni<0||ni>QUEUE.length) return; i=ni; render(); }
diff --git a/server.js b/server.js
index d77cea8..65ca2db 100644
--- a/server.js
+++ b/server.js
@@ -1155,7 +1155,8 @@ app.get('/api/admin/drunk/list', (req, res) => {
: `(category LIKE 'drunk-animals-sample%' OR category='drunk-animals-replfast' OR ((category LIKE 'drunk%' OR category LIKE 'stoned%') AND notes LIKE '%AUTO_HOT_CANDIDATE%')) AND is_published=FALSE AND (user_removed IS NULL OR user_removed=FALSE) AND needs_fixing_at IS NULL AND local_path IS NOT NULL`;
const rawJson = psqlQuery(
"SELECT COALESCE(json_agg(t ORDER BY t.id), '[]'::json) FROM (" +
- "SELECT id, category, generator, left(prompt,260) AS prompt, created_at, room_mockups " +
+ "SELECT id, category, generator, left(prompt,260) AS prompt, created_at, room_mockups, " +
+ "(SELECT be.boxes FROM bad_examples be WHERE be.design_id=all_designs.id LIMIT 1) AS annotations " +
"FROM all_designs WHERE " + where +
" AND local_path NOT LIKE '%midheal_%' AND local_path NOT LIKE '%edgeheal_%' AND local_path NOT LIKE '%smartfix_%'" +
") t;"
← a174bb9 room setting: 12×12ft square room + ft-in rulers framing it
·
back to Wallco Ai
·
room wall: show repeat count + black pinstripe vertical line def6e52 →