{"abstract":"A remote archive reader locates the central directory from a suffix range response: an exhausted backward scan cannot fall through to an unchecked first tail byte.","category":"HTTP ranges","checks":16,"contract":"x has total representation length, requested suffix length and the hex bytes of the suffix response (the last min(total,suffix) bytes). Emit the suffix Range value (null when it would be zero bytes). Scan backward for the end record signature PK\\x05\\x06 whose little-endian comment length makes the 22-byte record plus comment end exactly at the tail end. Reject multi-disk archives (disk or directory disk nonzero, or differing entry counts) and a directory that extends past the end record. A directory starting inside the tail is [\"local\",tail-index,size]; otherwise request only the missing prefix before the tail as [\"fetch\",inclusive range]. Output [suffix-range,plan-or-null].","evaluation_group":"s3-http_ranges-remote-zip-directory","failed_approach":"The partial repair uses import struct\nT=x['total']\nwant=min(T,x['suffix'])\nhead='bytes=-%d'%want if want>0 else None\ndata=bytes.fromhex(x['tail'])\nbase=T-len(data)\np=len(data)-22\nwhile p>0 or len(data)==22:\n    if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n    p-=1\nif p<0: return [head,None]\ndisk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\nif disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\neocd=base+p\nif off+size>eocd: return [head,None]\nif off>=base: return [head,['local',off-base,size]]\nreturn [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]], which still violates the stated contract.","family":"s3-http_ranges-remote-zip-directory-scan-first-offset","id":"FA-27716","implementations":{"attempt":{"sha256":"ca5f878683cbcf8b5dd946c8e54ff546eee7aac3a7861271f51a266dd7c5ec7a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    import struct\n    T=x['total']\n    want=min(T,x['suffix'])\n    head='bytes=-%d'%want if want>0 else None\n    data=bytes.fromhex(x['tail'])\n    base=T-len(data)\n    p=len(data)-22\n    while p>0 or len(data)==22:\n        if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n        p-=1\n    if p<0: return [head,None]\n    disk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\n    if disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\n    eocd=base+p\n    if off+size>eocd: return [head,None]\n    if off>=base: return [head,['local',off-base,size]]\n    return [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('scan-first-offset fixture 0', json.loads(json.dumps(solve({'suffix':64,'tail':'0101010101010101010101010101010101010101434343434343434343434343434343434343504b0506000000000100010012000000140000000000','total':60}))), json.loads(json.dumps(['bytes=-60',['local',20,18]])))\ncheck('scan-first-offset fixture 1', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',['local',0,18]])))\ncheck('scan-first-offset fixture 2', json.loads(json.dumps(solve({'suffix':50,'tail':'43434343434343434343434343434343434300000000000000000000504b0506000000000100010012000000b60300000000','total':1000}))), json.loads(json.dumps(['bytes=-50',['local',0,18]])))\ncheck('scan-first-offset fixture 3', json.loads(json.dumps(solve({'suffix':30,'tail':'4343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-30',['fetch','bytes=960-969']])))\ncheck('scan-first-offset fixture 4', json.loads(json.dumps(solve({'suffix':22,'tail':'504b050600000000010001004e000000840300000000','total':1000}))), json.loads(json.dumps(['bytes=-22',['fetch','bytes=900-977']])))\ncheck('scan-first-offset fixture 5', json.loads(json.dumps(solve({'suffix':25,'tail':'504b050600000000010001004b000000840300000300616263','total':1000}))), json.loads(json.dumps(['bytes=-25',['fetch','bytes=900-974']])))\ncheck('scan-first-offset fixture 6', json.loads(json.dumps(solve({'suffix':80,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000880000001800504b05060000000001000100000000000000000000007a7a','total':200}))), json.loads(json.dumps(['bytes=-80',['local',0,18]])))\ncheck('scan-first-offset fixture 7', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 8', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506010001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 9', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100020012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 10', json.loads(json.dumps(solve({'suffix':100,'tail':'02020202020202020202020202020202020202020202020202020202020202020202020202020202504b05060000000001000100140000001e0000000000','total':62}))), json.loads(json.dumps(['bytes=-62',None])))\ncheck('scan-first-offset fixture 11', json.loads(json.dumps(solve({'suffix':30,'tail':'030303030303030303030303030303030303030303030303030303030303','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 12', json.loads(json.dumps(solve({'suffix':30,'tail':'000000000000000000000000000000000000000000000000000000000000','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 13', json.loads(json.dumps(solve({'suffix':64,'tail':'','total':0}))), json.loads(json.dumps([None,None])))\ncheck('scan-first-offset fixture 14', json.loads(json.dumps(solve({'suffix':64,'tail':'504b0506000000000000000000000000000000000000','total':22}))), json.loads(json.dumps(['bytes=-22',['local',0,0]])))\ncheck('scan-first-offset fixture 15', json.loads(json.dumps(solve({'suffix':32+N,'tail':\"11\"*10+\"504b0506\"+\"00000000\"+\"01000100\"+\"0a000000\"+(468-N).to_bytes(4,\"little\").hex()+(N).to_bytes(2,\"little\").hex()+\"63\"*N,'total':500}))), json.loads(json.dumps([\"bytes=-%d\"%(32+N),['local',0,10]])))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"303e7ef9d29884b978daa829de81e909ee2e21f7687d914b423d6b333828f7d9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    import struct\n    T=x['total']\n    want=min(T,x['suffix'])\n    head='bytes=-%d'%want if want>0 else None\n    data=bytes.fromhex(x['tail'])\n    base=T-len(data)\n    p=len(data)-22\n    while p>0:\n        if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n        p-=1\n    if p<0: return [head,None]\n    disk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\n    if disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\n    eocd=base+p\n    if off+size>eocd: return [head,None]\n    if off>=base: return [head,['local',off-base,size]]\n    return [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('scan-first-offset fixture 0', json.loads(json.dumps(solve({'suffix':64,'tail':'0101010101010101010101010101010101010101434343434343434343434343434343434343504b0506000000000100010012000000140000000000','total':60}))), json.loads(json.dumps(['bytes=-60',['local',20,18]])))\ncheck('scan-first-offset fixture 1', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',['local',0,18]])))\ncheck('scan-first-offset fixture 2', json.loads(json.dumps(solve({'suffix':50,'tail':'43434343434343434343434343434343434300000000000000000000504b0506000000000100010012000000b60300000000','total':1000}))), json.loads(json.dumps(['bytes=-50',['local',0,18]])))\ncheck('scan-first-offset fixture 3', json.loads(json.dumps(solve({'suffix':30,'tail':'4343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-30',['fetch','bytes=960-969']])))\ncheck('scan-first-offset fixture 4', json.loads(json.dumps(solve({'suffix':22,'tail':'504b050600000000010001004e000000840300000000','total':1000}))), json.loads(json.dumps(['bytes=-22',['fetch','bytes=900-977']])))\ncheck('scan-first-offset fixture 5', json.loads(json.dumps(solve({'suffix':25,'tail':'504b050600000000010001004b000000840300000300616263','total':1000}))), json.loads(json.dumps(['bytes=-25',['fetch','bytes=900-974']])))\ncheck('scan-first-offset fixture 6', json.loads(json.dumps(solve({'suffix':80,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000880000001800504b05060000000001000100000000000000000000007a7a','total':200}))), json.loads(json.dumps(['bytes=-80',['local',0,18]])))\ncheck('scan-first-offset fixture 7', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 8', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506010001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 9', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100020012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 10', json.loads(json.dumps(solve({'suffix':100,'tail':'02020202020202020202020202020202020202020202020202020202020202020202020202020202504b05060000000001000100140000001e0000000000','total':62}))), json.loads(json.dumps(['bytes=-62',None])))\ncheck('scan-first-offset fixture 11', json.loads(json.dumps(solve({'suffix':30,'tail':'030303030303030303030303030303030303030303030303030303030303','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 12', json.loads(json.dumps(solve({'suffix':30,'tail':'000000000000000000000000000000000000000000000000000000000000','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 13', json.loads(json.dumps(solve({'suffix':64,'tail':'','total':0}))), json.loads(json.dumps([None,None])))\ncheck('scan-first-offset fixture 14', json.loads(json.dumps(solve({'suffix':64,'tail':'504b0506000000000000000000000000000000000000','total':22}))), json.loads(json.dumps(['bytes=-22',['local',0,0]])))\ncheck('scan-first-offset fixture 15', json.loads(json.dumps(solve({'suffix':32+N,'tail':\"11\"*10+\"504b0506\"+\"00000000\"+\"01000100\"+\"0a000000\"+(468-N).to_bytes(4,\"little\").hex()+(N).to_bytes(2,\"little\").hex()+\"63\"*N,'total':500}))), json.loads(json.dumps([\"bytes=-%d\"%(32+N),['local',0,10]])))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"b7f59391810ca691a30d78ce3e4c26bc3b8951a51407f19269cfbf8b51d45d8b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    import struct\n    T=x['total']\n    want=min(T,x['suffix'])\n    head='bytes=-%d'%want if want>0 else None\n    data=bytes.fromhex(x['tail'])\n    base=T-len(data)\n    p=len(data)-22\n    while p>=0:\n        if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n        p-=1\n    if p<0: return [head,None]\n    disk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\n    if disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\n    eocd=base+p\n    if off+size>eocd: return [head,None]\n    if off>=base: return [head,['local',off-base,size]]\n    return [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('scan-first-offset fixture 0', json.loads(json.dumps(solve({'suffix':64,'tail':'0101010101010101010101010101010101010101434343434343434343434343434343434343504b0506000000000100010012000000140000000000','total':60}))), json.loads(json.dumps(['bytes=-60',['local',20,18]])))\ncheck('scan-first-offset fixture 1', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',['local',0,18]])))\ncheck('scan-first-offset fixture 2', json.loads(json.dumps(solve({'suffix':50,'tail':'43434343434343434343434343434343434300000000000000000000504b0506000000000100010012000000b60300000000','total':1000}))), json.loads(json.dumps(['bytes=-50',['local',0,18]])))\ncheck('scan-first-offset fixture 3', json.loads(json.dumps(solve({'suffix':30,'tail':'4343434343434343504b0506000000000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-30',['fetch','bytes=960-969']])))\ncheck('scan-first-offset fixture 4', json.loads(json.dumps(solve({'suffix':22,'tail':'504b050600000000010001004e000000840300000000','total':1000}))), json.loads(json.dumps(['bytes=-22',['fetch','bytes=900-977']])))\ncheck('scan-first-offset fixture 5', json.loads(json.dumps(solve({'suffix':25,'tail':'504b050600000000010001004b000000840300000300616263','total':1000}))), json.loads(json.dumps(['bytes=-25',['fetch','bytes=900-974']])))\ncheck('scan-first-offset fixture 6', json.loads(json.dumps(solve({'suffix':80,'tail':'434343434343434343434343434343434343504b0506000000000100010012000000880000001800504b05060000000001000100000000000000000000007a7a','total':200}))), json.loads(json.dumps(['bytes=-80',['local',0,18]])))\ncheck('scan-first-offset fixture 7', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 8', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506010001000100010012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 9', json.loads(json.dumps(solve({'suffix':40,'tail':'434343434343434343434343434343434343504b0506000000000100020012000000c00300000000','total':1000}))), json.loads(json.dumps(['bytes=-40',None])))\ncheck('scan-first-offset fixture 10', json.loads(json.dumps(solve({'suffix':100,'tail':'02020202020202020202020202020202020202020202020202020202020202020202020202020202504b05060000000001000100140000001e0000000000','total':62}))), json.loads(json.dumps(['bytes=-62',None])))\ncheck('scan-first-offset fixture 11', json.loads(json.dumps(solve({'suffix':30,'tail':'030303030303030303030303030303030303030303030303030303030303','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 12', json.loads(json.dumps(solve({'suffix':30,'tail':'000000000000000000000000000000000000000000000000000000000000','total':30}))), json.loads(json.dumps(['bytes=-30',None])))\ncheck('scan-first-offset fixture 13', json.loads(json.dumps(solve({'suffix':64,'tail':'','total':0}))), json.loads(json.dumps([None,None])))\ncheck('scan-first-offset fixture 14', json.loads(json.dumps(solve({'suffix':64,'tail':'504b0506000000000000000000000000000000000000','total':22}))), json.loads(json.dumps(['bytes=-22',['local',0,0]])))\ncheck('scan-first-offset fixture 15', json.loads(json.dumps(solve({'suffix':32+N,'tail':\"11\"*10+\"504b0506\"+\"00000000\"+\"01000100\"+\"0a000000\"+(468-N).to_bytes(4,\"little\").hex()+(N).to_bytes(2,\"little\").hex()+\"63\"*N,'total':500}))), json.loads(json.dumps([\"bytes=-%d\"%(32+N),['local',0,10]])))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-http_ranges-remote-zip-directory-scan-first-offset","generated_at":"2026-09-29T14:41:27.635288+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","repair":"Apply the bounded decision exactly: import struct\nT=x['total']\nwant=min(T,x['suffix'])\nhead='bytes=-%d'%want if want>0 else None\ndata=bytes.fromhex(x['tail'])\nbase=T-len(data)\np=len(data)-22\nwhile p>=0:\n    if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n    p-=1\nif p<0: return [head,None]\ndisk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\nif disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\neocd=base+p\nif off+size>eocd: return [head,None]\nif off>=base: return [head,['local',off-base,size]]\nreturn [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]]","root_cause":"The remote-zip-directory-scan-first-offset decision uses import struct\nT=x['total']\nwant=min(T,x['suffix'])\nhead='bytes=-%d'%want if want>0 else None\ndata=bytes.fromhex(x['tail'])\nbase=T-len(data)\np=len(data)-22\nwhile p>0:\n    if data[p:p+4]==b'PK\\x05\\x06' and p+22+int.from_bytes(data[p+20:p+22],'little')==len(data): break\n    p-=1\nif p<0: return [head,None]\ndisk,cddisk,n1,n2,size,off=struct.unpack_from('<HHHHII',data,p+4)\nif disk!=0 or cddisk!=0 or n1!=n2: return [head,None]\neocd=base+p\nif off+size>eocd: return [head,None]\nif off>=base: return [head,['local',off-base,size]]\nreturn [head,['fetch','bytes=%d-%d'%(off,min(base,off+size)-1)]].","sha256":"8a777759bb6add57e08bb22494f546dccd43e4ad7b4dd7a0c143ce7b46553155","title":"A remote archive reader locates the central directory from a suffix range response: an exhausted backward scan cannot fall through to an unchecked first tail byte · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.398,"exit_code":1,"observations":[{"actual":["bytes=-60",["local",20,18]],"check":"scan-first-offset fixture 0","expected":["bytes=-60",["local",20,18]],"passed":true},{"actual":["bytes=-40",["local",0,18]],"check":"scan-first-offset fixture 1","expected":["bytes=-40",["local",0,18]],"passed":true},{"actual":["bytes=-50",["local",0,18]],"check":"scan-first-offset fixture 2","expected":["bytes=-50",["local",0,18]],"passed":true},{"actual":["bytes=-30",["fetch","bytes=960-969"]],"check":"scan-first-offset fixture 3","expected":["bytes=-30",["fetch","bytes=960-969"]],"passed":true},{"actual":["bytes=-22",["fetch","bytes=900-977"]],"check":"scan-first-offset fixture 4","expected":["bytes=-22",["fetch","bytes=900-977"]],"passed":true},{"actual":["bytes=-25",["fetch","bytes=900-974"]],"check":"scan-first-offset fixture 5","expected":["bytes=-25",["fetch","bytes=900-974"]],"passed":true},{"actual":["bytes=-80",["local",0,18]],"check":"scan-first-offset fixture 6","expected":["bytes=-80",["local",0,18]],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 7","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 8","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 9","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-62",null],"check":"scan-first-offset fixture 10","expected":["bytes=-62",null],"passed":true},{"actual":["bytes=-30",null],"check":"scan-first-offset fixture 11","expected":["bytes=-30",null],"passed":true},{"actual":["bytes=-30",["local",0,0]],"check":"scan-first-offset fixture 12","expected":["bytes=-30",null],"passed":false},{"actual":[null,null],"check":"scan-first-offset fixture 13","expected":[null,null],"passed":true},{"actual":["bytes=-22",["local",0,0]],"check":"scan-first-offset fixture 14","expected":["bytes=-22",["local",0,0]],"passed":true},{"actual":["bytes=-33",["local",0,10]],"check":"scan-first-offset fixture 15","expected":["bytes=-33",["local",0,10]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"scan-first-offset fixture 0\", \"actual\": [\"bytes=-60\", [\"local\", 20, 18]], \"expected\": [\"bytes=-60\", [\"local\", 20, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 1\", \"actual\": [\"bytes=-40\", [\"local\", 0, 18]], \"expected\": [\"bytes=-40\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 2\", \"actual\": [\"bytes=-50\", [\"local\", 0, 18]], \"expected\": [\"bytes=-50\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 3\", \"actual\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"expected\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 4\", \"actual\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"expected\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 5\", \"actual\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"expected\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 6\", \"actual\": [\"bytes=-80\", [\"local\", 0, 18]], \"expected\": [\"bytes=-80\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 7\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 8\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 9\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 10\", \"actual\": [\"bytes=-62\", null], \"expected\": [\"bytes=-62\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 11\", \"actual\": [\"bytes=-30\", null], \"expected\": [\"bytes=-30\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 12\", \"actual\": [\"bytes=-30\", [\"local\", 0, 0]], \"expected\": [\"bytes=-30\", null], \"passed\": false}, {\"check\": \"scan-first-offset fixture 13\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 14\", \"actual\": [\"bytes=-22\", [\"local\", 0, 0]], \"expected\": [\"bytes=-22\", [\"local\", 0, 0]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 15\", \"actual\": [\"bytes=-33\", [\"local\", 0, 10]], \"expected\": [\"bytes=-33\", [\"local\", 0, 10]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.039,"exit_code":1,"observations":[{"actual":["bytes=-60",["local",20,18]],"check":"scan-first-offset fixture 0","expected":["bytes=-60",["local",20,18]],"passed":true},{"actual":["bytes=-40",["local",0,18]],"check":"scan-first-offset fixture 1","expected":["bytes=-40",["local",0,18]],"passed":true},{"actual":["bytes=-50",["local",0,18]],"check":"scan-first-offset fixture 2","expected":["bytes=-50",["local",0,18]],"passed":true},{"actual":["bytes=-30",["fetch","bytes=960-969"]],"check":"scan-first-offset fixture 3","expected":["bytes=-30",["fetch","bytes=960-969"]],"passed":true},{"actual":["bytes=-22",["fetch","bytes=900-977"]],"check":"scan-first-offset fixture 4","expected":["bytes=-22",["fetch","bytes=900-977"]],"passed":true},{"actual":["bytes=-25",["fetch","bytes=900-974"]],"check":"scan-first-offset fixture 5","expected":["bytes=-25",["fetch","bytes=900-974"]],"passed":true},{"actual":["bytes=-80",["local",0,18]],"check":"scan-first-offset fixture 6","expected":["bytes=-80",["local",0,18]],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 7","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 8","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 9","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-62",null],"check":"scan-first-offset fixture 10","expected":["bytes=-62",null],"passed":true},{"actual":["bytes=-30",null],"check":"scan-first-offset fixture 11","expected":["bytes=-30",null],"passed":true},{"actual":["bytes=-30",["local",0,0]],"check":"scan-first-offset fixture 12","expected":["bytes=-30",null],"passed":false},{"actual":[null,null],"check":"scan-first-offset fixture 13","expected":[null,null],"passed":true},{"actual":["bytes=-22",["local",0,0]],"check":"scan-first-offset fixture 14","expected":["bytes=-22",["local",0,0]],"passed":true},{"actual":["bytes=-33",["local",0,10]],"check":"scan-first-offset fixture 15","expected":["bytes=-33",["local",0,10]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"scan-first-offset fixture 0\", \"actual\": [\"bytes=-60\", [\"local\", 20, 18]], \"expected\": [\"bytes=-60\", [\"local\", 20, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 1\", \"actual\": [\"bytes=-40\", [\"local\", 0, 18]], \"expected\": [\"bytes=-40\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 2\", \"actual\": [\"bytes=-50\", [\"local\", 0, 18]], \"expected\": [\"bytes=-50\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 3\", \"actual\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"expected\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 4\", \"actual\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"expected\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 5\", \"actual\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"expected\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 6\", \"actual\": [\"bytes=-80\", [\"local\", 0, 18]], \"expected\": [\"bytes=-80\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 7\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 8\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 9\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 10\", \"actual\": [\"bytes=-62\", null], \"expected\": [\"bytes=-62\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 11\", \"actual\": [\"bytes=-30\", null], \"expected\": [\"bytes=-30\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 12\", \"actual\": [\"bytes=-30\", [\"local\", 0, 0]], \"expected\": [\"bytes=-30\", null], \"passed\": false}, {\"check\": \"scan-first-offset fixture 13\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 14\", \"actual\": [\"bytes=-22\", [\"local\", 0, 0]], \"expected\": [\"bytes=-22\", [\"local\", 0, 0]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 15\", \"actual\": [\"bytes=-33\", [\"local\", 0, 10]], \"expected\": [\"bytes=-33\", [\"local\", 0, 10]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.207,"exit_code":0,"observations":[{"actual":["bytes=-60",["local",20,18]],"check":"scan-first-offset fixture 0","expected":["bytes=-60",["local",20,18]],"passed":true},{"actual":["bytes=-40",["local",0,18]],"check":"scan-first-offset fixture 1","expected":["bytes=-40",["local",0,18]],"passed":true},{"actual":["bytes=-50",["local",0,18]],"check":"scan-first-offset fixture 2","expected":["bytes=-50",["local",0,18]],"passed":true},{"actual":["bytes=-30",["fetch","bytes=960-969"]],"check":"scan-first-offset fixture 3","expected":["bytes=-30",["fetch","bytes=960-969"]],"passed":true},{"actual":["bytes=-22",["fetch","bytes=900-977"]],"check":"scan-first-offset fixture 4","expected":["bytes=-22",["fetch","bytes=900-977"]],"passed":true},{"actual":["bytes=-25",["fetch","bytes=900-974"]],"check":"scan-first-offset fixture 5","expected":["bytes=-25",["fetch","bytes=900-974"]],"passed":true},{"actual":["bytes=-80",["local",0,18]],"check":"scan-first-offset fixture 6","expected":["bytes=-80",["local",0,18]],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 7","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 8","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-40",null],"check":"scan-first-offset fixture 9","expected":["bytes=-40",null],"passed":true},{"actual":["bytes=-62",null],"check":"scan-first-offset fixture 10","expected":["bytes=-62",null],"passed":true},{"actual":["bytes=-30",null],"check":"scan-first-offset fixture 11","expected":["bytes=-30",null],"passed":true},{"actual":["bytes=-30",null],"check":"scan-first-offset fixture 12","expected":["bytes=-30",null],"passed":true},{"actual":[null,null],"check":"scan-first-offset fixture 13","expected":[null,null],"passed":true},{"actual":["bytes=-22",["local",0,0]],"check":"scan-first-offset fixture 14","expected":["bytes=-22",["local",0,0]],"passed":true},{"actual":["bytes=-33",["local",0,10]],"check":"scan-first-offset fixture 15","expected":["bytes=-33",["local",0,10]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"scan-first-offset fixture 0\", \"actual\": [\"bytes=-60\", [\"local\", 20, 18]], \"expected\": [\"bytes=-60\", [\"local\", 20, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 1\", \"actual\": [\"bytes=-40\", [\"local\", 0, 18]], \"expected\": [\"bytes=-40\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 2\", \"actual\": [\"bytes=-50\", [\"local\", 0, 18]], \"expected\": [\"bytes=-50\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 3\", \"actual\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"expected\": [\"bytes=-30\", [\"fetch\", \"bytes=960-969\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 4\", \"actual\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"expected\": [\"bytes=-22\", [\"fetch\", \"bytes=900-977\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 5\", \"actual\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"expected\": [\"bytes=-25\", [\"fetch\", \"bytes=900-974\"]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 6\", \"actual\": [\"bytes=-80\", [\"local\", 0, 18]], \"expected\": [\"bytes=-80\", [\"local\", 0, 18]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 7\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 8\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 9\", \"actual\": [\"bytes=-40\", null], \"expected\": [\"bytes=-40\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 10\", \"actual\": [\"bytes=-62\", null], \"expected\": [\"bytes=-62\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 11\", \"actual\": [\"bytes=-30\", null], \"expected\": [\"bytes=-30\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 12\", \"actual\": [\"bytes=-30\", null], \"expected\": [\"bytes=-30\", null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 13\", \"actual\": [null, null], \"expected\": [null, null], \"passed\": true}, {\"check\": \"scan-first-offset fixture 14\", \"actual\": [\"bytes=-22\", [\"local\", 0, 0]], \"expected\": [\"bytes=-22\", [\"local\", 0, 0]], \"passed\": true}, {\"check\": \"scan-first-offset fixture 15\", \"actual\": [\"bytes=-33\", [\"local\", 0, 10]], \"expected\": [\"bytes=-33\", [\"local\", 0, 10]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}