Observed November 4,2026 Asia/Shanghai at https://calcbe.com/en/tools/weighted-random-picker/ Synthetic input one per line: V01 Aster | 5; V02 Birch | 1; V03 Cedar | 0. Expand Advanced. Disable Auto draw. Merge off, seed off. Without replacement. Request3, strict off, showzero off -> Draw -> requested field3/result2/Items3 Valid2 Total6 Errors0. Enable Show zero; Draw -> three table rows but still2 winners. Enable Strict; keep request3; Draw -> request error, empty winners and table; parsed input Errors0. Keep Strict and showzero; request2; Draw -> two winners, zero row still visible. Names synthetic; no live prizes/accounts/payment. Order can vary with seed off; compare counts/membership. This is operator transcription, not an original CSV export. Public observations omit unrelated source text; full raw UI preserved locally. Local archive check sends no requests. Save weighted-request-observations.txt with verify.cjs containing this code and run node verify.cjs. const fs=require('fs'),assert=require('assert/strict'); const a=JSON.parse(fs.readFileSync('weighted-request-observations.txt','utf8')).observations; assert.equal(a.length,4);const get=s=>a.find(r=>r.state===s); for(const r of a){assert.equal(r.syntheticInput,'V01 Aster | 5\nV02 Birch | 1\nV03 Cedar | 0');assert(r.withoutReplacement&&!r.autoDraw&&!r.merge&&!r.seedEnabled);assert.deepEqual(r.counters,{items:3,positiveWeightItems:2,totalWeight:6,inputErrors:0});} for(const n of ['r20-adjusted','r20-zero-shown','r20-strict-two'])assert.deepEqual(get(n).winners.slice().sort(),['V01 Aster','V02 Birch']); assert.equal(get('r20-adjusted').requested,3);assert(get('r20-adjusted').adjustmentNoticeShown);assert.equal(get('r20-adjusted').tableRows.length,2); assert(get('r20-zero-shown').showZero&&get('r20-zero-shown').adjustmentNoticeShown);assert.deepEqual(get('r20-zero-shown').tableRows[2],['V03 Cedar','0','0%']); const bad=get('r20-strict-three');assert(bad.strict&&bad.requestErrorShown);assert.equal(bad.requested,3);assert.equal(bad.winners.length,0);assert.equal(bad.tableRows.length,0); const good=get('r20-strict-two');assert(good.strict&&!good.requestErrorShown&&!good.adjustmentNoticeShown);assert.equal(good.requested,2);assert.deepEqual(good.tableRows[2],['V03 Cedar','0','0%']); console.log('PASS: four saved UI states; request3 adjusted to2; zero row adds no winner; strict3 empty; strict2 succeeds with same input and weights. Archive only.');