diff --git a/experiments/core/line_order/CMakeLists.txt b/experiments/core/line_order/CMakeLists.txt index 645d020d..fc6e9ded 100644 --- a/experiments/core/line_order/CMakeLists.txt +++ b/experiments/core/line_order/CMakeLists.txt @@ -26,3 +26,18 @@ if(MSVC) else() target_compile_options(r164_probe PRIVATE -Wall -Wextra -Wpedantic) endif() + +# A separate immutable-search recipe; the original eighteen lookup cases stay +# in r164_probe. Both exact generated callers remain compiler dependencies. +add_executable(r164_static_search_cost EXCLUDE_FROM_ALL search_cost.cpp + "${R164_SELECTION_HEADER}" "${R164_SEARCH_HEADER}") +target_include_directories(r164_static_search_cost PRIVATE . ..) +target_compile_definitions(r164_static_search_cost PRIVATE + "R164_SELECTION_HEADER=\"${R164_SELECTION_HEADER}\"" + "R164_SEARCH_HEADER=\"${R164_SEARCH_HEADER}\"") +target_compile_features(r164_static_search_cost PRIVATE cxx_std_17) +if(MSVC) + target_compile_options(r164_static_search_cost PRIVATE /W4 /utf-8) +else() + target_compile_options(r164_static_search_cost PRIVATE -Wall -Wextra -Wpedantic) +endif() diff --git a/experiments/core/line_order/prepare_search_cost.py b/experiments/core/line_order/prepare_search_cost.py new file mode 100644 index 00000000..addb5566 --- /dev/null +++ b/experiments/core/line_order/prepare_search_cost.py @@ -0,0 +1,139 @@ +"""Pin a separate four-process immutable Search recipe; never build or run it.""" +from __future__ import annotations +import argparse +import ast +import hashlib +import json +from pathlib import Path +import shutil +import sys +from prepare import HERE, PRODUCT, ROOT, generated_sources, git, product, require + +BASE = "a8b338b4f5f96e72eba00a5e495fb8dcb85cd0d3" +STAGES = ["cold_absent_start", "cold_absent_step", "warm_needle_start", + "warm_needle_step", "last_match", "navigate_no_wrap"] + + +def identity(path): + data = Path(path).read_bytes() + return {"bytes": len(data), "sha256": hashlib.sha256(data).hexdigest()} + + +def same_types(actual, expected): + if type(actual) is not type(expected): + return False + if isinstance(expected, dict): + return set(actual) == set(expected) and all(same_types(actual[k], v) for k, v in expected.items()) + if isinstance(expected, list): + return len(actual) == len(expected) and all(same_types(a, b) for a, b in zip(actual, expected)) + return actual == expected + + +def bounds(history): + n = history + 6 + work = 10 * n - 1 + calls = (work + 63) // 64 + lookups = 23 * n + 4 * calls + 152 + # Ten work units per non-final row. A step beginning inside a loaded + # row validates it once; the persistent first row costs one prune probe. + loaded_checks = [64*k//10+1 for k in range(calls) if (64*k) % 10] + final_probe = int(work % 64 != 0) + return dict(retained_rows=n, bytes_per_scan=8*n-1, work_per_scan=work, + step_calls_per_scan=calls, lookups_per_sample_upper_bound=lookups, + locate_calls_per_scan=3*n-2+final_probe+calls-1+len(loaded_checks), + scan_probes_per_scan=3*(n*(n+1)//2)-n-1+final_probe*n+calls-1+sum(loaded_checks), + last_match_lookups=n+5, navigate_lookups=16*(n+9)+1, + scan_last_match_probes=n*(n+1)//2+5*n, + scan_navigate_probes=16*(n*(n+1)//2)+7*sum(j*(n-1)//15+1 for j in range(16))+33*n, + scan_probes_per_process_upper_bound=4*lookups*n, + lazy_lookup_probes_per_process_upper_bound=4*lookups*((n-1).bit_length()+1)) + + +def recipe(): + return dict(screen_rows=6, columns=8, histories=[100, 1000], hit_count=16, + hit_rank="floor(j*(N-1)/15), j=0..15", hit_text="needle.", other_text="..x....", + swap_visible_rows=[2, 3], sorted_proven=False, order_revision=1, + immutable=True, notify_change_calls=0, step_budget=64, result_limit=64, + case_sensitive=True, queries=["absent!", "needle"], samples=[-1, 0, 1, 2], + fresh_adapter_each_sample=True, reuse_adapter_between_queries=True, + stages=STAGES, fixture_rows=1, stage_rows_per_process=24, + match_index=15, navigation="next; anchor last row col7; no wrap; no result", + bounds={str(h): bounds(h) for h in (100, 1000)}, rss_bytes=None, + counter_scope="lookup comparisons/visits; excludes table traversal/sort/unique check", + time_scope="start call; sum/max step calls; one match; one navigate; counters included; literal oracle/fixture/JSON/object destruction excluded") + + +def cases(): + return [dict(id=f"static-search-{adapter}-{h}", adapter=adapter, history=h, + arguments=["--static-search-cost", adapter, str(h), "{permit}"], process_timeout_seconds=10) + for adapter in ("scan", "lazy_table") for h in (100, 1000)] + + +def source_files(): + return sorted([p.relative_to(ROOT).as_posix() for p in HERE.iterdir() if p.is_file()] + + ["experiments/core/" + name for name in PRODUCT]) + + +def bound_file(path): + path = Path(path).resolve(strict=True) + require(path.is_file(), "A real tool file is required") + return {"path": str(path), **identity(path)} + + +def static_check(): + for name in PRODUCT: + product(name) + generated = generated_sources() # The published generator/Search transformation is unchanged. + for path in HERE.glob("*.py"): + ast.parse(path.read_text(encoding="utf-8"), filename=str(path)) + cmake = (HERE / "CMakeLists.txt").read_text(encoding="utf-8") + require("add_executable(r164_static_search_cost EXCLUDE_FROM_ALL" in cmake, "Separate excluded target missing") + require(cmake.index('set(R164_SEARCH_HEADER ') < cmake.index('add_executable(r164_static_search_cost '), "Header binding must precede target") + require("static_search_cost" not in (ROOT / "CMakeLists.txt").read_text(encoding="utf-8"), "Root build must not include this experiment") + return generated + + +def materialize(destination, compiler, cmake): + generated = static_check() + require(not git("status", "--porcelain", "--", "experiments/core/line_order").strip(), "Commit reviewed preparation sources before freezing a plan") + require(destination.is_relative_to(ROOT / "local") and not destination.exists(), "New local preparation directory required") + tools = {"python": bound_file(sys.executable), "compiler": bound_file(compiler), "cmake": bound_file(cmake)} + headers = destination / "generated" + headers.mkdir(parents=True) + for name, text in generated.items(): + (headers / name).write_bytes(text.encode("utf-8")) + head = git("rev-parse", "HEAD").decode().strip() + plan = dict(schema="termforge-r164-static-search-cost-plan-v1", base_commit=BASE, source_commit=head, + execution_authorized=False, actual_runs=0, authorized_cases=[], recipe=recipe(), cases=cases(), + maximum_attempts_per_case=1, maximum_batch_seconds=50, whole_batch_bound_seconds=None, + source_identity={name: identity(ROOT / name) for name in source_files()}, + generated_directory=str(headers), generated_headers={name: bound_file(headers / name) for name in generated}, + tools=tools, actual_executable={"path": None, "bytes": None, "sha256": None, "observed": False}, + build_evidence=None, output_directory=None, attempt_marker=None, + whole_lifecycle_hard_bound_seconds=None, product_acceptance=None, search_cost_result=None) + path = destination / "false-plan.json" + path.write_text(json.dumps(plan, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + return {"plan": str(path), **identity(path), "source_commit": head, "execution_authorized": False, + "target_compiled": False, "target_runs": 0} + + +def main(): + cli = argparse.ArgumentParser(description=__doc__) + cli.add_argument("--materialize", type=Path) + cli.add_argument("--compiler", type=Path) + cli.add_argument("--cmake", type=Path) + args = cli.parse_args() + if args.materialize: + require(args.compiler is not None, "Select the compiler file explicitly; no implicit version fallback") + cmake = args.cmake or shutil.which("cmake") + require(cmake is not None, "Select the actual CMake file") + print(json.dumps(materialize(args.materialize.resolve(), args.compiler, cmake))) + else: + generated = static_check() + print(json.dumps({"python_ast": "parsed", "generated_sha256": { + name: hashlib.sha256(text.encode()).hexdigest() for name, text in generated.items()}, + "bounds": {str(h): bounds(h) for h in (100, 1000)}, "target_compiled": False, "target_runs": 0})) + + +if __name__ == "__main__": + main() diff --git a/experiments/core/line_order/run_search_cost.py b/experiments/core/line_order/run_search_cost.py new file mode 100644 index 00000000..e63b556c --- /dev/null +++ b/experiments/core/line_order/run_search_cost.py @@ -0,0 +1,210 @@ +"""Run one separately authorized fixed static-Search batch; never build it.""" +from __future__ import annotations +import argparse +import hashlib +import json +import os +from pathlib import Path +import secrets +import subprocess +import sys +import time +from prepare_search_cost import (BASE, ROOT, STAGES, bounds, cases, generated_sources, + git, identity, recipe, require, same_types, source_files) + + +def check_file(value): + require(isinstance(value, dict) and set(value) == {"path", "bytes", "sha256"}, "Frozen file identity required") + require(type(value["bytes"]) is int and value["bytes"] >= 0 and isinstance(value["sha256"], str), "Frozen file types differ") + path = value["path"] + require(isinstance(path, str) and Path(path).is_absolute(), "Actual absolute file path required") + path = Path(path).resolve(strict=True) + require(path.is_file() and identity(path) == {k: value[k] for k in ("bytes", "sha256")}, "Frozen file bytes differ") + return path + + +def verify_inputs(plan, path, original): + require(path.read_bytes() == original, "Plan bytes changed") + require(git("rev-parse", "HEAD").decode().strip() == plan["source_commit"], "Source HEAD changed") + require(set(plan["source_identity"]) == set(source_files()), "Source closure differs") + for name, value in plan["source_identity"].items(): + require(same_types(value, identity(ROOT / name)), "Source identity/type differs: " + name) + generated = generated_sources() + require(isinstance(plan["generated_directory"], str) and Path(plan["generated_directory"]).is_absolute(), "Generated directory must be absolute") + directory = Path(plan["generated_directory"]).resolve(strict=True) + require(directory.is_relative_to(ROOT / "local") and directory.is_dir(), "Generated directory outside local") + require(set(plan["generated_headers"]) == set(generated), "Both exact generated callers are required") + for name, expected in plan["generated_headers"].items(): + require(check_file(expected) == directory / name, "Generated header absolute path differs") + require(identity(directory / name) == {"bytes": len(generated[name].encode()), + "sha256": hashlib.sha256(generated[name].encode()).hexdigest()}, "Published generated Search seam differs") + require(set(plan["tools"]) == {"python", "cmake", "compiler"}, "Tool closure differs") + for tool in plan["tools"].values(): + check_file(tool) + require(Path(sys.executable).resolve() == Path(plan["tools"]["python"]["path"]).resolve(), "Python selection differs") + binary = plan["actual_executable"] + require(isinstance(binary, dict) and set(binary) == {"path", "bytes", "sha256", "observed"} and binary["observed"] is True, + "Actual compiled executable is unobserved") + executable = check_file({k: binary[k] for k in ("path", "bytes", "sha256")}) + check_file(plan["build_evidence"]) + return executable + + +def load_plan(path): + original = path.read_bytes() + plan = json.loads(original) + require(plan.get("execution_authorized") is True, "False plan rejected before any attempt/output") + require(plan.get("schema") == "termforge-r164-static-search-cost-plan-v1" and plan.get("base_commit") == BASE, "Wrong static Search plan") + require(type(plan.get("actual_runs")) is int and plan["actual_runs"] == 0, "Plan already executed or invalid count") + require(same_types(plan.get("recipe"), recipe()) and same_types(plan.get("cases"), cases()), "Recipe/types/case order differ") + require(plan.get("authorized_cases") == [case["id"] for case in cases()], "Exactly the fixed four cases in order are required") + for key, expected in (("maximum_attempts_per_case", 1), ("maximum_batch_seconds", 50), ("whole_batch_bound_seconds", 50)): + require(type(plan.get(key)) is int and plan[key] == expected, "Fixed attempt/deadline contract differs") + require(plan.get("whole_lifecycle_hard_bound_seconds") is None and plan.get("product_acceptance") is None and + plan.get("search_cost_result") is None, "Preparation cannot contain acceptance/results or a whole-lifecycle claim") + executable = verify_inputs(plan, path, original) + locations = [] + for key in ("output_directory", "attempt_marker"): + value = plan.get(key) + require(isinstance(value, str) and Path(value).is_absolute(), "New absolute output/marker required") + value = Path(value).resolve() + require(value.is_relative_to(ROOT / "local") and not value.exists(), "Output/attempt must be new under local") + require(not value.is_relative_to(Path(plan["generated_directory"]).resolve()) and not value.is_relative_to(executable.parent), + "Output/attempt cannot overlap generated headers or the runtime") + locations.append(value) + output, marker = locations + require(output != marker and not output.is_relative_to(marker) and not marker.is_relative_to(output), "Attempt must be separate from output") + return plan, original, executable, output, marker + + +def validate_output(stdout, stderr, case): + require(stderr == b"" and len(stdout) <= 1024*1024, "Unexpected stderr or oversized protocol") + rows = [json.loads(line) for line in stdout.decode("ascii").splitlines()] + require(len(rows) == 25 and all(isinstance(row, dict) for row in rows), "One fixture and 24 stage rows are required") + fixture = rows[0] + h, adapter = case["history"], case["adapter"] + b = bounds(h); n = b["retained_rows"] + require(set(fixture) == {"schema", "adapter", "history", "retained_rows", "epoch", "order_revision", "sorted_proven", "rows", "hit_ranks", "oracle_ranges", "rss_bytes"}, "Fixture fields differ") + # This fixture never resets or switches buffers after Screen's initial epoch zero. + require(fixture["schema"] == "termforge-r164-static-search-fixture-v1" and fixture["adapter"] == adapter and + type(fixture["history"]) is int and fixture["history"] == h and type(fixture["retained_rows"]) is int and + fixture["retained_rows"] == n and type(fixture["epoch"]) is int and fixture["epoch"] == 0 and + type(fixture["order_revision"]) is int and fixture["order_revision"] == 1 and fixture["sorted_proven"] is False and + fixture["rss_bytes"] is None, "Fixture identity/frame contract differs") + identities = fixture["rows"] + require(isinstance(identities, list) and len(identities) == n and all(isinstance(row, list) and len(row) == 2 and + all(type(value) is int and value > 0 for value in row) for row in identities), "Real row identity snapshot differs") + ids = [row[0] for row in identities] + require(len(set(ids)) == n and ids != sorted(ids), "Fixture identities are not unique/unordered") + ordered = ids.copy(); ordered[h+2], ordered[h+3] = ordered[h+3], ordered[h+2] + require(ordered == sorted(ordered), "Fixture contains an unplanned identity permutation") + ranks = [j*(n-1)//15 for j in range(16)] + require(same_types(fixture["hit_ranks"], ranks), "Fixed hit layout differs") + expected = [[*identities[rank], 0, fixture["epoch"], *identities[rank], 6, fixture["epoch"]] for rank in ranks] + require(same_types(fixture["oracle_ranges"], expected), "Independent physical-rank result oracle differs") + numeric = {"history", "sample", "elapsed_ns", "step_calls", "work_used", "bytes_scanned", "rows_loaded", "lookups", "probes", "rebuilds", "table_payload_bytes", "search_status"} + required = numeric | {"schema", "adapter", "stage", "max_step_ns", "result_ranges", "oracle_passed", "rss_bytes"} + for sample_index, sample in enumerate((-1, 0, 1, 2)): + sample_rows = rows[1+sample_index*6:1+(sample_index+1)*6] + for stage_index, (row, stage) in enumerate(zip(sample_rows, STAGES)): + require(set(row) == required and all(type(row[name]) is int for name in numeric), "Stage fields/numeric types differ") + require(row["schema"] == "termforge-r164-static-search-stage-v1" and row["adapter"] == adapter and + row["history"] == h and row["sample"] == sample and row["stage"] == stage and + row["oracle_passed"] is True and row["rss_bytes"] is None, "Stage identity/order/oracle failed") + require(all(row[name] >= 0 for name in numeric - {"sample"}), "Negative timing/counter") + is_scan = stage.endswith("_step") + require(row["search_status"] == (1 if stage.endswith("_start") else 2), "Search did not preserve running/complete status") + require((type(row["max_step_ns"]) is int and 0 <= row["max_step_ns"] <= row["elapsed_ns"]) if is_scan else row["max_step_ns"] is None, + "Maximum-step endpoint differs") + require([row[k] for k in ("step_calls", "work_used", "bytes_scanned", "rows_loaded")] == + ([b["step_calls_per_scan"], b["work_per_scan"], b["bytes_per_scan"], n] if is_scan else [0, 0, 0, 0]), "Step/work/byte/row oracle differs") + results = expected if stage == "warm_needle_step" else [expected[-1]] if stage == "last_match" else [] + require(same_types(row["result_ranges"], results), "Actual result ranges/navigation differ from literal oracle") + require(row["rebuilds"] == (1 if adapter == "lazy_table" and stage_index == 1 else 0), "Cold/warm table state differs") + require(row["table_payload_bytes"] == 0 if adapter == "scan" or stage_index == 0 else row["table_payload_bytes"] >= 16*n, + "Position-table payload does not match cold/warm state") + if stage.endswith("_start"): + require(row["lookups"] == 0 and row["probes"] == 0, "Start unexpectedly located rows") + if is_scan: + require(row["lookups"] == b["locate_calls_per_scan"], "Full-scan locate-call oracle differs") + if adapter == "scan": + require(row["probes"] == b["scan_probes_per_scan"], "Full-scan Scan probe oracle differs") + if stage in ("last_match", "navigate_no_wrap"): + key = "last_match" if stage == "last_match" else "navigate" + require(row["lookups"] == b[key+"_lookups"], "Validation/navigation locate-call oracle differs") + if adapter == "scan": + require(row["probes"] == b["scan_"+key+"_probes"], "Quadratic Scan probe oracle differs") + require(sample_rows[1]["lookups"] == sample_rows[3]["lookups"] and sample_rows[1]["probes"] == sample_rows[3]["probes"], + "Cold miss and warm hit scanned different row-order work") + require(len({row["table_payload_bytes"] for row in sample_rows[1:]}) == 1, "Immutable snapshot changed table payload") + lookups = sum(row["lookups"] for row in sample_rows) + probes = sum(row["probes"] for row in sample_rows) + require(lookups <= b["lookups_per_sample_upper_bound"], "Static locate-call bound exceeded") + per_lookup = n if adapter == "scan" else (n-1).bit_length()+1 + require(probes <= lookups*per_lookup, "Static lookup-probe bound exceeded") + + +def main(): + cli = argparse.ArgumentParser(description=__doc__) + cli.add_argument("--plan", required=True, type=Path) + args = cli.parse_args() + path = args.plan.resolve(strict=True) + plan, original, executable, output, marker = load_plan(path) + marker.parent.mkdir(parents=True, exist_ok=True) + with marker.open("x", encoding="ascii") as handle: + handle.write(hashlib.sha256(original).hexdigest() + "\n") + output.mkdir(parents=True) + (output / "authorized-plan.json").write_bytes(original) + began = time.monotonic() + batch = {"schema": "termforge-r164-static-search-batch-v1", "source_commit": plan["source_commit"], + "plan_sha256": hashlib.sha256(original).hexdigest(), "cases": [], "diagnostic_complete": False, + "product_acceptance": None, "whole_lifecycle_hard_bound_seconds": None} + permit = secrets.token_hex(16) + environment = dict(os.environ, TERMFORGE_R164_STATIC_SEARCH_COST_AUTHORIZED=permit) + try: + for case in cases(): + verify_inputs(plan, path, original) + remaining = 50 - (time.monotonic() - began) + require(remaining > 0, "Fixed batch deadline elapsed") + command = [str(executable), *[part.replace("{permit}", permit) for part in case["arguments"]]] + stem = output / case["id"] + stem.with_suffix(".command.json").write_text(json.dumps({"command": command, "cwd": str(ROOT)}) + "\n", encoding="utf-8") + started = time.monotonic() + try: + result = subprocess.run(command, cwd=ROOT, env=environment, capture_output=True, timeout=min(10, remaining)) + stdout, stderr, code, timeout = result.stdout, result.stderr, result.returncode, False + except subprocess.TimeoutExpired as error: + stdout, stderr, code, timeout = error.stdout or b"", error.stderr or b"", None, True + stem.with_suffix(".stdout.log").write_bytes(stdout) + stem.with_suffix(".stderr.log").write_bytes(stderr) + batch["cases"].append({"case": case["id"], "exit_code": code, "timed_out": timeout, + "elapsed_seconds": time.monotonic()-started, "stdout": identity(stem.with_suffix(".stdout.log")), + "stderr": identity(stem.with_suffix(".stderr.log"))}) + verify_inputs(plan, path, original) + require(not timeout and code == 0, "Target timeout/failure; stop without retry") + validate_output(stdout, stderr, case) + verify_inputs(plan, path, original) + require(time.monotonic()-began <= 50, "Fixed batch deadline exceeded") + batch["diagnostic_complete"] = True + except Exception as error: + batch["error"] = str(error) + finally: + try: + verify_inputs(plan, path, original) + batch["post_inputs_unchanged"] = True + except Exception as error: + batch["post_inputs_unchanged"] = False + batch["post_input_error"] = str(error) + batch["diagnostic_complete"] = False + batch["elapsed_seconds"] = time.monotonic()-began + (output / "batch.json").write_text(json.dumps(batch, indent=2) + "\n", encoding="utf-8") + print(json.dumps(batch)) + return 0 if batch["diagnostic_complete"] else 1 + + +if __name__ == "__main__": + try: + raise SystemExit(main()) + except (ValueError, OSError, KeyError, TypeError) as error: + print(json.dumps({"status": "rejected", "error": str(error)}), file=sys.stderr) + raise SystemExit(1) diff --git a/experiments/core/line_order/search_cost.cpp b/experiments/core/line_order/search_cost.cpp new file mode 100644 index 00000000..488cadaa --- /dev/null +++ b/experiments/core/line_order/search_cost.cpp @@ -0,0 +1,197 @@ +// Fixed immutable-snapshot Search diagnostic. No production parser/UI entry. +#include "document.hpp" +#if !defined(R164_SELECTION_HEADER) || !defined(R164_SEARCH_HEADER) +#error "Bind the reviewed absolute generated caller headers through CMake" +#endif +#include R164_SELECTION_HEADER +#include R164_SEARCH_HEADER +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace termforge; +namespace order = termforge::line_order; +using Clock = std::chrono::steady_clock; +static constexpr size_t step_budget = 64, hit_count = 16, result_limit = 64; +static void check(bool value, const char* reason) { + if (!value) throw std::runtime_error(reason); +} +static long long elapsed(Clock::time_point start) { + return std::chrono::duration_cast(Clock::now() - start).count(); +} +static void flush_output() { + std::cout.flush(); check(static_cast(std::cout), "static Search evidence output failed"); +} +struct Fixture { + Screen screen; + std::vector hits; + TextPosition after_last; + explicit Fixture(size_t history) : screen(6, 8, history) { + const auto n = history + 6; + for (size_t rank = 0; rank < n; ++rank) { + bool hit = false; + for (size_t j = 0; j < hit_count; ++j) hit = hit || rank == j * (n - 1) / 15; + screen.move(screen.row, 0); + for (const unsigned char byte : std::string_view(hit ? "needle." : "..x....")) + screen.put(byte, std::string(1, static_cast(byte))); + if (rank + 1 < n) screen.newline(); + } + // These two visible rows are non-hits at both fixed history sizes. + std::swap(screen.lines[2], screen.lines[3]); + check(screen.history.size() == history && screen.retained_size() == n, "fixture retained shape differs"); + std::vector ids; + for (size_t rank = 0; rank < n; ++rank) { + const auto& row = screen.retained_line(rank); + const auto projected = project_line(row); + bool hit = false; + for (size_t j = 0; j < hit_count; ++j) hit = hit || rank == j * (n - 1) / 15; + check(projected.text == (hit ? "needle." : "..x....") && projected.spans.size() == 7, + "literal fixture text/projection differs"); + check(row.id && row.version && row.ending == (rank + 1 < n ? LineEnding::hard_break : LineEnding::none), + "literal fixture identity/hard-boundary differs"); + for (size_t column = 0; column < 7; ++column) { + const auto& span = projected.spans[column]; + check(span.byte_begin == column && span.byte_end == column + 1 && + span.column_begin == column && span.column_end == column + 1, "literal ASCII cell oracle differs"); + } + ids.push_back(row.id); + if (hit) hits.push_back({{row.id, row.version, 0, screen.buffer_epoch()}, + {row.id, row.version, 6, screen.buffer_epoch()}}); + } + check(hits.size() == hit_count && !std::is_sorted(ids.begin(), ids.end()), "fixture is not the fixed unordered snapshot"); + std::sort(ids.begin(), ids.end()); + check(std::adjacent_find(ids.begin(), ids.end()) == ids.end(), "fixture identities are not unique"); + const auto& last = screen.retained_line(n - 1); + after_last = {last.id, last.version, 7, screen.buffer_epoch()}; + } +}; +static void range_json(const TextRange& range) { + const auto& a = range.begin; const auto& b = range.end; + std::cout << '[' << a.line_id << ',' << a.version << ',' << a.column << ',' << a.epoch << ',' + << b.line_id << ',' << b.version << ',' << b.column << ',' << b.epoch << ']'; +} +static bool same_ranges(const std::vector& actual, const std::vector& expected) { + if (actual.size() != expected.size()) return false; + for (size_t i = 0; i < actual.size(); ++i) + if (actual[i].range.begin != expected[i].begin || actual[i].range.end != expected[i].end) return false; + return true; +} +static void fixture_json(const Fixture& fixture, const char* adapter, size_t history) { + std::cout << "{\"schema\":\"termforge-r164-static-search-fixture-v1\",\"adapter\":\"" << adapter + << "\",\"history\":" << history << ",\"retained_rows\":" << fixture.screen.retained_size() + << ",\"epoch\":" << fixture.screen.buffer_epoch() << ",\"order_revision\":1,\"sorted_proven\":false,\"rows\":["; + for (size_t i = 0; i < fixture.screen.retained_size(); ++i) { + const auto& row = fixture.screen.retained_line(i); + if (i) std::cout << ','; + std::cout << '[' << row.id << ',' << row.version << ']'; + } + std::cout << "],\"hit_ranks\":["; + for (size_t j = 0; j < hit_count; ++j) { + if (j) std::cout << ','; + std::cout << j * (fixture.screen.retained_size() - 1) / 15; + } + std::cout << "],\"oracle_ranges\":["; + for (size_t j = 0; j < fixture.hits.size(); ++j) { if (j) std::cout << ','; range_json(fixture.hits[j]); } + std::cout << "],\"rss_bytes\":null}\n"; flush_output(); +} +struct Work { + long long ns = 0, max_step_ns = -1; + size_t calls = 0, units = 0, bytes = 0, rows = 0; + bool accepted = true; +}; +template static Work scan(R164Search& search, const order::Document& doc, + uint64_t generation, size_t maximum_calls) { + Work work; work.max_step_ns = 0; + while (search.status() == SearchStatus::running && work.calls < maximum_calls) { + const auto began = Clock::now(); + const auto progress = search.step(doc, generation, step_budget); + const auto ns = elapsed(began); + work.ns += ns; work.max_step_ns = (std::max)(work.max_step_ns, ns); ++work.calls; + work.units += progress.work_used; work.bytes += progress.bytes_scanned; work.rows += progress.rows_loaded; + work.accepted = work.accepted && progress.accepted && progress.work_used > 0 && progress.work_used <= step_budget; + if (!work.accepted) break; + } + return work; +} +static void stage_json(const char* adapter, size_t history, int sample, const char* stage, const Work& work, + const order::Counters& before, const order::Counters& after, SearchStatus status, + const std::vector& results, bool oracle) { + std::cout << "{\"schema\":\"termforge-r164-static-search-stage-v1\",\"adapter\":\"" << adapter + << "\",\"history\":" << history << ",\"sample\":" << sample << ",\"stage\":\"" << stage + << "\",\"elapsed_ns\":" << work.ns << ",\"max_step_ns\":"; + if (work.max_step_ns < 0) std::cout << "null"; else std::cout << work.max_step_ns; + std::cout << ",\"step_calls\":" << work.calls << ",\"work_used\":" << work.units << ",\"bytes_scanned\":" << work.bytes + << ",\"rows_loaded\":" << work.rows << ",\"lookups\":" << after.lookups - before.lookups + << ",\"probes\":" << after.probes - before.probes << ",\"rebuilds\":" << after.rebuilds - before.rebuilds + << ",\"table_payload_bytes\":" << after.table_payload_bytes + << ",\"search_status\":" << static_cast(status) << ",\"result_ranges\":["; + for (size_t i = 0; i < results.size(); ++i) { if (i) std::cout << ','; range_json(results[i].range); } + std::cout << "],\"oracle_passed\":" << (oracle ? "true" : "false") << ",\"rss_bytes\":null}\n"; + flush_output(); check(oracle, "static Search stage oracle/bound failed; retain raw and stop"); +} +template static void run(size_t history, const char* name) { + const Fixture fixture(history); + const auto n = fixture.screen.retained_size(), units = 10 * n - 1, calls = (units + step_budget - 1) / step_budget; + const auto lookup_bound = 23 * n + 4 * calls + 152; + fixture_json(fixture, name, history); + for (int sample = -1; sample < 3; ++sample) { + order::Source source(fixture.screen); source.order_revision = 1; source.sorted_proven = false; + Adapter adapter(source); order::Document doc(source, adapter); + R164Search absent, needle; + for (int query = 0; query < 2; ++query) { + auto& search = query ? needle : absent; + std::string text = query ? "needle" : "absent!"; + const auto before_start = adapter.counts; auto began = Clock::now(); + const auto generation = search.start(doc, std::move(text), {true, result_limit}); + Work start; start.ns = elapsed(began); + stage_json(name, history, sample, query ? "warm_needle_start" : "cold_absent_start", start, + before_start, adapter.counts, search.status(), search.matches(), + search.status() == SearchStatus::running && search.matches().empty()); + const auto before_scan = adapter.counts; + const auto work = scan(search, doc, generation, calls); + const bool correct = work.accepted && work.calls == calls && work.units == units && work.bytes == 8 * n - 1 && + work.rows == n && search.status() == SearchStatus::complete && + same_ranges(search.matches(), query ? fixture.hits : std::vector{}); + stage_json(name, history, sample, query ? "warm_needle_step" : "cold_absent_step", work, + before_scan, adapter.counts, search.status(), search.matches(), correct); + } + auto before = adapter.counts; auto began = Clock::now(); + const auto last = needle.match(doc, hit_count - 1); + Work match; match.ns = elapsed(began); + const std::vector returned = last ? std::vector{*last} : std::vector{}; + stage_json(name, history, sample, "last_match", match, before, adapter.counts, needle.status(), returned, + same_ranges(returned, {fixture.hits.back()}) && adapter.counts.lookups - before.lookups == n + 5); + before = adapter.counts; began = Clock::now(); + const auto navigation = needle.navigate_no_wrap(doc, SearchDirection::next, fixture.after_last); + Work navigate; navigate.ns = elapsed(began); + const std::vector navigated = navigation ? std::vector{navigation->match} : std::vector{}; + stage_json(name, history, sample, "navigate_no_wrap", navigate, before, adapter.counts, needle.status(), navigated, + !navigation && adapter.counts.lookups - before.lookups == 16 * (n + 9) + 1 && adapter.counts.lookups <= lookup_bound && + adapter.counts.probes <= lookup_bound * n); + } + // Object destruction, fixture creation, literal checks and JSON are outside + // the per-call endpoints; their whole-process cost is not claimed measured. +} +int main(int argc, char** argv) { + try { + check(sizeof(size_t) == 8 && argc == 5 && std::string_view(argv[1]) == "--static-search-cost", "expected fixed x64 static Search recipe"); + const char* permit = std::getenv("TERMFORGE_R164_STATIC_SEARCH_COST_AUTHORIZED"); + check(permit && std::string_view(permit).size() == 32 && std::string_view(permit) == argv[4], "independent static Search authorization missing"); + check(std::all_of(permit, permit + 32, [](char c) { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f'); }), "invalid permit"); + const std::string_view size(argv[3]); + check(size == "100" || size == "1000", "unplanned history size"); + const size_t history = size == "100" ? 100u : 1000u; + const std::string_view adapter(argv[2]); + if (adapter == "scan") run(history, "scan"); + else if (adapter == "lazy_table") run(history, "lazy_table"); + else throw std::runtime_error("unplanned adapter"); + flush_output(); return 0; + } catch (const std::exception& error) { + std::cerr << "static Search cost: " << error.what() << '\n'; return 1; + } +} diff --git a/experiments/core/line_order/static-search-cost-plan.md b/experiments/core/line_order/static-search-cost-plan.md new file mode 100644 index 00000000..1676e374 --- /dev/null +++ b/experiments/core/line_order/static-search-cost-plan.md @@ -0,0 +1,38 @@ +# #164:独立静态Search成本准备 + +状态:初版为源码/false计划准备;执行源`cc07c1296cbaf2ebbc0e832df6af500af494f9f5`的唯一实际批次仅启动Scan100,target exit0,但runner错误要求epoch>0而拒绝真实epoch0,CLI1、后三项未启动。该批次失败原件保留;本次只修decoder并离线读取原stdout回归,不重跑或追认四case完成。基点`a8b338b4f5f96e72eba00a5e495fb8dcb85cd0d3`。既有18项定位cost的Search次数仍为0;本协议不回填旧结果。根CMake、生产8头文件、原probe/prepare/run_plan和18项配方不变。 + +## 固定配方与独立oracle + +独立EXCLUDE target `r164_static_search_cost`,复用原`prepare.py::generated_sources`,不修改已发表的Search转换。Selection/Search均通过所审generated目录的规范绝对header宏include,明确列入target依赖;编译后仍需核实际依赖,静态CMake不冒充CL.read证明。 + +4个目标进程:Scan/LazyTable × H=100/1000,顺序固定Scan100、Scan1000、Table100、Table1000。各10s、runner批次50s,最多各一次;不构建、不重试、不扩到H10000。期限是诊断预算,非性能容差。同步文件/Git检查及异常收尾没有整程强制中断保证;实际执行还需root另定外层精确Job监督,runner自身只监督目标root,不能由timeout声称树回收。 + +屏幕6×8,N=H+6。用实际Screen.put/newline建满history;每行7个ASCII,除最后一行外均hard break。命中rank `floor(j*(N−1)/15),j=0..15`写`needle.`,其余写`..x....`;交换可见行2/3(均非命中)造成真实ID非单调,`sorted_proven=false/revision=1`。fixture不reset或切换buffer,故epoch必须是Screen初始值的精确整数0;负值、非零及bool/float均拒绝。fixture检查全文/ASCII span/行界、真实非零唯一ID及版本;原始输出保存全部实际行ID/version、epoch和16个字面期望区间`[0,6)`,不使用Adapter/Search计算期望。 + +每进程1 warmup样本(-1)+3保留样本(0/1/2),每样本新Adapter、同一immutable Source: + +1. 新Search `absent!`:cold start→完整step,0结果;LazyTable首个定位建表一次。 +2. 同Adapter上新Search `needle`:warm start→完整step,16个结果,按物理rank逐项核ID/version/epoch/列;result_limit=64,不能capped。 +3. 一次`match(15)`,必须为最后字面命中。 +4. 一次next/no-wrap navigate,anchor最后一行col7,必须无结果;实际检查16候选,不另加导航矩阵。 + +两次scan固定budget64、同代generation、无notify_change/结构或内容变化;每次必须load N行、消费8N−1字节、使用U=10N−1 work(N load+7N文字+N−1 LF+N finalize)、恰S=ceil(U/64)个step。任何零进展、代/帧失效、错结果、capped、超work/call界都留raw失败,不改断言取绿。 + +## 静态计数界限 + +本快照无audit/rewind/实际prune;step入口校验与front存在检查不计work但各最多一次locate。因此每完整scan locate≤3N+2S+1;last-match恰N+5,no-wrap恰16(N+9)+1,每样本总locate≤L=23N+4S+152。4样本Scan probe≤4LN:H100为1,126,992;H1000为96,262,128。**不是10s完成保证**。 + +decoder另按固定64步边界核精确scan计数:令E为U%64非零时1,否则0;C为所有k=0..S−1且64k%10非零时的`floor(64k/10)+1`集合(这些step从已加载行内部开始)。每scan locate恰3N−2+E+S−1+|C|;Scan probe恰3N(N+1)/2−N−1+EN+S−1+ΣC。这里front存在检查定位rank0,仅一次probe,不能笼统当成每次都扫全N。该推导仍是待实际C++反证的源码oracle,未伪装成实测计数。 + +生成match每次遍历全部rows并定位,即Scan单次O(N²)、Table O(N log N);navigate可乘命中数16。这是实验生成caller路径,不称生产TextSearch已测得相同成本。独立decoder还核Scan last-match probe恰N(N+1)/2+5N、navigate probe恰16N(N+1)/2+7Σ(rank+1)+33N。Table lookup probe保守界为4L(ceil(log2 N)+1),H1000为1,052,568;建表遍历/排序/唯一性检查未计probe,不能用probe比当总工作或加速比。 + +## 端点、计划与停止 + +每样本6条stage:cold start、cold step、warm start、warm step、last-match、navigate;每进程另1条fixture,共25条。分别记录steady_clock ns单位的start、各step调用时间之和/最大单step、match、navigate以及每stage lookup/probe/rebuild增量、当前表payload;时间允许0,不代表ns精度。字符串构造、fixture/oracle、阶段之间的计时器/控制、JSON/flush和对象析构在这些调用端点之外;counter执行开销包含。两个Search对象在样本中同时存活;payload不是峰值/完整分配器或RSS,RSS始终null。所有warmup和样本保留,无宿主隔离、无跨进程重复/交错,不能推出产品性能验收。 + +`prepare_search_cost.py --materialize <新local目录> --compiler <所选cl绝对路径> --cmake <所选cmake绝对路径>`只读工具文件identity,不执行version。生成false计划绑定HEAD、目录全部文件和8生产头文件、两生成header字节/路径、Python/CMake/编译器bytes/SHA;actualEXE/build-evidence/output/marker均null。后续true计划必须另建、绑定真实EXE/build证据并授权精确4case/50s;false和旧18cost许可不能触发新target。 + +`run_search_cost.py --plan <新独立true计划>`在marker前核类型/全部recipe、source/generated/tool/Python/EXE/build身份及新目录;marker独占新建,output与marker分离且不重叠generated/runtime。每case前后验和batch末再验输入;按原样保存command/stdout/stderr/exit/timeout及机械decoder结果,错误停止,无fallback。CLI0仅表示固定诊断完成,product_acceptance=null;未经审查的本地raw不直接公开。 + +离线回归可通过环境变量`TERMFORGE_R164_STATIC_SEARCH_OBSERVED_STDOUT`提供保留的Scan100 stdout;测试核固定SHA后按实际协议解码,并同步改变fixture和所有range的epoch验证负值/非零拒绝。不提供该私有fixture时只跳过这项实录回归,不把合成协议当实录。未知:其余三配方的真实计数与时钟样本、完整四case预算、完整增量Search、生产revision通知、UI回退、实际查询分布、RSS/峰值、Qt/ConPTY端点和WindTerm等价;构建依赖身份由独立构建证据核对。本修正不修改这些codepaths,也不关闭#27/#29/R2。 diff --git a/experiments/core/line_order/test_search_cost_plan.py b/experiments/core/line_order/test_search_cost_plan.py new file mode 100644 index 00000000..ab4d1469 --- /dev/null +++ b/experiments/core/line_order/test_search_cost_plan.py @@ -0,0 +1,140 @@ +"""Pure plan/protocol seams only; never run the C++ probe, CMake or compiler.""" +import copy +import hashlib +import json +import os +from pathlib import Path +import sys +import tempfile +import unittest +from unittest.mock import patch +import prepare_search_cost as prepared +import run_search_cost as runner + + +def protocol(case): + h, adapter = case["history"], case["adapter"] + b = prepared.bounds(h); n = h+6 + identities = [[i+1, 8] for i in range(n)] + identities[h+2], identities[h+3] = identities[h+3], identities[h+2] + ranks = [j*(n-1)//15 for j in range(16)] + expected = [[*identities[r], 0, 0, *identities[r], 6, 0] for r in ranks] + rows = [dict(schema="termforge-r164-static-search-fixture-v1", adapter=adapter, history=h, + retained_rows=n, epoch=0, order_revision=1, sorted_proven=False, rows=identities, + hit_ranks=ranks, oracle_ranges=expected, rss_bytes=None)] + for sample in (-1, 0, 1, 2): + for stage_index, stage in enumerate(prepared.STAGES): + scan = stage.endswith("_step") + lookups = b["locate_calls_per_scan"] if scan else b["last_match_lookups"] if stage == "last_match" else b["navigate_lookups"] if stage == "navigate_no_wrap" else 0 + probes = b["scan_probes_per_scan"] if scan else b["scan_last_match_probes"] if stage == "last_match" else b["scan_navigate_probes"] if stage == "navigate_no_wrap" else 0 + if adapter == "lazy_table": probes = lookups # Synthetic values within that decoder's bound, not a target measurement. + rows.append(dict(schema="termforge-r164-static-search-stage-v1", adapter=adapter, history=h, + sample=sample, stage=stage, elapsed_ns=1, max_step_ns=1 if scan else None, + step_calls=b["step_calls_per_scan"] if scan else 0, work_used=b["work_per_scan"] if scan else 0, + bytes_scanned=b["bytes_per_scan"] if scan else 0, rows_loaded=n if scan else 0, + lookups=lookups, probes=probes, rebuilds=int(adapter == "lazy_table" and stage_index == 1), + table_payload_bytes=n*16 if adapter == "lazy_table" and stage_index else 0, + search_status=1 if stage.endswith("_start") else 2, + result_ranges=expected if stage == "warm_needle_step" else [expected[-1]] if stage == "last_match" else [], + oracle_passed=True, rss_bytes=None)) + return rows + + +def encode(rows): + return ("\r\n".join(json.dumps(row, separators=(",", ":")) for row in rows)+"\r\n").encode("ascii") + + +def with_epoch(rows, epoch): + rows = copy.deepcopy(rows) + rows[0]["epoch"] = epoch + ranges = rows[0]["oracle_ranges"] + [r for row in rows[1:] for r in row["result_ranges"]] + for value in ranges: + value[3] = value[7] = epoch + return rows + + +class PlanTests(unittest.TestCase): + def test_false_real_main_rejects_before_identity_launch_or_mutation(self): + with tempfile.TemporaryDirectory() as temporary: + root = Path(temporary); path = root/"false.json" + path.write_text(json.dumps(dict(execution_authorized=False, + output_directory=str(root/"out"), attempt_marker=str(root/"attempt")))) + with patch.object(sys, "argv", ["run_search_cost.py", "--plan", str(path)]), \ + patch.object(runner, "verify_inputs", side_effect=AssertionError("false must fail before identity work")), \ + patch.object(runner.subprocess, "run", side_effect=AssertionError("no process allowed")): + with self.assertRaisesRegex(ValueError, "False plan"): runner.main() + self.assertFalse((root/"out").exists()); self.assertFalse((root/"attempt").exists()) + + def test_recipe_rejects_bool_and_float_integer_contracts(self): + for value in (True, 64.0, "64"): + modified = prepared.recipe(); modified["step_budget"] = value + self.assertFalse(prepared.same_types(modified, prepared.recipe())) + self.assertEqual([x["id"] for x in prepared.cases()], ["static-search-scan-100", "static-search-scan-1000", + "static-search-lazy_table-100", "static-search-lazy_table-1000"]) + + def test_static_bounds_are_the_frozen_small_workload(self): + self.assertEqual(prepared.bounds(100)["scan_probes_per_process_upper_bound"], 1126992) + self.assertEqual(prepared.bounds(1000)["scan_probes_per_process_upper_bound"], 96262128) + self.assertEqual(prepared.bounds(1000)["lazy_lookup_probes_per_process_upper_bound"], 1052568) + + def test_real_loader_rejects_changed_or_loose_numeric_contracts_before_identity(self): + valid = dict(schema="termforge-r164-static-search-cost-plan-v1", base_commit=prepared.BASE, + execution_authorized=True, actual_runs=0, recipe=prepared.recipe(), cases=prepared.cases(), + authorized_cases=[case["id"] for case in prepared.cases()], maximum_attempts_per_case=1, + maximum_batch_seconds=50, whole_batch_bound_seconds=50) + variants = [] + for value in (True, 64.0, "64"): + plan = copy.deepcopy(valid); plan["recipe"]["step_budget"] = value; variants.append(plan) + for key, value in (("actual_runs", False), ("maximum_attempts_per_case", True), ("whole_batch_bound_seconds", 51)): + plan = copy.deepcopy(valid); plan[key] = value; variants.append(plan) + plan = copy.deepcopy(valid); plan["authorized_cases"].reverse(); variants.append(plan) + with tempfile.TemporaryDirectory() as temporary, patch.object(runner, "verify_inputs", side_effect=AssertionError("invalid contract reached identity")): + path = Path(temporary)/"plan.json" + for plan in variants: + path.write_text(json.dumps(plan)) + with self.assertRaises(ValueError): runner.load_plan(path) + + def test_synthetic_protocol_all_four_recipes(self): + for case in prepared.cases(): + with self.subTest(case=case["id"]): runner.validate_output(encode(protocol(case)), b"", case) + + def test_fixture_epoch_is_exact_initial_zero_including_all_ranges(self): + case = prepared.cases()[0] + for epoch in (-1, 1, 2, True, 0.0, "0"): + with self.subTest(epoch=epoch): + with self.assertRaisesRegex(ValueError, "Fixture identity/frame contract"): + runner.validate_output(encode(with_epoch(protocol(case), epoch)), b"", case) + + def test_retained_actual_scan100_stdout_and_epoch_mutations(self): + path = os.environ.get("TERMFORGE_R164_STATIC_SEARCH_OBSERVED_STDOUT") + if not path: + self.skipTest("Supply the retained Scan100 stdout path for the offline capture regression") + raw = Path(path).read_bytes() + self.assertEqual(hashlib.sha256(raw).hexdigest(), + "5419a5053275d985457834d94e4ed7970ac4bc022bc311af7129621b281251ea") + case = prepared.cases()[0] + runner.validate_output(raw, b"", case) + rows = [json.loads(line) for line in raw.decode("ascii").splitlines()] + self.assertEqual(rows[0]["epoch"], 0) + for epoch in (-1, 1, 2, True, 0.0, "0"): + with self.subTest(epoch=epoch): + with self.assertRaisesRegex(ValueError, "Fixture identity/frame contract"): + runner.validate_output(encode(with_epoch(rows, epoch)), b"", case) + + def test_decoder_rejects_truncation_bad_ranges_types_counters_and_stages(self): + case = prepared.cases()[0]; original = protocol(case) + variants = [] + variants.append(original[:-1]) + for offset, key, value in ((4, "work_used", 0), (4, "bytes_scanned", True), + (4, "result_ranges", []), (5, "lookups", 0), + (6, "probes", 0), (1, "oracle_passed", False), + (1, "stage", "warm_needle_start"), (1, "rss_bytes", 0)): + rows = copy.deepcopy(original); rows[offset][key] = value; variants.append(rows) + rows = copy.deepcopy(original); rows[0]["rows"][0][0] = rows[0]["rows"][1][0]; variants.append(rows) + for rows in variants: + with self.assertRaises((ValueError, KeyError, TypeError)): runner.validate_output(encode(rows), b"", case) + with self.assertRaises(ValueError): runner.validate_output(encode(original), b"unexpected", case) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/experiments/core/results/2026-10-29-static-search-r164/README.md b/experiments/core/results/2026-10-29-static-search-r164/README.md new file mode 100644 index 00000000..97f7ee34 --- /dev/null +++ b/experiments/core/results/2026-10-29-static-search-r164/README.md @@ -0,0 +1,46 @@ +# 静态 Search 成本:固定快照诊断(#164) + +独立四 case 批次完成,支持继续调查无序定位在生成 Search caller 中的成本放大,**不构成产品选型、性能验收或完整增量 Search 验收**。它与[此前18项定位成本](../2026-10-29-line-order-r164/README.md)分开,不回填旧结果;生产核心、根CMake和原probe不改。[协议](../../line_order/static-search-cost-plan.md)与[全部脱敏数值](validation.json)可独立核对。 + +## 身份与失败保留 + +基点为 `a8b338b4f5f96e72eba00a5e495fb8dcb85cd0d3`。C++/CMake编译源为 `cc07c1296cbaf2ebbc0e832df6af500af494f9f5`;实际Release x64 EXE为98304B,SHA256 `2ef1d42653e349b434fa1c42fe61a2dcd31d196caccfd2dacfd77b162654d675`。实际CL.read和编译宏均绑定所冻结的两份生成header:Selection SHA `88bf44a9497ac6afdf526589dfc5b77b9ed03cca760fe2aa09188e92e0d958df`、Search SHA `6db8ee628eec1eacabc54bfdc27eb35c27327e1fc1b8b25b44cad58a2001afde`,无同名旧副本回退。 + +首个独立租约actual-0只启动Scan100:target exit0,但旧runner误要求epoch>0,拒绝Screen真实初始epoch0,runner exit1,后三项未启动。原计划、失败、stdout和时间样本全部保留。修正 `a6157dea2d38bcbbeb29d48fc757d522374c3e2c`只改decoder、纯测试和协议说明,严格要求整数epoch0;实际保留stdout回归与同步改变全部range的负值/非零/类型反例,普通及`-O`各8/8。未改C++、CMake、生成header或EXE。 + +随后另授权actual-1:runner源a6157de复用上述cc07c129编译EXE,四case各一次,均exit0、无timeout、stderr为空,runner exit0、diagnostic_complete=true。本文是后续离线投影,发布提交不是运行源。JSON分列两租约、false/true计划、源/工具/EXE/构建与raw哈希;不把actual-0追认为成功,也不将两次Scan100拼成重复采样。 + +## 配方、端点与环境 + +固定顺序Scan100、Scan1000、LazyTable100、LazyTable1000;每进程1 warmup(-1)及3保留样本(0/1/2)。Screen为6×8,N=H+6;每行7个合成ASCII,16个命中rank为`floor(j*(N−1)/15)`,命中行`needle.`、其余`..x....`,除末行外hard break。交换两个非命中可见行产生真实ID无序;epoch0、revision1、内容及结构均不变。 + +每样本新Adapter,同Adapter依次执行cold `absent!`全扫(0命中)、warm `needle`全扫(16命中)、一次match(15)、末行col7锚点next/no-wrap(无结果)。期望由实际物理rank及Screen行ID/version/epoch和字面列区间[0,6)独立构造。每scan budget64:H100/1000分别为17/158步、1059/10059 work、847/8047字节、106/1006行;未触及result_limit64。所有阶段按有界进展、状态、范围及精确lookup/probe oracle核对。 + +时间为steady_clock纳秒单位,不代表纳秒精度:start调用、各step调用之和/最大单step、单次match及navigate分别计时。计数器开销包含;fixture、字面oracle、字符串构造、阶段间控制、JSON/flush及对象析构不在这些调用端点内。六端点之和不是整个样本或进程时间。两个Search对象同时存活;table payload只计位置vector容量,RSS/峰值均未知。 + +环境为共享Windows x64本机,MSVC19.42.34433.0、CMake3.31.0、SDK10.0.26100.0,Release `/O2 /Ob2 /MD /EHsc /W4 /utf-8 /std:c++17`及NDEBUG。编译身份来自实际元数据/依赖;本批未保存执行期间独立CPU/OS build清单或连续遥测,不挪用旧18项成本的宿主盘点补录。未隔离负载、锁频/亲和性;没有进程交错或独立进程重复。 + +## 数值与解释 + +下表为actual-1三个保留样本各端点的中位数,单位µs;cold/warm scan列为该次全扫的step时间之和,max-step列为三个样本各自最大step的中位数。各列独立统计,不能相加还原样本中位数。warmup及所有原始值均在JSON,无删样或追加取样。 + +| Adapter | H | cold scan | warm scan | match(15) | no-wrap | cold max-step | +|---|---:|---:|---:|---:|---:|---:| +| Scan | 100 | 244.2 | 198.2 | 18.6 | 349.6 | 35.9 | +| Scan | 1000 | 7548.5 | 6722.6 | 1450.9 | 30491.1 | 534.7 | +| LazyTable | 100 | 123.6 | 128.3 | 4.0 | 33.5 | 11.8 | +| LazyTable | 1000 | 1115.6 | 1155.7 | 60.2 | 749.7 | 41.9 | + +每样本两次scan的lookup分别为346/3300;last-match为111/1011,no-wrap为1841/16241。Scan每scan probe为17713/1583289、last-match为6201/511551、no-wrap为100226/8193926;LazyTable相应为2360/32950、757/10094、12560/162154。各样本计数一致;LazyTable每样本仅cold scan重建一次,payload为1696/16096B,warm及后续调用不重建。 + +生成match逐行定位全部已扫row,Scan单次可为O(N²)、LazyTable为O(N log N);导航逐项验证16个候选,固定计数与该路径的源码推导一致。这是**实验生成caller**的结果,不等同生产TextSearch已测得同样成本。probe只计定位比较/访问,不含建表遍历、排序和唯一性检查,不能当总工作或用其比值宣布加速。 + +LazyTable cold-step时间包含首次定位的分配/建表/排序,但没有独立建表计时、首step时间或max所在序号,不能把max-step称为建表耗时。H1000的warmup cold max为185.3µs;三个保留样本cold max为65.1/41.9/36.3µs,warm max为17.7/56.0/73.9µs,保留原波动,不以cold−warm差值归因全部建表成本。 + +## 监督、公开边界与未知 + +每target10s、runner批次50s、外层root55s及共享cleanup5s均为固定诊断预算,不是性能阈值或整生命周期硬上限。actual-1 runner记录3.079s、外层3.781s,仅表示各自监督端点。两租约各33冻结输入后验0变化;本次离线导出复核78份既有本地文件0变化。 + +actual-0/1的root均已回收且句柄关闭,但root结束即时Job分别仍为1/31/0、1/76/0;各一次Terminate请求后为0/31/0、0/76/0。剩余成员身份及是否实际杀死成员未知,terminated计数均0,**不称整树自然退出**。 + +JSON公开actual-1的100行协议(4 fixture+96 stage)和actual-0另25行原协议的数值投影,五份stdout均可逐字节重建原CRLF及核SHA;不复制命令、私有路径/PID、随机permit或其他raw日志。validation为326455B,SHA256 `2ec4d9f6869643d0d5c5ff9ab6246049371eefa70dff1e5b04aec19e5246483d`。完整增量Search、结构变更/revision通知、UI/真实查询分布、RSS/峰值、Qt/ConPTY和WindTerm等价仍未验证;本报告不改变#164或后续实施任务状态。 diff --git a/experiments/core/results/2026-10-29-static-search-r164/validation.json b/experiments/core/results/2026-10-29-static-search-r164/validation.json new file mode 100644 index 00000000..759a17e0 --- /dev/null +++ b/experiments/core/results/2026-10-29-static-search-r164/validation.json @@ -0,0 +1,16855 @@ +{ + "schema": "termforge-r164-static-search-public-v1", + "base_commit": "a8b338b4f5f96e72eba00a5e495fb8dcb85cd0d3", + "cpp_compile_source_commit": "cc07c1296cbaf2ebbc0e832df6af500af494f9f5", + "successful_runner_source_commit": "a6157dea2d38bcbbeb29d48fc757d522374c3e2c", + "publication_parent_commit": "a6157dea2d38bcbbeb29d48fc757d522374c3e2c", + "offline_exporter": { + "bytes": 17989, + "sha256": "2b91c5816312d405b0cb02430717dd45743f33810da734a3fd5e564ad8a4a14d" + }, + "original_false_proposal": { + "bytes": 8924, + "sha256": "510a3e304f79cc105cbbb3161109c7bde5c054ed469a0d5a4d79d05bfc3ec938" + }, + "execution_authorized_by_this_report": false, + "build": { + "configuration": "Release", + "architecture": "x64", + "compiler": "MSVC", + "compiler_version": "19.42.34433.0", + "cmake_version": "3.31.0", + "sdk_versions": [ + "10.0.26100.0" + ], + "compiler_flags": [ + "/O2", + "/Ob2", + "/MD", + "/EHsc", + "/W4", + "/utf-8", + "/std:c++17", + "NDEBUG" + ], + "artifacts": { + "executable": { + "bytes": 98304, + "sha256": "2ef1d42653e349b434fa1c42fe61a2dcd31d196caccfd2dacfd77b162654d675" + }, + "read_tlog": { + "bytes": 25292, + "sha256": "5323c6f5ac3a67de186d4b59dd7a676a8d481f2323e3bda8f719b7eecac24749" + }, + "command_tlog": { + "bytes": 1832, + "sha256": "0f5a12d4c96373c830350d95f9b9c750ad29a49bfd5a025caa7d1c51cf51964f" + }, + "compiler_metadata": { + "bytes": 6372, + "sha256": "fb18378927420b12ff469fa0c6a737dcf281ee842a208f0456bddeb52cd5505f" + }, + "compile_result": { + "bytes": 609, + "sha256": "3611e62ad96e9aeca6bb328b2b564a45d51103ad25b31b4635770cab455a2c17" + } + }, + "generated_headers": { + "selection": { + "bytes": 9802, + "sha256": "88bf44a9497ac6afdf526589dfc5b77b9ed03cca760fe2aa09188e92e0d958df" + }, + "search": { + "bytes": 17134, + "sha256": "6db8ee628eec1eacabc54bfdc27eb35c27327e1fc1b8b25b44cad58a2001afde" + } + }, + "actual_cl_generated_dependency_set": [ + "selection.hpp", + "search.hpp" + ], + "actual_cl_generated_closure_exact": true, + "source_changes_between_compile_and_runner": [ + "experiments/core/line_order/run_search_cost.py", + "experiments/core/line_order/static-search-cost-plan.md", + "experiments/core/line_order/test_search_cost_plan.py" + ], + "cpp_cmake_product_generated_bytes_unchanged": true, + "tool_file_identities": { + "python": { + "bytes": 274424, + "sha256": "0b471133e110cfb53a061cad528ce8e517d7b9ac41a0a396c39ad795a487fc14" + }, + "compiler": { + "bytes": 862832, + "sha256": "42fd88579adc0e2418a0a71ec9adcfcf677d39ff2724c9d6ac9d901264812bf2" + }, + "cmake": { + "bytes": 12054480, + "sha256": "c52712b2e10098baa2bd9b2fb22b6bb276c8ec46d840f0e8487eda7f76a1727b" + } + } + }, + "source_identities": { + "compile": { + "experiments/core/history_view.hpp": { + "bytes": 3121, + "sha256": "74370e3d3a45920d495cf7edce1cc57916ec8e6d0c221e1144a5a3bcdd8ecda6" + }, + "experiments/core/line_order/CMakeLists.txt": { + "bytes": 2318, + "sha256": "39b4e4657e1a89dbf4d6e40bfd3a548ae6ae72047fda076f83e64f744942fe92" + }, + "experiments/core/line_order/README.md": { + "bytes": 10401, + "sha256": "acdce09b39a3998bdd909d20fb2e5422ea0be0a71c76f3f5d5f2472a01e7a947" + }, + "experiments/core/line_order/adapters.hpp": { + "bytes": 3798, + "sha256": "f1004dec4e863c9845153d3153663e3b35cc781a99cadf0868c3c982e1ccf12e" + }, + "experiments/core/line_order/document.hpp": { + "bytes": 3185, + "sha256": "325ec5ddc16d4b625b2f8b3aa1fe0d4a1222bac6e272280a06c924b46bb390a1" + }, + "experiments/core/line_order/prepare.py": { + "bytes": 11097, + "sha256": "5b212aa79d54af169674a777fff0db152e829e84d0097d2e061e96812feb06bf" + }, + "experiments/core/line_order/prepare_search_cost.py": { + "bytes": 7376, + "sha256": "6cc13d62f3187c87a89954bd27ff43a02f713437705be9bf424e9112d5fb454a" + }, + "experiments/core/line_order/probe.cpp": { + "bytes": 11571, + "sha256": "cfa46b2eacac793e068ef7299ccda6cdbd2f5a79547c12f279dcdd4e1974f1de" + }, + "experiments/core/line_order/run_plan.py": { + "bytes": 6784, + "sha256": "80408c78ab1a7487989137436f872d3cf8b59e3b1e21d653beb133a1d3771153" + }, + "experiments/core/line_order/run_search_cost.py": { + "bytes": 14566, + "sha256": "cc86a8f2dce2adadedfc030708161929adf2dd1ae3a0a25fbaeea1c1bdb1217e" + }, + "experiments/core/line_order/search_cost.cpp": { + "bytes": 12197, + "sha256": "587fb678b453eae278e90cf8c8ba41b4dc11cd006af8b84304d74db8c5f3a9eb" + }, + "experiments/core/line_order/static-search-cost-plan.md": { + "bytes": 5702, + "sha256": "8f41012da0fd65b4f3c6790f29ee0927148fe8edce3bd1652fd1ad74c135220a" + }, + "experiments/core/line_order/test_search_cost_plan.py": { + "bytes": 6805, + "sha256": "38c3397afada80eadccc10c88a15d43d91eba9be5d8bdeb8c934357bcc456891" + }, + "experiments/core/screen.hpp": { + "bytes": 17750, + "sha256": "aa3b79f232b183a9ba425b086a6a58b00894e468c73052217fd6d8beefde2040" + }, + "experiments/core/terminal.hpp": { + "bytes": 12413, + "sha256": "b57f13d06a219a9992d2b9b99bb98721be2bc13495b7fe1a99350f0da85304f2" + }, + "experiments/core/text_document.hpp": { + "bytes": 3850, + "sha256": "a51903b9091471b0d52c47f34b966f56b23045042c007fe8cd6f6e1b1302934c" + }, + "experiments/core/text_projection.hpp": { + "bytes": 1784, + "sha256": "3853bcf053964e54ea00bb7acfd0d302abd536ae0ed4eddfe791a6bcffdb6914" + }, + "experiments/core/text_search.hpp": { + "bytes": 18533, + "sha256": "77b2aa3b0989fca32ec953ca5376085bf141011be74d014cac646eb0bde15d2f" + }, + "experiments/core/text_selection.hpp": { + "bytes": 9883, + "sha256": "5c3848d06bcb34f036aabec7d3e8a953796caed1ba90a8c8d40b62d3e2242bb0" + }, + "experiments/core/unicode_width.hpp": { + "bytes": 32445, + "sha256": "d48bf60090a9c6a4263bb46ac587b13814b52c0dbe9d2649cee20e832a1e1926" + } + }, + "runner": { + "experiments/core/history_view.hpp": { + "bytes": 3121, + "sha256": "74370e3d3a45920d495cf7edce1cc57916ec8e6d0c221e1144a5a3bcdd8ecda6" + }, + "experiments/core/line_order/CMakeLists.txt": { + "bytes": 2318, + "sha256": "39b4e4657e1a89dbf4d6e40bfd3a548ae6ae72047fda076f83e64f744942fe92" + }, + "experiments/core/line_order/README.md": { + "bytes": 10401, + "sha256": "acdce09b39a3998bdd909d20fb2e5422ea0be0a71c76f3f5d5f2472a01e7a947" + }, + "experiments/core/line_order/adapters.hpp": { + "bytes": 3798, + "sha256": "f1004dec4e863c9845153d3153663e3b35cc781a99cadf0868c3c982e1ccf12e" + }, + "experiments/core/line_order/document.hpp": { + "bytes": 3185, + "sha256": "325ec5ddc16d4b625b2f8b3aa1fe0d4a1222bac6e272280a06c924b46bb390a1" + }, + "experiments/core/line_order/prepare.py": { + "bytes": 11097, + "sha256": "5b212aa79d54af169674a777fff0db152e829e84d0097d2e061e96812feb06bf" + }, + "experiments/core/line_order/prepare_search_cost.py": { + "bytes": 7376, + "sha256": "6cc13d62f3187c87a89954bd27ff43a02f713437705be9bf424e9112d5fb454a" + }, + "experiments/core/line_order/probe.cpp": { + "bytes": 11571, + "sha256": "cfa46b2eacac793e068ef7299ccda6cdbd2f5a79547c12f279dcdd4e1974f1de" + }, + "experiments/core/line_order/run_plan.py": { + "bytes": 6784, + "sha256": "80408c78ab1a7487989137436f872d3cf8b59e3b1e21d653beb133a1d3771153" + }, + "experiments/core/line_order/run_search_cost.py": { + "bytes": 14654, + "sha256": "285179152c278418cda49c2a88719f0e32ae6068764787a320c9371811968757" + }, + "experiments/core/line_order/search_cost.cpp": { + "bytes": 12197, + "sha256": "587fb678b453eae278e90cf8c8ba41b4dc11cd006af8b84304d74db8c5f3a9eb" + }, + "experiments/core/line_order/static-search-cost-plan.md": { + "bytes": 6436, + "sha256": "0a313ccfa0a6e6899e714a714f8666ab6a119fe76522c5e184d58165f1c08ec9" + }, + "experiments/core/line_order/test_search_cost_plan.py": { + "bytes": 8430, + "sha256": "5a6431384656e11f03db131acf5235eb2074034a7b7c7020408e5b0a61d95df6" + }, + "experiments/core/screen.hpp": { + "bytes": 17750, + "sha256": "aa3b79f232b183a9ba425b086a6a58b00894e468c73052217fd6d8beefde2040" + }, + "experiments/core/terminal.hpp": { + "bytes": 12413, + "sha256": "b57f13d06a219a9992d2b9b99bb98721be2bc13495b7fe1a99350f0da85304f2" + }, + "experiments/core/text_document.hpp": { + "bytes": 3850, + "sha256": "a51903b9091471b0d52c47f34b966f56b23045042c007fe8cd6f6e1b1302934c" + }, + "experiments/core/text_projection.hpp": { + "bytes": 1784, + "sha256": "3853bcf053964e54ea00bb7acfd0d302abd536ae0ed4eddfe791a6bcffdb6914" + }, + "experiments/core/text_search.hpp": { + "bytes": 18533, + "sha256": "77b2aa3b0989fca32ec953ca5376085bf141011be74d014cac646eb0bde15d2f" + }, + "experiments/core/text_selection.hpp": { + "bytes": 9883, + "sha256": "5c3848d06bcb34f036aabec7d3e8a953796caed1ba90a8c8d40b62d3e2242bb0" + }, + "experiments/core/unicode_width.hpp": { + "bytes": 32445, + "sha256": "d48bf60090a9c6a4263bb46ac587b13814b52c0dbe9d2649cee20e832a1e1926" + } + } + }, + "environment": { + "os_family": "Windows", + "architecture": "x64", + "shared_local_host": true, + "os_version_during_execution": null, + "cpu_model_during_execution": null, + "continuous_host_telemetry": false, + "isolated_load": false, + "locked_affinity": false, + "locked_frequency": false, + "interleaved_process_order": false, + "independent_process_repetitions": 1 + }, + "recipe": { + "screen_rows": 6, + "columns": 8, + "histories": [ + 100, + 1000 + ], + "hit_count": 16, + "hit_rank": "floor(j*(N-1)/15), j=0..15", + "hit_text": "needle.", + "other_text": "..x....", + "swap_visible_rows": [ + 2, + 3 + ], + "sorted_proven": false, + "order_revision": 1, + "immutable": true, + "notify_change_calls": 0, + "step_budget": 64, + "result_limit": 64, + "case_sensitive": true, + "queries": [ + "absent!", + "needle" + ], + "samples": [ + -1, + 0, + 1, + 2 + ], + "fresh_adapter_each_sample": true, + "reuse_adapter_between_queries": true, + "stages": [ + "cold_absent_start", + "cold_absent_step", + "warm_needle_start", + "warm_needle_step", + "last_match", + "navigate_no_wrap" + ], + "fixture_rows": 1, + "stage_rows_per_process": 24, + "match_index": 15, + "navigation": "next; anchor last row col7; no wrap; no result", + "bounds": { + "100": { + "retained_rows": 106, + "bytes_per_scan": 847, + "work_per_scan": 1059, + "step_calls_per_scan": 17, + "lookups_per_sample_upper_bound": 2658, + "locate_calls_per_scan": 346, + "scan_probes_per_scan": 17713, + "last_match_lookups": 111, + "navigate_lookups": 1841, + "scan_last_match_probes": 6201, + "scan_navigate_probes": 100226, + "scan_probes_per_process_upper_bound": 1126992, + "lazy_lookup_probes_per_process_upper_bound": 85056 + }, + "1000": { + "retained_rows": 1006, + "bytes_per_scan": 8047, + "work_per_scan": 10059, + "step_calls_per_scan": 158, + "lookups_per_sample_upper_bound": 23922, + "locate_calls_per_scan": 3300, + "scan_probes_per_scan": 1583289, + "last_match_lookups": 1011, + "navigate_lookups": 16241, + "scan_last_match_probes": 511551, + "scan_navigate_probes": 8193926, + "scan_probes_per_process_upper_bound": 96262128, + "lazy_lookup_probes_per_process_upper_bound": 1052568 + } + }, + "rss_bytes": null, + "counter_scope": "lookup comparisons/visits; excludes table traversal/sort/unique check", + "time_scope": "start call; sum/max step calls; one match; one navigate; counters included; literal oracle/fixture/JSON/object destruction excluded" + }, + "budgets": { + "target_seconds": 10, + "runner_batch_seconds": 50, + "outer_root_seconds": 55, + "shared_outer_cleanup_seconds": 5, + "attempts_per_case_per_lease": 1, + "whole_lifecycle_hard_bound_seconds": null, + "performance_acceptance_threshold": null + }, + "stage_names": [ + "cold_absent_start", + "cold_absent_step", + "warm_needle_start", + "warm_needle_step", + "last_match", + "navigate_no_wrap" + ], + "stage_fields": [ + "sample", + "stage_index", + "elapsed_ns", + "max_step_ns", + "step_calls", + "work_used", + "bytes_scanned", + "rows_loaded", + "lookups", + "probes", + "rebuilds", + "table_payload_bytes", + "search_status", + "result_ranges", + "oracle_passed", + "rss_bytes" + ], + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "timing": { + "unit": "ns", + "resolution_claimed": false, + "counter_overhead_included": true, + "sum_of_call_endpoints_is_whole_sample_time": false, + "first_step_ns": null, + "max_step_index": null, + "standalone_rebuild_time_ns": null + }, + "epoch_fix": { + "source_commit": "a6157dea2d38bcbbeb29d48fc757d522374c3e2c", + "original_gate": "epoch > 0", + "exact_fixture_epoch": 0, + "old_gate_red": { + "tests": 8, + "failures": 2, + "errors": 5 + }, + "pure_normal": { + "tests": 8, + "skips": 0, + "exit_code": 0 + }, + "pure_optimized": { + "tests": 8, + "skips": 0, + "exit_code": 0 + }, + "validation_identity": { + "bytes": 2735, + "sha256": "8daa4c8222e795cee5bacaa42fd5ad38cc38c99578476de9c14cc5341761aa27" + }, + "old_batch_reclassified_complete": false + }, + "leases": [ + { + "lease_index": 0, + "runner_source_commit": "cc07c1296cbaf2ebbc0e832df6af500af494f9f5", + "authorized_plan": { + "bytes": 9659, + "sha256": "480cd681647c6a22164a3eb0e2e1615f7880d758122b848375588eaa30275571" + }, + "batch_record": { + "bytes": 898, + "sha256": "947307014e06be89904415dd11cbd9804c91bb27d15bae6e8744dc1a67c525bd" + }, + "original_diagnostic_complete": false, + "original_error": "Fixture identity/frame contract differs", + "cases_started": 1, + "cases_not_started": 3, + "batch_elapsed_seconds": 0.9219999999913853, + "product_acceptance": null, + "post_inputs_unchanged": true, + "frozen_files": 33, + "frozen_changes": 0, + "outer": { + "timed_out": false, + "output_overflow": false, + "root_reaped": true, + "root_handle_closed": true, + "root_exit_code": 1, + "job_termination_requests": 1, + "elapsed_supervisor_seconds": 1.4679999999934807, + "pre_go_job": { + "active": 1, + "total": 1, + "terminated": 0 + }, + "job_after": { + "active": 1, + "total": 31, + "terminated": 0 + }, + "job_after_forced_cleanup": { + "active": 0, + "total": 31, + "terminated": 0 + }, + "job_before_close": { + "active": 0, + "total": 31, + "terminated": 0 + }, + "raw_identity": { + "bytes": 847, + "sha256": "76523a1a25b313455fb267c074c41a231c676ac31dd75408d2bc3f3f29757257" + }, + "remaining_member_identity": null, + "actual_member_kill_proven": null, + "whole_tree_natural_exit": null + }, + "captures": [ + { + "case_id": "static-search-scan-100", + "adapter": "scan", + "history": 100, + "fixture": { + "retained_rows": 106, + "epoch": 0, + "order_revision": 1, + "sorted_proven": false, + "rows": [ + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ], + [ + 17, + 9 + ], + [ + 18, + 9 + ], + [ + 19, + 9 + ], + [ + 20, + 9 + ], + [ + 21, + 9 + ], + [ + 22, + 9 + ], + [ + 23, + 9 + ], + [ + 24, + 9 + ], + [ + 25, + 9 + ], + [ + 26, + 9 + ], + [ + 27, + 9 + ], + [ + 28, + 9 + ], + [ + 29, + 9 + ], + [ + 30, + 9 + ], + [ + 31, + 9 + ], + [ + 32, + 9 + ], + [ + 33, + 9 + ], + [ + 34, + 9 + ], + [ + 35, + 9 + ], + [ + 36, + 9 + ], + [ + 37, + 9 + ], + [ + 38, + 9 + ], + [ + 39, + 9 + ], + [ + 40, + 9 + ], + [ + 41, + 9 + ], + [ + 42, + 9 + ], + [ + 43, + 9 + ], + [ + 44, + 9 + ], + [ + 45, + 9 + ], + [ + 46, + 9 + ], + [ + 47, + 9 + ], + [ + 48, + 9 + ], + [ + 49, + 9 + ], + [ + 50, + 9 + ], + [ + 51, + 9 + ], + [ + 52, + 9 + ], + [ + 53, + 9 + ], + [ + 54, + 9 + ], + [ + 55, + 9 + ], + [ + 56, + 9 + ], + [ + 57, + 9 + ], + [ + 58, + 9 + ], + [ + 59, + 9 + ], + [ + 60, + 9 + ], + [ + 61, + 9 + ], + [ + 62, + 9 + ], + [ + 63, + 9 + ], + [ + 64, + 9 + ], + [ + 65, + 9 + ], + [ + 66, + 9 + ], + [ + 67, + 9 + ], + [ + 68, + 9 + ], + [ + 69, + 9 + ], + [ + 70, + 9 + ], + [ + 71, + 9 + ], + [ + 72, + 9 + ], + [ + 73, + 9 + ], + [ + 74, + 9 + ], + [ + 75, + 9 + ], + [ + 76, + 9 + ], + [ + 77, + 9 + ], + [ + 78, + 9 + ], + [ + 79, + 9 + ], + [ + 80, + 9 + ], + [ + 81, + 9 + ], + [ + 82, + 9 + ], + [ + 83, + 9 + ], + [ + 84, + 9 + ], + [ + 85, + 9 + ], + [ + 86, + 9 + ], + [ + 87, + 9 + ], + [ + 88, + 9 + ], + [ + 89, + 9 + ], + [ + 90, + 9 + ], + [ + 91, + 9 + ], + [ + 92, + 9 + ], + [ + 93, + 9 + ], + [ + 94, + 9 + ], + [ + 95, + 9 + ], + [ + 96, + 9 + ], + [ + 97, + 9 + ], + [ + 98, + 9 + ], + [ + 99, + 9 + ], + [ + 100, + 9 + ], + [ + 101, + 9 + ], + [ + 102, + 9 + ], + [ + 104, + 9 + ], + [ + 103, + 9 + ], + [ + 105, + 9 + ], + [ + 106, + 8 + ] + ], + "hit_ranks": [ + 0, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 63, + 70, + 77, + 84, + 91, + 98, + 105 + ], + "oracle_ranges": [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + "rss_bytes": null + }, + "stage_rows": [ + [ + -1, + 0, + 4700, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 1, + 360000, + 161900, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + -1, + 2, + 600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 3, + 211700, + 24300, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 4, + 18500, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 5, + 299800, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 0, + 700, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 1, + 176500, + 14800, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 2, + 400, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 3, + 196500, + 30300, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 4, + 17600, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 5, + 280600, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 0, + 700, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 1, + 187300, + 25500, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 2, + 300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 3, + 166100, + 12300, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 4, + 18100, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 5, + 305200, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 0, + 600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 1, + 172300, + 14100, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 2, + 300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 3, + 178500, + 24400, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 4, + 19500, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 5, + 281800, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ] + ], + "raw_stdout": { + "bytes": 11399, + "sha256": "5419a5053275d985457834d94e4ed7970ac4bc022bc311af7129621b281251ea" + }, + "raw_stderr": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "raw_protocol_lines": 25, + "target_exit_code": 0, + "target_timed_out": false, + "target_supervised_elapsed_seconds": 0.03200000000651926, + "current_offline_decoder_passed": true, + "rss_bytes": null, + "stdout_exact_roundtrip": true, + "summary": { + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "six_endpoint_sum_ns": [ + 895300, + 672300, + 677700, + 653000 + ], + "stage_retained_ns": { + "cold_absent_start": { + "min": 600, + "median": 700, + "max": 700, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "cold_absent_step": { + "min": 172300, + "median": 176500, + "max": 187300, + "max_step_min": 14100, + "max_step_median": 14800, + "max_step_max": 25500 + }, + "warm_needle_start": { + "min": 300, + "median": 300, + "max": 400, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "warm_needle_step": { + "min": 166100, + "median": 178500, + "max": 196500, + "max_step_min": 12300, + "max_step_median": 24400, + "max_step_max": 30300 + }, + "last_match": { + "min": 17600, + "median": 18100, + "max": 19500, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "navigate_no_wrap": { + "min": 280600, + "median": 281800, + "max": 305200, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + } + } + } + } + ] + }, + { + "lease_index": 1, + "runner_source_commit": "a6157dea2d38bcbbeb29d48fc757d522374c3e2c", + "authorized_plan": { + "bytes": 9885, + "sha256": "8a7b81ca886e41a543bbe232880dbfe9b6cc11a85e0e0034f2c25894984a0012" + }, + "batch_record": { + "bytes": 2143, + "sha256": "488e64516aee783719b1c5fc77c7f786833c84fcdf33e284bc91613254b935d1" + }, + "original_diagnostic_complete": true, + "original_error": null, + "cases_started": 4, + "cases_not_started": 0, + "batch_elapsed_seconds": 3.0789999999979045, + "product_acceptance": null, + "post_inputs_unchanged": true, + "frozen_files": 33, + "frozen_changes": 0, + "outer": { + "timed_out": false, + "output_overflow": false, + "root_reaped": true, + "root_handle_closed": true, + "root_exit_code": 0, + "job_termination_requests": 1, + "elapsed_supervisor_seconds": 3.7809999999881256, + "pre_go_job": { + "active": 1, + "total": 1, + "terminated": 0 + }, + "job_after": { + "active": 1, + "total": 76, + "terminated": 0 + }, + "job_after_forced_cleanup": { + "active": 0, + "total": 76, + "terminated": 0 + }, + "job_before_close": { + "active": 0, + "total": 76, + "terminated": 0 + }, + "raw_identity": { + "bytes": 847, + "sha256": "9c6742057d6051fb7efd63cf84af6fd9e7843c12084ab02df6ee18d6f33c41fe" + }, + "remaining_member_identity": null, + "actual_member_kill_proven": null, + "whole_tree_natural_exit": null + }, + "captures": [ + { + "case_id": "static-search-scan-100", + "adapter": "scan", + "history": 100, + "fixture": { + "retained_rows": 106, + "epoch": 0, + "order_revision": 1, + "sorted_proven": false, + "rows": [ + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ], + [ + 17, + 9 + ], + [ + 18, + 9 + ], + [ + 19, + 9 + ], + [ + 20, + 9 + ], + [ + 21, + 9 + ], + [ + 22, + 9 + ], + [ + 23, + 9 + ], + [ + 24, + 9 + ], + [ + 25, + 9 + ], + [ + 26, + 9 + ], + [ + 27, + 9 + ], + [ + 28, + 9 + ], + [ + 29, + 9 + ], + [ + 30, + 9 + ], + [ + 31, + 9 + ], + [ + 32, + 9 + ], + [ + 33, + 9 + ], + [ + 34, + 9 + ], + [ + 35, + 9 + ], + [ + 36, + 9 + ], + [ + 37, + 9 + ], + [ + 38, + 9 + ], + [ + 39, + 9 + ], + [ + 40, + 9 + ], + [ + 41, + 9 + ], + [ + 42, + 9 + ], + [ + 43, + 9 + ], + [ + 44, + 9 + ], + [ + 45, + 9 + ], + [ + 46, + 9 + ], + [ + 47, + 9 + ], + [ + 48, + 9 + ], + [ + 49, + 9 + ], + [ + 50, + 9 + ], + [ + 51, + 9 + ], + [ + 52, + 9 + ], + [ + 53, + 9 + ], + [ + 54, + 9 + ], + [ + 55, + 9 + ], + [ + 56, + 9 + ], + [ + 57, + 9 + ], + [ + 58, + 9 + ], + [ + 59, + 9 + ], + [ + 60, + 9 + ], + [ + 61, + 9 + ], + [ + 62, + 9 + ], + [ + 63, + 9 + ], + [ + 64, + 9 + ], + [ + 65, + 9 + ], + [ + 66, + 9 + ], + [ + 67, + 9 + ], + [ + 68, + 9 + ], + [ + 69, + 9 + ], + [ + 70, + 9 + ], + [ + 71, + 9 + ], + [ + 72, + 9 + ], + [ + 73, + 9 + ], + [ + 74, + 9 + ], + [ + 75, + 9 + ], + [ + 76, + 9 + ], + [ + 77, + 9 + ], + [ + 78, + 9 + ], + [ + 79, + 9 + ], + [ + 80, + 9 + ], + [ + 81, + 9 + ], + [ + 82, + 9 + ], + [ + 83, + 9 + ], + [ + 84, + 9 + ], + [ + 85, + 9 + ], + [ + 86, + 9 + ], + [ + 87, + 9 + ], + [ + 88, + 9 + ], + [ + 89, + 9 + ], + [ + 90, + 9 + ], + [ + 91, + 9 + ], + [ + 92, + 9 + ], + [ + 93, + 9 + ], + [ + 94, + 9 + ], + [ + 95, + 9 + ], + [ + 96, + 9 + ], + [ + 97, + 9 + ], + [ + 98, + 9 + ], + [ + 99, + 9 + ], + [ + 100, + 9 + ], + [ + 101, + 9 + ], + [ + 102, + 9 + ], + [ + 104, + 9 + ], + [ + 103, + 9 + ], + [ + 105, + 9 + ], + [ + 106, + 8 + ] + ], + "hit_ranks": [ + 0, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 63, + 70, + 77, + 84, + 91, + 98, + 105 + ], + "oracle_ranges": [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + "rss_bytes": null + }, + "stage_rows": [ + [ + -1, + 0, + 6100, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 1, + 330700, + 62200, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + -1, + 2, + 1200, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 3, + 1123200, + 446500, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 4, + 238800, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 5, + 314800, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 0, + 900, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 1, + 374200, + 156500, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 2, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 3, + 418800, + 130200, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 4, + 19100, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 5, + 307700, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 0, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 1, + 202900, + 29600, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 2, + 500, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 3, + 198200, + 21200, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 4, + 18600, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 5, + 361300, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 0, + 800, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 1, + 244200, + 35900, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 2, + 2200, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 3, + 175500, + 23700, + 17, + 1059, + 847, + 106, + 346, + 17713, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 4, + 18600, + null, + 0, + 0, + 0, + 0, + 111, + 6201, + 0, + 0, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 5, + 349600, + null, + 0, + 0, + 0, + 0, + 1841, + 100226, + 0, + 0, + 2, + [], + true, + null + ] + ], + "raw_stdout": { + "bytes": 11407, + "sha256": "81f2112a5830a1619d9a7ac11068795043bcd400efc4db9d2eb335aa7dac831d" + }, + "raw_stderr": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "raw_protocol_lines": 25, + "target_exit_code": 0, + "target_timed_out": false, + "target_supervised_elapsed_seconds": 0.030999999988125637, + "current_offline_decoder_passed": true, + "rss_bytes": null, + "stdout_exact_roundtrip": true, + "summary": { + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "six_endpoint_sum_ns": [ + 2014800, + 1121700, + 782500, + 790900 + ], + "stage_retained_ns": { + "cold_absent_start": { + "min": 800, + "median": 900, + "max": 1000, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "cold_absent_step": { + "min": 202900, + "median": 244200, + "max": 374200, + "max_step_min": 29600, + "max_step_median": 35900, + "max_step_max": 156500 + }, + "warm_needle_start": { + "min": 500, + "median": 1000, + "max": 2200, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "warm_needle_step": { + "min": 175500, + "median": 198200, + "max": 418800, + "max_step_min": 21200, + "max_step_median": 23700, + "max_step_max": 130200 + }, + "last_match": { + "min": 18600, + "median": 18600, + "max": 19100, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "navigate_no_wrap": { + "min": 307700, + "median": 349600, + "max": 361300, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + } + } + } + }, + { + "case_id": "static-search-scan-1000", + "adapter": "scan", + "history": 1000, + "fixture": { + "retained_rows": 1006, + "epoch": 0, + "order_revision": 1, + "sorted_proven": false, + "rows": [ + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ], + [ + 17, + 9 + ], + [ + 18, + 9 + ], + [ + 19, + 9 + ], + [ + 20, + 9 + ], + [ + 21, + 9 + ], + [ + 22, + 9 + ], + [ + 23, + 9 + ], + [ + 24, + 9 + ], + [ + 25, + 9 + ], + [ + 26, + 9 + ], + [ + 27, + 9 + ], + [ + 28, + 9 + ], + [ + 29, + 9 + ], + [ + 30, + 9 + ], + [ + 31, + 9 + ], + [ + 32, + 9 + ], + [ + 33, + 9 + ], + [ + 34, + 9 + ], + [ + 35, + 9 + ], + [ + 36, + 9 + ], + [ + 37, + 9 + ], + [ + 38, + 9 + ], + [ + 39, + 9 + ], + [ + 40, + 9 + ], + [ + 41, + 9 + ], + [ + 42, + 9 + ], + [ + 43, + 9 + ], + [ + 44, + 9 + ], + [ + 45, + 9 + ], + [ + 46, + 9 + ], + [ + 47, + 9 + ], + [ + 48, + 9 + ], + [ + 49, + 9 + ], + [ + 50, + 9 + ], + [ + 51, + 9 + ], + [ + 52, + 9 + ], + [ + 53, + 9 + ], + [ + 54, + 9 + ], + [ + 55, + 9 + ], + [ + 56, + 9 + ], + [ + 57, + 9 + ], + [ + 58, + 9 + ], + [ + 59, + 9 + ], + [ + 60, + 9 + ], + [ + 61, + 9 + ], + [ + 62, + 9 + ], + [ + 63, + 9 + ], + [ + 64, + 9 + ], + [ + 65, + 9 + ], + [ + 66, + 9 + ], + [ + 67, + 9 + ], + [ + 68, + 9 + ], + [ + 69, + 9 + ], + [ + 70, + 9 + ], + [ + 71, + 9 + ], + [ + 72, + 9 + ], + [ + 73, + 9 + ], + [ + 74, + 9 + ], + [ + 75, + 9 + ], + [ + 76, + 9 + ], + [ + 77, + 9 + ], + [ + 78, + 9 + ], + [ + 79, + 9 + ], + [ + 80, + 9 + ], + [ + 81, + 9 + ], + [ + 82, + 9 + ], + [ + 83, + 9 + ], + [ + 84, + 9 + ], + [ + 85, + 9 + ], + [ + 86, + 9 + ], + [ + 87, + 9 + ], + [ + 88, + 9 + ], + [ + 89, + 9 + ], + [ + 90, + 9 + ], + [ + 91, + 9 + ], + [ + 92, + 9 + ], + [ + 93, + 9 + ], + [ + 94, + 9 + ], + [ + 95, + 9 + ], + [ + 96, + 9 + ], + [ + 97, + 9 + ], + [ + 98, + 9 + ], + [ + 99, + 9 + ], + [ + 100, + 9 + ], + [ + 101, + 9 + ], + [ + 102, + 9 + ], + [ + 103, + 9 + ], + [ + 104, + 9 + ], + [ + 105, + 9 + ], + [ + 106, + 9 + ], + [ + 107, + 9 + ], + [ + 108, + 9 + ], + [ + 109, + 9 + ], + [ + 110, + 9 + ], + [ + 111, + 9 + ], + [ + 112, + 9 + ], + [ + 113, + 9 + ], + [ + 114, + 9 + ], + [ + 115, + 9 + ], + [ + 116, + 9 + ], + [ + 117, + 9 + ], + [ + 118, + 9 + ], + [ + 119, + 9 + ], + [ + 120, + 9 + ], + [ + 121, + 9 + ], + [ + 122, + 9 + ], + [ + 123, + 9 + ], + [ + 124, + 9 + ], + [ + 125, + 9 + ], + [ + 126, + 9 + ], + [ + 127, + 9 + ], + [ + 128, + 9 + ], + [ + 129, + 9 + ], + [ + 130, + 9 + ], + [ + 131, + 9 + ], + [ + 132, + 9 + ], + [ + 133, + 9 + ], + [ + 134, + 9 + ], + [ + 135, + 9 + ], + [ + 136, + 9 + ], + [ + 137, + 9 + ], + [ + 138, + 9 + ], + [ + 139, + 9 + ], + [ + 140, + 9 + ], + [ + 141, + 9 + ], + [ + 142, + 9 + ], + [ + 143, + 9 + ], + [ + 144, + 9 + ], + [ + 145, + 9 + ], + [ + 146, + 9 + ], + [ + 147, + 9 + ], + [ + 148, + 9 + ], + [ + 149, + 9 + ], + [ + 150, + 9 + ], + [ + 151, + 9 + ], + [ + 152, + 9 + ], + [ + 153, + 9 + ], + [ + 154, + 9 + ], + [ + 155, + 9 + ], + [ + 156, + 9 + ], + [ + 157, + 9 + ], + [ + 158, + 9 + ], + [ + 159, + 9 + ], + [ + 160, + 9 + ], + [ + 161, + 9 + ], + [ + 162, + 9 + ], + [ + 163, + 9 + ], + [ + 164, + 9 + ], + [ + 165, + 9 + ], + [ + 166, + 9 + ], + [ + 167, + 9 + ], + [ + 168, + 9 + ], + [ + 169, + 9 + ], + [ + 170, + 9 + ], + [ + 171, + 9 + ], + [ + 172, + 9 + ], + [ + 173, + 9 + ], + [ + 174, + 9 + ], + [ + 175, + 9 + ], + [ + 176, + 9 + ], + [ + 177, + 9 + ], + [ + 178, + 9 + ], + [ + 179, + 9 + ], + [ + 180, + 9 + ], + [ + 181, + 9 + ], + [ + 182, + 9 + ], + [ + 183, + 9 + ], + [ + 184, + 9 + ], + [ + 185, + 9 + ], + [ + 186, + 9 + ], + [ + 187, + 9 + ], + [ + 188, + 9 + ], + [ + 189, + 9 + ], + [ + 190, + 9 + ], + [ + 191, + 9 + ], + [ + 192, + 9 + ], + [ + 193, + 9 + ], + [ + 194, + 9 + ], + [ + 195, + 9 + ], + [ + 196, + 9 + ], + [ + 197, + 9 + ], + [ + 198, + 9 + ], + [ + 199, + 9 + ], + [ + 200, + 9 + ], + [ + 201, + 9 + ], + [ + 202, + 9 + ], + [ + 203, + 9 + ], + [ + 204, + 9 + ], + [ + 205, + 9 + ], + [ + 206, + 9 + ], + [ + 207, + 9 + ], + [ + 208, + 9 + ], + [ + 209, + 9 + ], + [ + 210, + 9 + ], + [ + 211, + 9 + ], + [ + 212, + 9 + ], + [ + 213, + 9 + ], + [ + 214, + 9 + ], + [ + 215, + 9 + ], + [ + 216, + 9 + ], + [ + 217, + 9 + ], + [ + 218, + 9 + ], + [ + 219, + 9 + ], + [ + 220, + 9 + ], + [ + 221, + 9 + ], + [ + 222, + 9 + ], + [ + 223, + 9 + ], + [ + 224, + 9 + ], + [ + 225, + 9 + ], + [ + 226, + 9 + ], + [ + 227, + 9 + ], + [ + 228, + 9 + ], + [ + 229, + 9 + ], + [ + 230, + 9 + ], + [ + 231, + 9 + ], + [ + 232, + 9 + ], + [ + 233, + 9 + ], + [ + 234, + 9 + ], + [ + 235, + 9 + ], + [ + 236, + 9 + ], + [ + 237, + 9 + ], + [ + 238, + 9 + ], + [ + 239, + 9 + ], + [ + 240, + 9 + ], + [ + 241, + 9 + ], + [ + 242, + 9 + ], + [ + 243, + 9 + ], + [ + 244, + 9 + ], + [ + 245, + 9 + ], + [ + 246, + 9 + ], + [ + 247, + 9 + ], + [ + 248, + 9 + ], + [ + 249, + 9 + ], + [ + 250, + 9 + ], + [ + 251, + 9 + ], + [ + 252, + 9 + ], + [ + 253, + 9 + ], + [ + 254, + 9 + ], + [ + 255, + 9 + ], + [ + 256, + 9 + ], + [ + 257, + 9 + ], + [ + 258, + 9 + ], + [ + 259, + 9 + ], + [ + 260, + 9 + ], + [ + 261, + 9 + ], + [ + 262, + 9 + ], + [ + 263, + 9 + ], + [ + 264, + 9 + ], + [ + 265, + 9 + ], + [ + 266, + 9 + ], + [ + 267, + 9 + ], + [ + 268, + 9 + ], + [ + 269, + 9 + ], + [ + 270, + 9 + ], + [ + 271, + 9 + ], + [ + 272, + 9 + ], + [ + 273, + 9 + ], + [ + 274, + 9 + ], + [ + 275, + 9 + ], + [ + 276, + 9 + ], + [ + 277, + 9 + ], + [ + 278, + 9 + ], + [ + 279, + 9 + ], + [ + 280, + 9 + ], + [ + 281, + 9 + ], + [ + 282, + 9 + ], + [ + 283, + 9 + ], + [ + 284, + 9 + ], + [ + 285, + 9 + ], + [ + 286, + 9 + ], + [ + 287, + 9 + ], + [ + 288, + 9 + ], + [ + 289, + 9 + ], + [ + 290, + 9 + ], + [ + 291, + 9 + ], + [ + 292, + 9 + ], + [ + 293, + 9 + ], + [ + 294, + 9 + ], + [ + 295, + 9 + ], + [ + 296, + 9 + ], + [ + 297, + 9 + ], + [ + 298, + 9 + ], + [ + 299, + 9 + ], + [ + 300, + 9 + ], + [ + 301, + 9 + ], + [ + 302, + 9 + ], + [ + 303, + 9 + ], + [ + 304, + 9 + ], + [ + 305, + 9 + ], + [ + 306, + 9 + ], + [ + 307, + 9 + ], + [ + 308, + 9 + ], + [ + 309, + 9 + ], + [ + 310, + 9 + ], + [ + 311, + 9 + ], + [ + 312, + 9 + ], + [ + 313, + 9 + ], + [ + 314, + 9 + ], + [ + 315, + 9 + ], + [ + 316, + 9 + ], + [ + 317, + 9 + ], + [ + 318, + 9 + ], + [ + 319, + 9 + ], + [ + 320, + 9 + ], + [ + 321, + 9 + ], + [ + 322, + 9 + ], + [ + 323, + 9 + ], + [ + 324, + 9 + ], + [ + 325, + 9 + ], + [ + 326, + 9 + ], + [ + 327, + 9 + ], + [ + 328, + 9 + ], + [ + 329, + 9 + ], + [ + 330, + 9 + ], + [ + 331, + 9 + ], + [ + 332, + 9 + ], + [ + 333, + 9 + ], + [ + 334, + 9 + ], + [ + 335, + 9 + ], + [ + 336, + 9 + ], + [ + 337, + 9 + ], + [ + 338, + 9 + ], + [ + 339, + 9 + ], + [ + 340, + 9 + ], + [ + 341, + 9 + ], + [ + 342, + 9 + ], + [ + 343, + 9 + ], + [ + 344, + 9 + ], + [ + 345, + 9 + ], + [ + 346, + 9 + ], + [ + 347, + 9 + ], + [ + 348, + 9 + ], + [ + 349, + 9 + ], + [ + 350, + 9 + ], + [ + 351, + 9 + ], + [ + 352, + 9 + ], + [ + 353, + 9 + ], + [ + 354, + 9 + ], + [ + 355, + 9 + ], + [ + 356, + 9 + ], + [ + 357, + 9 + ], + [ + 358, + 9 + ], + [ + 359, + 9 + ], + [ + 360, + 9 + ], + [ + 361, + 9 + ], + [ + 362, + 9 + ], + [ + 363, + 9 + ], + [ + 364, + 9 + ], + [ + 365, + 9 + ], + [ + 366, + 9 + ], + [ + 367, + 9 + ], + [ + 368, + 9 + ], + [ + 369, + 9 + ], + [ + 370, + 9 + ], + [ + 371, + 9 + ], + [ + 372, + 9 + ], + [ + 373, + 9 + ], + [ + 374, + 9 + ], + [ + 375, + 9 + ], + [ + 376, + 9 + ], + [ + 377, + 9 + ], + [ + 378, + 9 + ], + [ + 379, + 9 + ], + [ + 380, + 9 + ], + [ + 381, + 9 + ], + [ + 382, + 9 + ], + [ + 383, + 9 + ], + [ + 384, + 9 + ], + [ + 385, + 9 + ], + [ + 386, + 9 + ], + [ + 387, + 9 + ], + [ + 388, + 9 + ], + [ + 389, + 9 + ], + [ + 390, + 9 + ], + [ + 391, + 9 + ], + [ + 392, + 9 + ], + [ + 393, + 9 + ], + [ + 394, + 9 + ], + [ + 395, + 9 + ], + [ + 396, + 9 + ], + [ + 397, + 9 + ], + [ + 398, + 9 + ], + [ + 399, + 9 + ], + [ + 400, + 9 + ], + [ + 401, + 9 + ], + [ + 402, + 9 + ], + [ + 403, + 9 + ], + [ + 404, + 9 + ], + [ + 405, + 9 + ], + [ + 406, + 9 + ], + [ + 407, + 9 + ], + [ + 408, + 9 + ], + [ + 409, + 9 + ], + [ + 410, + 9 + ], + [ + 411, + 9 + ], + [ + 412, + 9 + ], + [ + 413, + 9 + ], + [ + 414, + 9 + ], + [ + 415, + 9 + ], + [ + 416, + 9 + ], + [ + 417, + 9 + ], + [ + 418, + 9 + ], + [ + 419, + 9 + ], + [ + 420, + 9 + ], + [ + 421, + 9 + ], + [ + 422, + 9 + ], + [ + 423, + 9 + ], + [ + 424, + 9 + ], + [ + 425, + 9 + ], + [ + 426, + 9 + ], + [ + 427, + 9 + ], + [ + 428, + 9 + ], + [ + 429, + 9 + ], + [ + 430, + 9 + ], + [ + 431, + 9 + ], + [ + 432, + 9 + ], + [ + 433, + 9 + ], + [ + 434, + 9 + ], + [ + 435, + 9 + ], + [ + 436, + 9 + ], + [ + 437, + 9 + ], + [ + 438, + 9 + ], + [ + 439, + 9 + ], + [ + 440, + 9 + ], + [ + 441, + 9 + ], + [ + 442, + 9 + ], + [ + 443, + 9 + ], + [ + 444, + 9 + ], + [ + 445, + 9 + ], + [ + 446, + 9 + ], + [ + 447, + 9 + ], + [ + 448, + 9 + ], + [ + 449, + 9 + ], + [ + 450, + 9 + ], + [ + 451, + 9 + ], + [ + 452, + 9 + ], + [ + 453, + 9 + ], + [ + 454, + 9 + ], + [ + 455, + 9 + ], + [ + 456, + 9 + ], + [ + 457, + 9 + ], + [ + 458, + 9 + ], + [ + 459, + 9 + ], + [ + 460, + 9 + ], + [ + 461, + 9 + ], + [ + 462, + 9 + ], + [ + 463, + 9 + ], + [ + 464, + 9 + ], + [ + 465, + 9 + ], + [ + 466, + 9 + ], + [ + 467, + 9 + ], + [ + 468, + 9 + ], + [ + 469, + 9 + ], + [ + 470, + 9 + ], + [ + 471, + 9 + ], + [ + 472, + 9 + ], + [ + 473, + 9 + ], + [ + 474, + 9 + ], + [ + 475, + 9 + ], + [ + 476, + 9 + ], + [ + 477, + 9 + ], + [ + 478, + 9 + ], + [ + 479, + 9 + ], + [ + 480, + 9 + ], + [ + 481, + 9 + ], + [ + 482, + 9 + ], + [ + 483, + 9 + ], + [ + 484, + 9 + ], + [ + 485, + 9 + ], + [ + 486, + 9 + ], + [ + 487, + 9 + ], + [ + 488, + 9 + ], + [ + 489, + 9 + ], + [ + 490, + 9 + ], + [ + 491, + 9 + ], + [ + 492, + 9 + ], + [ + 493, + 9 + ], + [ + 494, + 9 + ], + [ + 495, + 9 + ], + [ + 496, + 9 + ], + [ + 497, + 9 + ], + [ + 498, + 9 + ], + [ + 499, + 9 + ], + [ + 500, + 9 + ], + [ + 501, + 9 + ], + [ + 502, + 9 + ], + [ + 503, + 9 + ], + [ + 504, + 9 + ], + [ + 505, + 9 + ], + [ + 506, + 9 + ], + [ + 507, + 9 + ], + [ + 508, + 9 + ], + [ + 509, + 9 + ], + [ + 510, + 9 + ], + [ + 511, + 9 + ], + [ + 512, + 9 + ], + [ + 513, + 9 + ], + [ + 514, + 9 + ], + [ + 515, + 9 + ], + [ + 516, + 9 + ], + [ + 517, + 9 + ], + [ + 518, + 9 + ], + [ + 519, + 9 + ], + [ + 520, + 9 + ], + [ + 521, + 9 + ], + [ + 522, + 9 + ], + [ + 523, + 9 + ], + [ + 524, + 9 + ], + [ + 525, + 9 + ], + [ + 526, + 9 + ], + [ + 527, + 9 + ], + [ + 528, + 9 + ], + [ + 529, + 9 + ], + [ + 530, + 9 + ], + [ + 531, + 9 + ], + [ + 532, + 9 + ], + [ + 533, + 9 + ], + [ + 534, + 9 + ], + [ + 535, + 9 + ], + [ + 536, + 9 + ], + [ + 537, + 9 + ], + [ + 538, + 9 + ], + [ + 539, + 9 + ], + [ + 540, + 9 + ], + [ + 541, + 9 + ], + [ + 542, + 9 + ], + [ + 543, + 9 + ], + [ + 544, + 9 + ], + [ + 545, + 9 + ], + [ + 546, + 9 + ], + [ + 547, + 9 + ], + [ + 548, + 9 + ], + [ + 549, + 9 + ], + [ + 550, + 9 + ], + [ + 551, + 9 + ], + [ + 552, + 9 + ], + [ + 553, + 9 + ], + [ + 554, + 9 + ], + [ + 555, + 9 + ], + [ + 556, + 9 + ], + [ + 557, + 9 + ], + [ + 558, + 9 + ], + [ + 559, + 9 + ], + [ + 560, + 9 + ], + [ + 561, + 9 + ], + [ + 562, + 9 + ], + [ + 563, + 9 + ], + [ + 564, + 9 + ], + [ + 565, + 9 + ], + [ + 566, + 9 + ], + [ + 567, + 9 + ], + [ + 568, + 9 + ], + [ + 569, + 9 + ], + [ + 570, + 9 + ], + [ + 571, + 9 + ], + [ + 572, + 9 + ], + [ + 573, + 9 + ], + [ + 574, + 9 + ], + [ + 575, + 9 + ], + [ + 576, + 9 + ], + [ + 577, + 9 + ], + [ + 578, + 9 + ], + [ + 579, + 9 + ], + [ + 580, + 9 + ], + [ + 581, + 9 + ], + [ + 582, + 9 + ], + [ + 583, + 9 + ], + [ + 584, + 9 + ], + [ + 585, + 9 + ], + [ + 586, + 9 + ], + [ + 587, + 9 + ], + [ + 588, + 9 + ], + [ + 589, + 9 + ], + [ + 590, + 9 + ], + [ + 591, + 9 + ], + [ + 592, + 9 + ], + [ + 593, + 9 + ], + [ + 594, + 9 + ], + [ + 595, + 9 + ], + [ + 596, + 9 + ], + [ + 597, + 9 + ], + [ + 598, + 9 + ], + [ + 599, + 9 + ], + [ + 600, + 9 + ], + [ + 601, + 9 + ], + [ + 602, + 9 + ], + [ + 603, + 9 + ], + [ + 604, + 9 + ], + [ + 605, + 9 + ], + [ + 606, + 9 + ], + [ + 607, + 9 + ], + [ + 608, + 9 + ], + [ + 609, + 9 + ], + [ + 610, + 9 + ], + [ + 611, + 9 + ], + [ + 612, + 9 + ], + [ + 613, + 9 + ], + [ + 614, + 9 + ], + [ + 615, + 9 + ], + [ + 616, + 9 + ], + [ + 617, + 9 + ], + [ + 618, + 9 + ], + [ + 619, + 9 + ], + [ + 620, + 9 + ], + [ + 621, + 9 + ], + [ + 622, + 9 + ], + [ + 623, + 9 + ], + [ + 624, + 9 + ], + [ + 625, + 9 + ], + [ + 626, + 9 + ], + [ + 627, + 9 + ], + [ + 628, + 9 + ], + [ + 629, + 9 + ], + [ + 630, + 9 + ], + [ + 631, + 9 + ], + [ + 632, + 9 + ], + [ + 633, + 9 + ], + [ + 634, + 9 + ], + [ + 635, + 9 + ], + [ + 636, + 9 + ], + [ + 637, + 9 + ], + [ + 638, + 9 + ], + [ + 639, + 9 + ], + [ + 640, + 9 + ], + [ + 641, + 9 + ], + [ + 642, + 9 + ], + [ + 643, + 9 + ], + [ + 644, + 9 + ], + [ + 645, + 9 + ], + [ + 646, + 9 + ], + [ + 647, + 9 + ], + [ + 648, + 9 + ], + [ + 649, + 9 + ], + [ + 650, + 9 + ], + [ + 651, + 9 + ], + [ + 652, + 9 + ], + [ + 653, + 9 + ], + [ + 654, + 9 + ], + [ + 655, + 9 + ], + [ + 656, + 9 + ], + [ + 657, + 9 + ], + [ + 658, + 9 + ], + [ + 659, + 9 + ], + [ + 660, + 9 + ], + [ + 661, + 9 + ], + [ + 662, + 9 + ], + [ + 663, + 9 + ], + [ + 664, + 9 + ], + [ + 665, + 9 + ], + [ + 666, + 9 + ], + [ + 667, + 9 + ], + [ + 668, + 9 + ], + [ + 669, + 9 + ], + [ + 670, + 9 + ], + [ + 671, + 9 + ], + [ + 672, + 9 + ], + [ + 673, + 9 + ], + [ + 674, + 9 + ], + [ + 675, + 9 + ], + [ + 676, + 9 + ], + [ + 677, + 9 + ], + [ + 678, + 9 + ], + [ + 679, + 9 + ], + [ + 680, + 9 + ], + [ + 681, + 9 + ], + [ + 682, + 9 + ], + [ + 683, + 9 + ], + [ + 684, + 9 + ], + [ + 685, + 9 + ], + [ + 686, + 9 + ], + [ + 687, + 9 + ], + [ + 688, + 9 + ], + [ + 689, + 9 + ], + [ + 690, + 9 + ], + [ + 691, + 9 + ], + [ + 692, + 9 + ], + [ + 693, + 9 + ], + [ + 694, + 9 + ], + [ + 695, + 9 + ], + [ + 696, + 9 + ], + [ + 697, + 9 + ], + [ + 698, + 9 + ], + [ + 699, + 9 + ], + [ + 700, + 9 + ], + [ + 701, + 9 + ], + [ + 702, + 9 + ], + [ + 703, + 9 + ], + [ + 704, + 9 + ], + [ + 705, + 9 + ], + [ + 706, + 9 + ], + [ + 707, + 9 + ], + [ + 708, + 9 + ], + [ + 709, + 9 + ], + [ + 710, + 9 + ], + [ + 711, + 9 + ], + [ + 712, + 9 + ], + [ + 713, + 9 + ], + [ + 714, + 9 + ], + [ + 715, + 9 + ], + [ + 716, + 9 + ], + [ + 717, + 9 + ], + [ + 718, + 9 + ], + [ + 719, + 9 + ], + [ + 720, + 9 + ], + [ + 721, + 9 + ], + [ + 722, + 9 + ], + [ + 723, + 9 + ], + [ + 724, + 9 + ], + [ + 725, + 9 + ], + [ + 726, + 9 + ], + [ + 727, + 9 + ], + [ + 728, + 9 + ], + [ + 729, + 9 + ], + [ + 730, + 9 + ], + [ + 731, + 9 + ], + [ + 732, + 9 + ], + [ + 733, + 9 + ], + [ + 734, + 9 + ], + [ + 735, + 9 + ], + [ + 736, + 9 + ], + [ + 737, + 9 + ], + [ + 738, + 9 + ], + [ + 739, + 9 + ], + [ + 740, + 9 + ], + [ + 741, + 9 + ], + [ + 742, + 9 + ], + [ + 743, + 9 + ], + [ + 744, + 9 + ], + [ + 745, + 9 + ], + [ + 746, + 9 + ], + [ + 747, + 9 + ], + [ + 748, + 9 + ], + [ + 749, + 9 + ], + [ + 750, + 9 + ], + [ + 751, + 9 + ], + [ + 752, + 9 + ], + [ + 753, + 9 + ], + [ + 754, + 9 + ], + [ + 755, + 9 + ], + [ + 756, + 9 + ], + [ + 757, + 9 + ], + [ + 758, + 9 + ], + [ + 759, + 9 + ], + [ + 760, + 9 + ], + [ + 761, + 9 + ], + [ + 762, + 9 + ], + [ + 763, + 9 + ], + [ + 764, + 9 + ], + [ + 765, + 9 + ], + [ + 766, + 9 + ], + [ + 767, + 9 + ], + [ + 768, + 9 + ], + [ + 769, + 9 + ], + [ + 770, + 9 + ], + [ + 771, + 9 + ], + [ + 772, + 9 + ], + [ + 773, + 9 + ], + [ + 774, + 9 + ], + [ + 775, + 9 + ], + [ + 776, + 9 + ], + [ + 777, + 9 + ], + [ + 778, + 9 + ], + [ + 779, + 9 + ], + [ + 780, + 9 + ], + [ + 781, + 9 + ], + [ + 782, + 9 + ], + [ + 783, + 9 + ], + [ + 784, + 9 + ], + [ + 785, + 9 + ], + [ + 786, + 9 + ], + [ + 787, + 9 + ], + [ + 788, + 9 + ], + [ + 789, + 9 + ], + [ + 790, + 9 + ], + [ + 791, + 9 + ], + [ + 792, + 9 + ], + [ + 793, + 9 + ], + [ + 794, + 9 + ], + [ + 795, + 9 + ], + [ + 796, + 9 + ], + [ + 797, + 9 + ], + [ + 798, + 9 + ], + [ + 799, + 9 + ], + [ + 800, + 9 + ], + [ + 801, + 9 + ], + [ + 802, + 9 + ], + [ + 803, + 9 + ], + [ + 804, + 9 + ], + [ + 805, + 9 + ], + [ + 806, + 9 + ], + [ + 807, + 9 + ], + [ + 808, + 9 + ], + [ + 809, + 9 + ], + [ + 810, + 9 + ], + [ + 811, + 9 + ], + [ + 812, + 9 + ], + [ + 813, + 9 + ], + [ + 814, + 9 + ], + [ + 815, + 9 + ], + [ + 816, + 9 + ], + [ + 817, + 9 + ], + [ + 818, + 9 + ], + [ + 819, + 9 + ], + [ + 820, + 9 + ], + [ + 821, + 9 + ], + [ + 822, + 9 + ], + [ + 823, + 9 + ], + [ + 824, + 9 + ], + [ + 825, + 9 + ], + [ + 826, + 9 + ], + [ + 827, + 9 + ], + [ + 828, + 9 + ], + [ + 829, + 9 + ], + [ + 830, + 9 + ], + [ + 831, + 9 + ], + [ + 832, + 9 + ], + [ + 833, + 9 + ], + [ + 834, + 9 + ], + [ + 835, + 9 + ], + [ + 836, + 9 + ], + [ + 837, + 9 + ], + [ + 838, + 9 + ], + [ + 839, + 9 + ], + [ + 840, + 9 + ], + [ + 841, + 9 + ], + [ + 842, + 9 + ], + [ + 843, + 9 + ], + [ + 844, + 9 + ], + [ + 845, + 9 + ], + [ + 846, + 9 + ], + [ + 847, + 9 + ], + [ + 848, + 9 + ], + [ + 849, + 9 + ], + [ + 850, + 9 + ], + [ + 851, + 9 + ], + [ + 852, + 9 + ], + [ + 853, + 9 + ], + [ + 854, + 9 + ], + [ + 855, + 9 + ], + [ + 856, + 9 + ], + [ + 857, + 9 + ], + [ + 858, + 9 + ], + [ + 859, + 9 + ], + [ + 860, + 9 + ], + [ + 861, + 9 + ], + [ + 862, + 9 + ], + [ + 863, + 9 + ], + [ + 864, + 9 + ], + [ + 865, + 9 + ], + [ + 866, + 9 + ], + [ + 867, + 9 + ], + [ + 868, + 9 + ], + [ + 869, + 9 + ], + [ + 870, + 9 + ], + [ + 871, + 9 + ], + [ + 872, + 9 + ], + [ + 873, + 9 + ], + [ + 874, + 9 + ], + [ + 875, + 9 + ], + [ + 876, + 9 + ], + [ + 877, + 9 + ], + [ + 878, + 9 + ], + [ + 879, + 9 + ], + [ + 880, + 9 + ], + [ + 881, + 9 + ], + [ + 882, + 9 + ], + [ + 883, + 9 + ], + [ + 884, + 9 + ], + [ + 885, + 9 + ], + [ + 886, + 9 + ], + [ + 887, + 9 + ], + [ + 888, + 9 + ], + [ + 889, + 9 + ], + [ + 890, + 9 + ], + [ + 891, + 9 + ], + [ + 892, + 9 + ], + [ + 893, + 9 + ], + [ + 894, + 9 + ], + [ + 895, + 9 + ], + [ + 896, + 9 + ], + [ + 897, + 9 + ], + [ + 898, + 9 + ], + [ + 899, + 9 + ], + [ + 900, + 9 + ], + [ + 901, + 9 + ], + [ + 902, + 9 + ], + [ + 903, + 9 + ], + [ + 904, + 9 + ], + [ + 905, + 9 + ], + [ + 906, + 9 + ], + [ + 907, + 9 + ], + [ + 908, + 9 + ], + [ + 909, + 9 + ], + [ + 910, + 9 + ], + [ + 911, + 9 + ], + [ + 912, + 9 + ], + [ + 913, + 9 + ], + [ + 914, + 9 + ], + [ + 915, + 9 + ], + [ + 916, + 9 + ], + [ + 917, + 9 + ], + [ + 918, + 9 + ], + [ + 919, + 9 + ], + [ + 920, + 9 + ], + [ + 921, + 9 + ], + [ + 922, + 9 + ], + [ + 923, + 9 + ], + [ + 924, + 9 + ], + [ + 925, + 9 + ], + [ + 926, + 9 + ], + [ + 927, + 9 + ], + [ + 928, + 9 + ], + [ + 929, + 9 + ], + [ + 930, + 9 + ], + [ + 931, + 9 + ], + [ + 932, + 9 + ], + [ + 933, + 9 + ], + [ + 934, + 9 + ], + [ + 935, + 9 + ], + [ + 936, + 9 + ], + [ + 937, + 9 + ], + [ + 938, + 9 + ], + [ + 939, + 9 + ], + [ + 940, + 9 + ], + [ + 941, + 9 + ], + [ + 942, + 9 + ], + [ + 943, + 9 + ], + [ + 944, + 9 + ], + [ + 945, + 9 + ], + [ + 946, + 9 + ], + [ + 947, + 9 + ], + [ + 948, + 9 + ], + [ + 949, + 9 + ], + [ + 950, + 9 + ], + [ + 951, + 9 + ], + [ + 952, + 9 + ], + [ + 953, + 9 + ], + [ + 954, + 9 + ], + [ + 955, + 9 + ], + [ + 956, + 9 + ], + [ + 957, + 9 + ], + [ + 958, + 9 + ], + [ + 959, + 9 + ], + [ + 960, + 9 + ], + [ + 961, + 9 + ], + [ + 962, + 9 + ], + [ + 963, + 9 + ], + [ + 964, + 9 + ], + [ + 965, + 9 + ], + [ + 966, + 9 + ], + [ + 967, + 9 + ], + [ + 968, + 9 + ], + [ + 969, + 9 + ], + [ + 970, + 9 + ], + [ + 971, + 9 + ], + [ + 972, + 9 + ], + [ + 973, + 9 + ], + [ + 974, + 9 + ], + [ + 975, + 9 + ], + [ + 976, + 9 + ], + [ + 977, + 9 + ], + [ + 978, + 9 + ], + [ + 979, + 9 + ], + [ + 980, + 9 + ], + [ + 981, + 9 + ], + [ + 982, + 9 + ], + [ + 983, + 9 + ], + [ + 984, + 9 + ], + [ + 985, + 9 + ], + [ + 986, + 9 + ], + [ + 987, + 9 + ], + [ + 988, + 9 + ], + [ + 989, + 9 + ], + [ + 990, + 9 + ], + [ + 991, + 9 + ], + [ + 992, + 9 + ], + [ + 993, + 9 + ], + [ + 994, + 9 + ], + [ + 995, + 9 + ], + [ + 996, + 9 + ], + [ + 997, + 9 + ], + [ + 998, + 9 + ], + [ + 999, + 9 + ], + [ + 1000, + 9 + ], + [ + 1001, + 9 + ], + [ + 1002, + 9 + ], + [ + 1004, + 9 + ], + [ + 1003, + 9 + ], + [ + 1005, + 9 + ], + [ + 1006, + 8 + ] + ], + "hit_ranks": [ + 0, + 67, + 134, + 201, + 268, + 335, + 402, + 469, + 536, + 603, + 670, + 737, + 804, + 871, + 938, + 1005 + ], + "oracle_ranges": [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + "rss_bytes": null + }, + "stage_rows": [ + [ + -1, + 0, + 24300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 1, + 6439900, + 100800, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [], + true, + null + ], + [ + -1, + 2, + 1100, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 3, + 11010700, + 1027900, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 4, + 1666300, + null, + 0, + 0, + 0, + 0, + 1011, + 511551, + 0, + 0, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 5, + 32035400, + null, + 0, + 0, + 0, + 0, + 16241, + 8193926, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 0, + 1100, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 1, + 8633100, + 973800, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [], + true, + null + ], + [ + 0, + 2, + 800, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 3, + 6077500, + 99300, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 4, + 1412900, + null, + 0, + 0, + 0, + 0, + 1011, + 511551, + 0, + 0, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 5, + 30976500, + null, + 0, + 0, + 0, + 0, + 16241, + 8193926, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 0, + 1100, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 1, + 7548500, + 360200, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [], + true, + null + ], + [ + 1, + 2, + 1600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 3, + 6966300, + 208000, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 4, + 2826900, + null, + 0, + 0, + 0, + 0, + 1011, + 511551, + 0, + 0, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 5, + 30491100, + null, + 0, + 0, + 0, + 0, + 16241, + 8193926, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 0, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 1, + 6732700, + 534700, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [], + true, + null + ], + [ + 2, + 2, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 3, + 6722600, + 190600, + 158, + 10059, + 8047, + 1006, + 3300, + 1583289, + 0, + 0, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 4, + 1450900, + null, + 0, + 0, + 0, + 0, + 1011, + 511551, + 0, + 0, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 5, + 28524600, + null, + 0, + 0, + 0, + 0, + 16241, + 8193926, + 0, + 0, + 2, + [], + true, + null + ] + ], + "raw_stdout": { + "bytes": 18920, + "sha256": "469d0ecb1bee7853a87b327d4e3ba2d1c67cb22d1910da8d15170516d9621347" + }, + "raw_stderr": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "raw_protocol_lines": 25, + "target_exit_code": 0, + "target_timed_out": false, + "target_supervised_elapsed_seconds": 0.20300000000861473, + "current_offline_decoder_passed": true, + "rss_bytes": null, + "stdout_exact_roundtrip": true, + "summary": { + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "six_endpoint_sum_ns": [ + 51177700, + 47101900, + 47835500, + 43432800 + ], + "stage_retained_ns": { + "cold_absent_start": { + "min": 1000, + "median": 1100, + "max": 1100, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "cold_absent_step": { + "min": 6732700, + "median": 7548500, + "max": 8633100, + "max_step_min": 360200, + "max_step_median": 534700, + "max_step_max": 973800 + }, + "warm_needle_start": { + "min": 800, + "median": 1000, + "max": 1600, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "warm_needle_step": { + "min": 6077500, + "median": 6722600, + "max": 6966300, + "max_step_min": 99300, + "max_step_median": 190600, + "max_step_max": 208000 + }, + "last_match": { + "min": 1412900, + "median": 1450900, + "max": 2826900, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "navigate_no_wrap": { + "min": 28524600, + "median": 30491100, + "max": 30976500, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + } + } + } + }, + { + "case_id": "static-search-lazy_table-100", + "adapter": "lazy_table", + "history": 100, + "fixture": { + "retained_rows": 106, + "epoch": 0, + "order_revision": 1, + "sorted_proven": false, + "rows": [ + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ], + [ + 17, + 9 + ], + [ + 18, + 9 + ], + [ + 19, + 9 + ], + [ + 20, + 9 + ], + [ + 21, + 9 + ], + [ + 22, + 9 + ], + [ + 23, + 9 + ], + [ + 24, + 9 + ], + [ + 25, + 9 + ], + [ + 26, + 9 + ], + [ + 27, + 9 + ], + [ + 28, + 9 + ], + [ + 29, + 9 + ], + [ + 30, + 9 + ], + [ + 31, + 9 + ], + [ + 32, + 9 + ], + [ + 33, + 9 + ], + [ + 34, + 9 + ], + [ + 35, + 9 + ], + [ + 36, + 9 + ], + [ + 37, + 9 + ], + [ + 38, + 9 + ], + [ + 39, + 9 + ], + [ + 40, + 9 + ], + [ + 41, + 9 + ], + [ + 42, + 9 + ], + [ + 43, + 9 + ], + [ + 44, + 9 + ], + [ + 45, + 9 + ], + [ + 46, + 9 + ], + [ + 47, + 9 + ], + [ + 48, + 9 + ], + [ + 49, + 9 + ], + [ + 50, + 9 + ], + [ + 51, + 9 + ], + [ + 52, + 9 + ], + [ + 53, + 9 + ], + [ + 54, + 9 + ], + [ + 55, + 9 + ], + [ + 56, + 9 + ], + [ + 57, + 9 + ], + [ + 58, + 9 + ], + [ + 59, + 9 + ], + [ + 60, + 9 + ], + [ + 61, + 9 + ], + [ + 62, + 9 + ], + [ + 63, + 9 + ], + [ + 64, + 9 + ], + [ + 65, + 9 + ], + [ + 66, + 9 + ], + [ + 67, + 9 + ], + [ + 68, + 9 + ], + [ + 69, + 9 + ], + [ + 70, + 9 + ], + [ + 71, + 9 + ], + [ + 72, + 9 + ], + [ + 73, + 9 + ], + [ + 74, + 9 + ], + [ + 75, + 9 + ], + [ + 76, + 9 + ], + [ + 77, + 9 + ], + [ + 78, + 9 + ], + [ + 79, + 9 + ], + [ + 80, + 9 + ], + [ + 81, + 9 + ], + [ + 82, + 9 + ], + [ + 83, + 9 + ], + [ + 84, + 9 + ], + [ + 85, + 9 + ], + [ + 86, + 9 + ], + [ + 87, + 9 + ], + [ + 88, + 9 + ], + [ + 89, + 9 + ], + [ + 90, + 9 + ], + [ + 91, + 9 + ], + [ + 92, + 9 + ], + [ + 93, + 9 + ], + [ + 94, + 9 + ], + [ + 95, + 9 + ], + [ + 96, + 9 + ], + [ + 97, + 9 + ], + [ + 98, + 9 + ], + [ + 99, + 9 + ], + [ + 100, + 9 + ], + [ + 101, + 9 + ], + [ + 102, + 9 + ], + [ + 104, + 9 + ], + [ + 103, + 9 + ], + [ + 105, + 9 + ], + [ + 106, + 8 + ] + ], + "hit_ranks": [ + 0, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 63, + 70, + 77, + 84, + 91, + 98, + 105 + ], + "oracle_ranges": [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + "rss_bytes": null + }, + "stage_rows": [ + [ + -1, + 0, + 1600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 1, + 142800, + 15800, + 17, + 1059, + 847, + 106, + 346, + 2360, + 1, + 1696, + 2, + [], + true, + null + ], + [ + -1, + 2, + 300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1696, + 1, + [], + true, + null + ], + [ + -1, + 3, + 155300, + 22300, + 17, + 1059, + 847, + 106, + 346, + 2360, + 0, + 1696, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 4, + 16800, + null, + 0, + 0, + 0, + 0, + 111, + 757, + 0, + 1696, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 5, + 45600, + null, + 0, + 0, + 0, + 0, + 1841, + 12560, + 0, + 1696, + 2, + [], + true, + null + ], + [ + 0, + 0, + 600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 1, + 135200, + 12600, + 17, + 1059, + 847, + 106, + 346, + 2360, + 1, + 1696, + 2, + [], + true, + null + ], + [ + 0, + 2, + 300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1696, + 1, + [], + true, + null + ], + [ + 0, + 3, + 128300, + 10000, + 17, + 1059, + 847, + 106, + 346, + 2360, + 0, + 1696, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 4, + 4000, + null, + 0, + 0, + 0, + 0, + 111, + 757, + 0, + 1696, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 5, + 34900, + null, + 0, + 0, + 0, + 0, + 1841, + 12560, + 0, + 1696, + 2, + [], + true, + null + ], + [ + 1, + 0, + 500, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 1, + 123600, + 11800, + 17, + 1059, + 847, + 106, + 346, + 2360, + 1, + 1696, + 2, + [], + true, + null + ], + [ + 1, + 2, + 300, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1696, + 1, + [], + true, + null + ], + [ + 1, + 3, + 147300, + 25700, + 17, + 1059, + 847, + 106, + 346, + 2360, + 0, + 1696, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 4, + 4000, + null, + 0, + 0, + 0, + 0, + 111, + 757, + 0, + 1696, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 5, + 32800, + null, + 0, + 0, + 0, + 0, + 1841, + 12560, + 0, + 1696, + 2, + [], + true, + null + ], + [ + 2, + 0, + 700, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 1, + 120200, + 11700, + 17, + 1059, + 847, + 106, + 346, + 2360, + 1, + 1696, + 2, + [], + true, + null + ], + [ + 2, + 2, + 200, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1696, + 1, + [], + true, + null + ], + [ + 2, + 3, + 119200, + 8900, + 17, + 1059, + 847, + 106, + 346, + 2360, + 0, + 1696, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 8, + 9, + 0, + 0, + 8, + 9, + 6, + 0 + ], + [ + 15, + 9, + 0, + 0, + 15, + 9, + 6, + 0 + ], + [ + 22, + 9, + 0, + 0, + 22, + 9, + 6, + 0 + ], + [ + 29, + 9, + 0, + 0, + 29, + 9, + 6, + 0 + ], + [ + 36, + 9, + 0, + 0, + 36, + 9, + 6, + 0 + ], + [ + 43, + 9, + 0, + 0, + 43, + 9, + 6, + 0 + ], + [ + 50, + 9, + 0, + 0, + 50, + 9, + 6, + 0 + ], + [ + 57, + 9, + 0, + 0, + 57, + 9, + 6, + 0 + ], + [ + 64, + 9, + 0, + 0, + 64, + 9, + 6, + 0 + ], + [ + 71, + 9, + 0, + 0, + 71, + 9, + 6, + 0 + ], + [ + 78, + 9, + 0, + 0, + 78, + 9, + 6, + 0 + ], + [ + 85, + 9, + 0, + 0, + 85, + 9, + 6, + 0 + ], + [ + 92, + 9, + 0, + 0, + 92, + 9, + 6, + 0 + ], + [ + 99, + 9, + 0, + 0, + 99, + 9, + 6, + 0 + ], + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 4, + 3700, + null, + 0, + 0, + 0, + 0, + 111, + 757, + 0, + 1696, + 2, + [ + [ + 106, + 8, + 0, + 0, + 106, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 5, + 33500, + null, + 0, + 0, + 0, + 0, + 1841, + 12560, + 0, + 1696, + 2, + [], + true, + null + ] + ], + "raw_stdout": { + "bytes": 11584, + "sha256": "45458eb0257d06112d60b9ab4ab32e6857617d5eb88f6fc0c19f98a5bf0ec241" + }, + "raw_stderr": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "raw_protocol_lines": 25, + "target_exit_code": 0, + "target_timed_out": false, + "target_supervised_elapsed_seconds": 0.031000000017229468, + "current_offline_decoder_passed": true, + "rss_bytes": null, + "stdout_exact_roundtrip": true, + "summary": { + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "six_endpoint_sum_ns": [ + 362400, + 303300, + 308500, + 277500 + ], + "stage_retained_ns": { + "cold_absent_start": { + "min": 500, + "median": 600, + "max": 700, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "cold_absent_step": { + "min": 120200, + "median": 123600, + "max": 135200, + "max_step_min": 11700, + "max_step_median": 11800, + "max_step_max": 12600 + }, + "warm_needle_start": { + "min": 200, + "median": 300, + "max": 300, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "warm_needle_step": { + "min": 119200, + "median": 128300, + "max": 147300, + "max_step_min": 8900, + "max_step_median": 10000, + "max_step_max": 25700 + }, + "last_match": { + "min": 3700, + "median": 4000, + "max": 4000, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "navigate_no_wrap": { + "min": 32800, + "median": 33500, + "max": 34900, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + } + } + } + }, + { + "case_id": "static-search-lazy_table-1000", + "adapter": "lazy_table", + "history": 1000, + "fixture": { + "retained_rows": 1006, + "epoch": 0, + "order_revision": 1, + "sorted_proven": false, + "rows": [ + [ + 1, + 9 + ], + [ + 2, + 9 + ], + [ + 3, + 9 + ], + [ + 4, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 8, + 9 + ], + [ + 9, + 9 + ], + [ + 10, + 9 + ], + [ + 11, + 9 + ], + [ + 12, + 9 + ], + [ + 13, + 9 + ], + [ + 14, + 9 + ], + [ + 15, + 9 + ], + [ + 16, + 9 + ], + [ + 17, + 9 + ], + [ + 18, + 9 + ], + [ + 19, + 9 + ], + [ + 20, + 9 + ], + [ + 21, + 9 + ], + [ + 22, + 9 + ], + [ + 23, + 9 + ], + [ + 24, + 9 + ], + [ + 25, + 9 + ], + [ + 26, + 9 + ], + [ + 27, + 9 + ], + [ + 28, + 9 + ], + [ + 29, + 9 + ], + [ + 30, + 9 + ], + [ + 31, + 9 + ], + [ + 32, + 9 + ], + [ + 33, + 9 + ], + [ + 34, + 9 + ], + [ + 35, + 9 + ], + [ + 36, + 9 + ], + [ + 37, + 9 + ], + [ + 38, + 9 + ], + [ + 39, + 9 + ], + [ + 40, + 9 + ], + [ + 41, + 9 + ], + [ + 42, + 9 + ], + [ + 43, + 9 + ], + [ + 44, + 9 + ], + [ + 45, + 9 + ], + [ + 46, + 9 + ], + [ + 47, + 9 + ], + [ + 48, + 9 + ], + [ + 49, + 9 + ], + [ + 50, + 9 + ], + [ + 51, + 9 + ], + [ + 52, + 9 + ], + [ + 53, + 9 + ], + [ + 54, + 9 + ], + [ + 55, + 9 + ], + [ + 56, + 9 + ], + [ + 57, + 9 + ], + [ + 58, + 9 + ], + [ + 59, + 9 + ], + [ + 60, + 9 + ], + [ + 61, + 9 + ], + [ + 62, + 9 + ], + [ + 63, + 9 + ], + [ + 64, + 9 + ], + [ + 65, + 9 + ], + [ + 66, + 9 + ], + [ + 67, + 9 + ], + [ + 68, + 9 + ], + [ + 69, + 9 + ], + [ + 70, + 9 + ], + [ + 71, + 9 + ], + [ + 72, + 9 + ], + [ + 73, + 9 + ], + [ + 74, + 9 + ], + [ + 75, + 9 + ], + [ + 76, + 9 + ], + [ + 77, + 9 + ], + [ + 78, + 9 + ], + [ + 79, + 9 + ], + [ + 80, + 9 + ], + [ + 81, + 9 + ], + [ + 82, + 9 + ], + [ + 83, + 9 + ], + [ + 84, + 9 + ], + [ + 85, + 9 + ], + [ + 86, + 9 + ], + [ + 87, + 9 + ], + [ + 88, + 9 + ], + [ + 89, + 9 + ], + [ + 90, + 9 + ], + [ + 91, + 9 + ], + [ + 92, + 9 + ], + [ + 93, + 9 + ], + [ + 94, + 9 + ], + [ + 95, + 9 + ], + [ + 96, + 9 + ], + [ + 97, + 9 + ], + [ + 98, + 9 + ], + [ + 99, + 9 + ], + [ + 100, + 9 + ], + [ + 101, + 9 + ], + [ + 102, + 9 + ], + [ + 103, + 9 + ], + [ + 104, + 9 + ], + [ + 105, + 9 + ], + [ + 106, + 9 + ], + [ + 107, + 9 + ], + [ + 108, + 9 + ], + [ + 109, + 9 + ], + [ + 110, + 9 + ], + [ + 111, + 9 + ], + [ + 112, + 9 + ], + [ + 113, + 9 + ], + [ + 114, + 9 + ], + [ + 115, + 9 + ], + [ + 116, + 9 + ], + [ + 117, + 9 + ], + [ + 118, + 9 + ], + [ + 119, + 9 + ], + [ + 120, + 9 + ], + [ + 121, + 9 + ], + [ + 122, + 9 + ], + [ + 123, + 9 + ], + [ + 124, + 9 + ], + [ + 125, + 9 + ], + [ + 126, + 9 + ], + [ + 127, + 9 + ], + [ + 128, + 9 + ], + [ + 129, + 9 + ], + [ + 130, + 9 + ], + [ + 131, + 9 + ], + [ + 132, + 9 + ], + [ + 133, + 9 + ], + [ + 134, + 9 + ], + [ + 135, + 9 + ], + [ + 136, + 9 + ], + [ + 137, + 9 + ], + [ + 138, + 9 + ], + [ + 139, + 9 + ], + [ + 140, + 9 + ], + [ + 141, + 9 + ], + [ + 142, + 9 + ], + [ + 143, + 9 + ], + [ + 144, + 9 + ], + [ + 145, + 9 + ], + [ + 146, + 9 + ], + [ + 147, + 9 + ], + [ + 148, + 9 + ], + [ + 149, + 9 + ], + [ + 150, + 9 + ], + [ + 151, + 9 + ], + [ + 152, + 9 + ], + [ + 153, + 9 + ], + [ + 154, + 9 + ], + [ + 155, + 9 + ], + [ + 156, + 9 + ], + [ + 157, + 9 + ], + [ + 158, + 9 + ], + [ + 159, + 9 + ], + [ + 160, + 9 + ], + [ + 161, + 9 + ], + [ + 162, + 9 + ], + [ + 163, + 9 + ], + [ + 164, + 9 + ], + [ + 165, + 9 + ], + [ + 166, + 9 + ], + [ + 167, + 9 + ], + [ + 168, + 9 + ], + [ + 169, + 9 + ], + [ + 170, + 9 + ], + [ + 171, + 9 + ], + [ + 172, + 9 + ], + [ + 173, + 9 + ], + [ + 174, + 9 + ], + [ + 175, + 9 + ], + [ + 176, + 9 + ], + [ + 177, + 9 + ], + [ + 178, + 9 + ], + [ + 179, + 9 + ], + [ + 180, + 9 + ], + [ + 181, + 9 + ], + [ + 182, + 9 + ], + [ + 183, + 9 + ], + [ + 184, + 9 + ], + [ + 185, + 9 + ], + [ + 186, + 9 + ], + [ + 187, + 9 + ], + [ + 188, + 9 + ], + [ + 189, + 9 + ], + [ + 190, + 9 + ], + [ + 191, + 9 + ], + [ + 192, + 9 + ], + [ + 193, + 9 + ], + [ + 194, + 9 + ], + [ + 195, + 9 + ], + [ + 196, + 9 + ], + [ + 197, + 9 + ], + [ + 198, + 9 + ], + [ + 199, + 9 + ], + [ + 200, + 9 + ], + [ + 201, + 9 + ], + [ + 202, + 9 + ], + [ + 203, + 9 + ], + [ + 204, + 9 + ], + [ + 205, + 9 + ], + [ + 206, + 9 + ], + [ + 207, + 9 + ], + [ + 208, + 9 + ], + [ + 209, + 9 + ], + [ + 210, + 9 + ], + [ + 211, + 9 + ], + [ + 212, + 9 + ], + [ + 213, + 9 + ], + [ + 214, + 9 + ], + [ + 215, + 9 + ], + [ + 216, + 9 + ], + [ + 217, + 9 + ], + [ + 218, + 9 + ], + [ + 219, + 9 + ], + [ + 220, + 9 + ], + [ + 221, + 9 + ], + [ + 222, + 9 + ], + [ + 223, + 9 + ], + [ + 224, + 9 + ], + [ + 225, + 9 + ], + [ + 226, + 9 + ], + [ + 227, + 9 + ], + [ + 228, + 9 + ], + [ + 229, + 9 + ], + [ + 230, + 9 + ], + [ + 231, + 9 + ], + [ + 232, + 9 + ], + [ + 233, + 9 + ], + [ + 234, + 9 + ], + [ + 235, + 9 + ], + [ + 236, + 9 + ], + [ + 237, + 9 + ], + [ + 238, + 9 + ], + [ + 239, + 9 + ], + [ + 240, + 9 + ], + [ + 241, + 9 + ], + [ + 242, + 9 + ], + [ + 243, + 9 + ], + [ + 244, + 9 + ], + [ + 245, + 9 + ], + [ + 246, + 9 + ], + [ + 247, + 9 + ], + [ + 248, + 9 + ], + [ + 249, + 9 + ], + [ + 250, + 9 + ], + [ + 251, + 9 + ], + [ + 252, + 9 + ], + [ + 253, + 9 + ], + [ + 254, + 9 + ], + [ + 255, + 9 + ], + [ + 256, + 9 + ], + [ + 257, + 9 + ], + [ + 258, + 9 + ], + [ + 259, + 9 + ], + [ + 260, + 9 + ], + [ + 261, + 9 + ], + [ + 262, + 9 + ], + [ + 263, + 9 + ], + [ + 264, + 9 + ], + [ + 265, + 9 + ], + [ + 266, + 9 + ], + [ + 267, + 9 + ], + [ + 268, + 9 + ], + [ + 269, + 9 + ], + [ + 270, + 9 + ], + [ + 271, + 9 + ], + [ + 272, + 9 + ], + [ + 273, + 9 + ], + [ + 274, + 9 + ], + [ + 275, + 9 + ], + [ + 276, + 9 + ], + [ + 277, + 9 + ], + [ + 278, + 9 + ], + [ + 279, + 9 + ], + [ + 280, + 9 + ], + [ + 281, + 9 + ], + [ + 282, + 9 + ], + [ + 283, + 9 + ], + [ + 284, + 9 + ], + [ + 285, + 9 + ], + [ + 286, + 9 + ], + [ + 287, + 9 + ], + [ + 288, + 9 + ], + [ + 289, + 9 + ], + [ + 290, + 9 + ], + [ + 291, + 9 + ], + [ + 292, + 9 + ], + [ + 293, + 9 + ], + [ + 294, + 9 + ], + [ + 295, + 9 + ], + [ + 296, + 9 + ], + [ + 297, + 9 + ], + [ + 298, + 9 + ], + [ + 299, + 9 + ], + [ + 300, + 9 + ], + [ + 301, + 9 + ], + [ + 302, + 9 + ], + [ + 303, + 9 + ], + [ + 304, + 9 + ], + [ + 305, + 9 + ], + [ + 306, + 9 + ], + [ + 307, + 9 + ], + [ + 308, + 9 + ], + [ + 309, + 9 + ], + [ + 310, + 9 + ], + [ + 311, + 9 + ], + [ + 312, + 9 + ], + [ + 313, + 9 + ], + [ + 314, + 9 + ], + [ + 315, + 9 + ], + [ + 316, + 9 + ], + [ + 317, + 9 + ], + [ + 318, + 9 + ], + [ + 319, + 9 + ], + [ + 320, + 9 + ], + [ + 321, + 9 + ], + [ + 322, + 9 + ], + [ + 323, + 9 + ], + [ + 324, + 9 + ], + [ + 325, + 9 + ], + [ + 326, + 9 + ], + [ + 327, + 9 + ], + [ + 328, + 9 + ], + [ + 329, + 9 + ], + [ + 330, + 9 + ], + [ + 331, + 9 + ], + [ + 332, + 9 + ], + [ + 333, + 9 + ], + [ + 334, + 9 + ], + [ + 335, + 9 + ], + [ + 336, + 9 + ], + [ + 337, + 9 + ], + [ + 338, + 9 + ], + [ + 339, + 9 + ], + [ + 340, + 9 + ], + [ + 341, + 9 + ], + [ + 342, + 9 + ], + [ + 343, + 9 + ], + [ + 344, + 9 + ], + [ + 345, + 9 + ], + [ + 346, + 9 + ], + [ + 347, + 9 + ], + [ + 348, + 9 + ], + [ + 349, + 9 + ], + [ + 350, + 9 + ], + [ + 351, + 9 + ], + [ + 352, + 9 + ], + [ + 353, + 9 + ], + [ + 354, + 9 + ], + [ + 355, + 9 + ], + [ + 356, + 9 + ], + [ + 357, + 9 + ], + [ + 358, + 9 + ], + [ + 359, + 9 + ], + [ + 360, + 9 + ], + [ + 361, + 9 + ], + [ + 362, + 9 + ], + [ + 363, + 9 + ], + [ + 364, + 9 + ], + [ + 365, + 9 + ], + [ + 366, + 9 + ], + [ + 367, + 9 + ], + [ + 368, + 9 + ], + [ + 369, + 9 + ], + [ + 370, + 9 + ], + [ + 371, + 9 + ], + [ + 372, + 9 + ], + [ + 373, + 9 + ], + [ + 374, + 9 + ], + [ + 375, + 9 + ], + [ + 376, + 9 + ], + [ + 377, + 9 + ], + [ + 378, + 9 + ], + [ + 379, + 9 + ], + [ + 380, + 9 + ], + [ + 381, + 9 + ], + [ + 382, + 9 + ], + [ + 383, + 9 + ], + [ + 384, + 9 + ], + [ + 385, + 9 + ], + [ + 386, + 9 + ], + [ + 387, + 9 + ], + [ + 388, + 9 + ], + [ + 389, + 9 + ], + [ + 390, + 9 + ], + [ + 391, + 9 + ], + [ + 392, + 9 + ], + [ + 393, + 9 + ], + [ + 394, + 9 + ], + [ + 395, + 9 + ], + [ + 396, + 9 + ], + [ + 397, + 9 + ], + [ + 398, + 9 + ], + [ + 399, + 9 + ], + [ + 400, + 9 + ], + [ + 401, + 9 + ], + [ + 402, + 9 + ], + [ + 403, + 9 + ], + [ + 404, + 9 + ], + [ + 405, + 9 + ], + [ + 406, + 9 + ], + [ + 407, + 9 + ], + [ + 408, + 9 + ], + [ + 409, + 9 + ], + [ + 410, + 9 + ], + [ + 411, + 9 + ], + [ + 412, + 9 + ], + [ + 413, + 9 + ], + [ + 414, + 9 + ], + [ + 415, + 9 + ], + [ + 416, + 9 + ], + [ + 417, + 9 + ], + [ + 418, + 9 + ], + [ + 419, + 9 + ], + [ + 420, + 9 + ], + [ + 421, + 9 + ], + [ + 422, + 9 + ], + [ + 423, + 9 + ], + [ + 424, + 9 + ], + [ + 425, + 9 + ], + [ + 426, + 9 + ], + [ + 427, + 9 + ], + [ + 428, + 9 + ], + [ + 429, + 9 + ], + [ + 430, + 9 + ], + [ + 431, + 9 + ], + [ + 432, + 9 + ], + [ + 433, + 9 + ], + [ + 434, + 9 + ], + [ + 435, + 9 + ], + [ + 436, + 9 + ], + [ + 437, + 9 + ], + [ + 438, + 9 + ], + [ + 439, + 9 + ], + [ + 440, + 9 + ], + [ + 441, + 9 + ], + [ + 442, + 9 + ], + [ + 443, + 9 + ], + [ + 444, + 9 + ], + [ + 445, + 9 + ], + [ + 446, + 9 + ], + [ + 447, + 9 + ], + [ + 448, + 9 + ], + [ + 449, + 9 + ], + [ + 450, + 9 + ], + [ + 451, + 9 + ], + [ + 452, + 9 + ], + [ + 453, + 9 + ], + [ + 454, + 9 + ], + [ + 455, + 9 + ], + [ + 456, + 9 + ], + [ + 457, + 9 + ], + [ + 458, + 9 + ], + [ + 459, + 9 + ], + [ + 460, + 9 + ], + [ + 461, + 9 + ], + [ + 462, + 9 + ], + [ + 463, + 9 + ], + [ + 464, + 9 + ], + [ + 465, + 9 + ], + [ + 466, + 9 + ], + [ + 467, + 9 + ], + [ + 468, + 9 + ], + [ + 469, + 9 + ], + [ + 470, + 9 + ], + [ + 471, + 9 + ], + [ + 472, + 9 + ], + [ + 473, + 9 + ], + [ + 474, + 9 + ], + [ + 475, + 9 + ], + [ + 476, + 9 + ], + [ + 477, + 9 + ], + [ + 478, + 9 + ], + [ + 479, + 9 + ], + [ + 480, + 9 + ], + [ + 481, + 9 + ], + [ + 482, + 9 + ], + [ + 483, + 9 + ], + [ + 484, + 9 + ], + [ + 485, + 9 + ], + [ + 486, + 9 + ], + [ + 487, + 9 + ], + [ + 488, + 9 + ], + [ + 489, + 9 + ], + [ + 490, + 9 + ], + [ + 491, + 9 + ], + [ + 492, + 9 + ], + [ + 493, + 9 + ], + [ + 494, + 9 + ], + [ + 495, + 9 + ], + [ + 496, + 9 + ], + [ + 497, + 9 + ], + [ + 498, + 9 + ], + [ + 499, + 9 + ], + [ + 500, + 9 + ], + [ + 501, + 9 + ], + [ + 502, + 9 + ], + [ + 503, + 9 + ], + [ + 504, + 9 + ], + [ + 505, + 9 + ], + [ + 506, + 9 + ], + [ + 507, + 9 + ], + [ + 508, + 9 + ], + [ + 509, + 9 + ], + [ + 510, + 9 + ], + [ + 511, + 9 + ], + [ + 512, + 9 + ], + [ + 513, + 9 + ], + [ + 514, + 9 + ], + [ + 515, + 9 + ], + [ + 516, + 9 + ], + [ + 517, + 9 + ], + [ + 518, + 9 + ], + [ + 519, + 9 + ], + [ + 520, + 9 + ], + [ + 521, + 9 + ], + [ + 522, + 9 + ], + [ + 523, + 9 + ], + [ + 524, + 9 + ], + [ + 525, + 9 + ], + [ + 526, + 9 + ], + [ + 527, + 9 + ], + [ + 528, + 9 + ], + [ + 529, + 9 + ], + [ + 530, + 9 + ], + [ + 531, + 9 + ], + [ + 532, + 9 + ], + [ + 533, + 9 + ], + [ + 534, + 9 + ], + [ + 535, + 9 + ], + [ + 536, + 9 + ], + [ + 537, + 9 + ], + [ + 538, + 9 + ], + [ + 539, + 9 + ], + [ + 540, + 9 + ], + [ + 541, + 9 + ], + [ + 542, + 9 + ], + [ + 543, + 9 + ], + [ + 544, + 9 + ], + [ + 545, + 9 + ], + [ + 546, + 9 + ], + [ + 547, + 9 + ], + [ + 548, + 9 + ], + [ + 549, + 9 + ], + [ + 550, + 9 + ], + [ + 551, + 9 + ], + [ + 552, + 9 + ], + [ + 553, + 9 + ], + [ + 554, + 9 + ], + [ + 555, + 9 + ], + [ + 556, + 9 + ], + [ + 557, + 9 + ], + [ + 558, + 9 + ], + [ + 559, + 9 + ], + [ + 560, + 9 + ], + [ + 561, + 9 + ], + [ + 562, + 9 + ], + [ + 563, + 9 + ], + [ + 564, + 9 + ], + [ + 565, + 9 + ], + [ + 566, + 9 + ], + [ + 567, + 9 + ], + [ + 568, + 9 + ], + [ + 569, + 9 + ], + [ + 570, + 9 + ], + [ + 571, + 9 + ], + [ + 572, + 9 + ], + [ + 573, + 9 + ], + [ + 574, + 9 + ], + [ + 575, + 9 + ], + [ + 576, + 9 + ], + [ + 577, + 9 + ], + [ + 578, + 9 + ], + [ + 579, + 9 + ], + [ + 580, + 9 + ], + [ + 581, + 9 + ], + [ + 582, + 9 + ], + [ + 583, + 9 + ], + [ + 584, + 9 + ], + [ + 585, + 9 + ], + [ + 586, + 9 + ], + [ + 587, + 9 + ], + [ + 588, + 9 + ], + [ + 589, + 9 + ], + [ + 590, + 9 + ], + [ + 591, + 9 + ], + [ + 592, + 9 + ], + [ + 593, + 9 + ], + [ + 594, + 9 + ], + [ + 595, + 9 + ], + [ + 596, + 9 + ], + [ + 597, + 9 + ], + [ + 598, + 9 + ], + [ + 599, + 9 + ], + [ + 600, + 9 + ], + [ + 601, + 9 + ], + [ + 602, + 9 + ], + [ + 603, + 9 + ], + [ + 604, + 9 + ], + [ + 605, + 9 + ], + [ + 606, + 9 + ], + [ + 607, + 9 + ], + [ + 608, + 9 + ], + [ + 609, + 9 + ], + [ + 610, + 9 + ], + [ + 611, + 9 + ], + [ + 612, + 9 + ], + [ + 613, + 9 + ], + [ + 614, + 9 + ], + [ + 615, + 9 + ], + [ + 616, + 9 + ], + [ + 617, + 9 + ], + [ + 618, + 9 + ], + [ + 619, + 9 + ], + [ + 620, + 9 + ], + [ + 621, + 9 + ], + [ + 622, + 9 + ], + [ + 623, + 9 + ], + [ + 624, + 9 + ], + [ + 625, + 9 + ], + [ + 626, + 9 + ], + [ + 627, + 9 + ], + [ + 628, + 9 + ], + [ + 629, + 9 + ], + [ + 630, + 9 + ], + [ + 631, + 9 + ], + [ + 632, + 9 + ], + [ + 633, + 9 + ], + [ + 634, + 9 + ], + [ + 635, + 9 + ], + [ + 636, + 9 + ], + [ + 637, + 9 + ], + [ + 638, + 9 + ], + [ + 639, + 9 + ], + [ + 640, + 9 + ], + [ + 641, + 9 + ], + [ + 642, + 9 + ], + [ + 643, + 9 + ], + [ + 644, + 9 + ], + [ + 645, + 9 + ], + [ + 646, + 9 + ], + [ + 647, + 9 + ], + [ + 648, + 9 + ], + [ + 649, + 9 + ], + [ + 650, + 9 + ], + [ + 651, + 9 + ], + [ + 652, + 9 + ], + [ + 653, + 9 + ], + [ + 654, + 9 + ], + [ + 655, + 9 + ], + [ + 656, + 9 + ], + [ + 657, + 9 + ], + [ + 658, + 9 + ], + [ + 659, + 9 + ], + [ + 660, + 9 + ], + [ + 661, + 9 + ], + [ + 662, + 9 + ], + [ + 663, + 9 + ], + [ + 664, + 9 + ], + [ + 665, + 9 + ], + [ + 666, + 9 + ], + [ + 667, + 9 + ], + [ + 668, + 9 + ], + [ + 669, + 9 + ], + [ + 670, + 9 + ], + [ + 671, + 9 + ], + [ + 672, + 9 + ], + [ + 673, + 9 + ], + [ + 674, + 9 + ], + [ + 675, + 9 + ], + [ + 676, + 9 + ], + [ + 677, + 9 + ], + [ + 678, + 9 + ], + [ + 679, + 9 + ], + [ + 680, + 9 + ], + [ + 681, + 9 + ], + [ + 682, + 9 + ], + [ + 683, + 9 + ], + [ + 684, + 9 + ], + [ + 685, + 9 + ], + [ + 686, + 9 + ], + [ + 687, + 9 + ], + [ + 688, + 9 + ], + [ + 689, + 9 + ], + [ + 690, + 9 + ], + [ + 691, + 9 + ], + [ + 692, + 9 + ], + [ + 693, + 9 + ], + [ + 694, + 9 + ], + [ + 695, + 9 + ], + [ + 696, + 9 + ], + [ + 697, + 9 + ], + [ + 698, + 9 + ], + [ + 699, + 9 + ], + [ + 700, + 9 + ], + [ + 701, + 9 + ], + [ + 702, + 9 + ], + [ + 703, + 9 + ], + [ + 704, + 9 + ], + [ + 705, + 9 + ], + [ + 706, + 9 + ], + [ + 707, + 9 + ], + [ + 708, + 9 + ], + [ + 709, + 9 + ], + [ + 710, + 9 + ], + [ + 711, + 9 + ], + [ + 712, + 9 + ], + [ + 713, + 9 + ], + [ + 714, + 9 + ], + [ + 715, + 9 + ], + [ + 716, + 9 + ], + [ + 717, + 9 + ], + [ + 718, + 9 + ], + [ + 719, + 9 + ], + [ + 720, + 9 + ], + [ + 721, + 9 + ], + [ + 722, + 9 + ], + [ + 723, + 9 + ], + [ + 724, + 9 + ], + [ + 725, + 9 + ], + [ + 726, + 9 + ], + [ + 727, + 9 + ], + [ + 728, + 9 + ], + [ + 729, + 9 + ], + [ + 730, + 9 + ], + [ + 731, + 9 + ], + [ + 732, + 9 + ], + [ + 733, + 9 + ], + [ + 734, + 9 + ], + [ + 735, + 9 + ], + [ + 736, + 9 + ], + [ + 737, + 9 + ], + [ + 738, + 9 + ], + [ + 739, + 9 + ], + [ + 740, + 9 + ], + [ + 741, + 9 + ], + [ + 742, + 9 + ], + [ + 743, + 9 + ], + [ + 744, + 9 + ], + [ + 745, + 9 + ], + [ + 746, + 9 + ], + [ + 747, + 9 + ], + [ + 748, + 9 + ], + [ + 749, + 9 + ], + [ + 750, + 9 + ], + [ + 751, + 9 + ], + [ + 752, + 9 + ], + [ + 753, + 9 + ], + [ + 754, + 9 + ], + [ + 755, + 9 + ], + [ + 756, + 9 + ], + [ + 757, + 9 + ], + [ + 758, + 9 + ], + [ + 759, + 9 + ], + [ + 760, + 9 + ], + [ + 761, + 9 + ], + [ + 762, + 9 + ], + [ + 763, + 9 + ], + [ + 764, + 9 + ], + [ + 765, + 9 + ], + [ + 766, + 9 + ], + [ + 767, + 9 + ], + [ + 768, + 9 + ], + [ + 769, + 9 + ], + [ + 770, + 9 + ], + [ + 771, + 9 + ], + [ + 772, + 9 + ], + [ + 773, + 9 + ], + [ + 774, + 9 + ], + [ + 775, + 9 + ], + [ + 776, + 9 + ], + [ + 777, + 9 + ], + [ + 778, + 9 + ], + [ + 779, + 9 + ], + [ + 780, + 9 + ], + [ + 781, + 9 + ], + [ + 782, + 9 + ], + [ + 783, + 9 + ], + [ + 784, + 9 + ], + [ + 785, + 9 + ], + [ + 786, + 9 + ], + [ + 787, + 9 + ], + [ + 788, + 9 + ], + [ + 789, + 9 + ], + [ + 790, + 9 + ], + [ + 791, + 9 + ], + [ + 792, + 9 + ], + [ + 793, + 9 + ], + [ + 794, + 9 + ], + [ + 795, + 9 + ], + [ + 796, + 9 + ], + [ + 797, + 9 + ], + [ + 798, + 9 + ], + [ + 799, + 9 + ], + [ + 800, + 9 + ], + [ + 801, + 9 + ], + [ + 802, + 9 + ], + [ + 803, + 9 + ], + [ + 804, + 9 + ], + [ + 805, + 9 + ], + [ + 806, + 9 + ], + [ + 807, + 9 + ], + [ + 808, + 9 + ], + [ + 809, + 9 + ], + [ + 810, + 9 + ], + [ + 811, + 9 + ], + [ + 812, + 9 + ], + [ + 813, + 9 + ], + [ + 814, + 9 + ], + [ + 815, + 9 + ], + [ + 816, + 9 + ], + [ + 817, + 9 + ], + [ + 818, + 9 + ], + [ + 819, + 9 + ], + [ + 820, + 9 + ], + [ + 821, + 9 + ], + [ + 822, + 9 + ], + [ + 823, + 9 + ], + [ + 824, + 9 + ], + [ + 825, + 9 + ], + [ + 826, + 9 + ], + [ + 827, + 9 + ], + [ + 828, + 9 + ], + [ + 829, + 9 + ], + [ + 830, + 9 + ], + [ + 831, + 9 + ], + [ + 832, + 9 + ], + [ + 833, + 9 + ], + [ + 834, + 9 + ], + [ + 835, + 9 + ], + [ + 836, + 9 + ], + [ + 837, + 9 + ], + [ + 838, + 9 + ], + [ + 839, + 9 + ], + [ + 840, + 9 + ], + [ + 841, + 9 + ], + [ + 842, + 9 + ], + [ + 843, + 9 + ], + [ + 844, + 9 + ], + [ + 845, + 9 + ], + [ + 846, + 9 + ], + [ + 847, + 9 + ], + [ + 848, + 9 + ], + [ + 849, + 9 + ], + [ + 850, + 9 + ], + [ + 851, + 9 + ], + [ + 852, + 9 + ], + [ + 853, + 9 + ], + [ + 854, + 9 + ], + [ + 855, + 9 + ], + [ + 856, + 9 + ], + [ + 857, + 9 + ], + [ + 858, + 9 + ], + [ + 859, + 9 + ], + [ + 860, + 9 + ], + [ + 861, + 9 + ], + [ + 862, + 9 + ], + [ + 863, + 9 + ], + [ + 864, + 9 + ], + [ + 865, + 9 + ], + [ + 866, + 9 + ], + [ + 867, + 9 + ], + [ + 868, + 9 + ], + [ + 869, + 9 + ], + [ + 870, + 9 + ], + [ + 871, + 9 + ], + [ + 872, + 9 + ], + [ + 873, + 9 + ], + [ + 874, + 9 + ], + [ + 875, + 9 + ], + [ + 876, + 9 + ], + [ + 877, + 9 + ], + [ + 878, + 9 + ], + [ + 879, + 9 + ], + [ + 880, + 9 + ], + [ + 881, + 9 + ], + [ + 882, + 9 + ], + [ + 883, + 9 + ], + [ + 884, + 9 + ], + [ + 885, + 9 + ], + [ + 886, + 9 + ], + [ + 887, + 9 + ], + [ + 888, + 9 + ], + [ + 889, + 9 + ], + [ + 890, + 9 + ], + [ + 891, + 9 + ], + [ + 892, + 9 + ], + [ + 893, + 9 + ], + [ + 894, + 9 + ], + [ + 895, + 9 + ], + [ + 896, + 9 + ], + [ + 897, + 9 + ], + [ + 898, + 9 + ], + [ + 899, + 9 + ], + [ + 900, + 9 + ], + [ + 901, + 9 + ], + [ + 902, + 9 + ], + [ + 903, + 9 + ], + [ + 904, + 9 + ], + [ + 905, + 9 + ], + [ + 906, + 9 + ], + [ + 907, + 9 + ], + [ + 908, + 9 + ], + [ + 909, + 9 + ], + [ + 910, + 9 + ], + [ + 911, + 9 + ], + [ + 912, + 9 + ], + [ + 913, + 9 + ], + [ + 914, + 9 + ], + [ + 915, + 9 + ], + [ + 916, + 9 + ], + [ + 917, + 9 + ], + [ + 918, + 9 + ], + [ + 919, + 9 + ], + [ + 920, + 9 + ], + [ + 921, + 9 + ], + [ + 922, + 9 + ], + [ + 923, + 9 + ], + [ + 924, + 9 + ], + [ + 925, + 9 + ], + [ + 926, + 9 + ], + [ + 927, + 9 + ], + [ + 928, + 9 + ], + [ + 929, + 9 + ], + [ + 930, + 9 + ], + [ + 931, + 9 + ], + [ + 932, + 9 + ], + [ + 933, + 9 + ], + [ + 934, + 9 + ], + [ + 935, + 9 + ], + [ + 936, + 9 + ], + [ + 937, + 9 + ], + [ + 938, + 9 + ], + [ + 939, + 9 + ], + [ + 940, + 9 + ], + [ + 941, + 9 + ], + [ + 942, + 9 + ], + [ + 943, + 9 + ], + [ + 944, + 9 + ], + [ + 945, + 9 + ], + [ + 946, + 9 + ], + [ + 947, + 9 + ], + [ + 948, + 9 + ], + [ + 949, + 9 + ], + [ + 950, + 9 + ], + [ + 951, + 9 + ], + [ + 952, + 9 + ], + [ + 953, + 9 + ], + [ + 954, + 9 + ], + [ + 955, + 9 + ], + [ + 956, + 9 + ], + [ + 957, + 9 + ], + [ + 958, + 9 + ], + [ + 959, + 9 + ], + [ + 960, + 9 + ], + [ + 961, + 9 + ], + [ + 962, + 9 + ], + [ + 963, + 9 + ], + [ + 964, + 9 + ], + [ + 965, + 9 + ], + [ + 966, + 9 + ], + [ + 967, + 9 + ], + [ + 968, + 9 + ], + [ + 969, + 9 + ], + [ + 970, + 9 + ], + [ + 971, + 9 + ], + [ + 972, + 9 + ], + [ + 973, + 9 + ], + [ + 974, + 9 + ], + [ + 975, + 9 + ], + [ + 976, + 9 + ], + [ + 977, + 9 + ], + [ + 978, + 9 + ], + [ + 979, + 9 + ], + [ + 980, + 9 + ], + [ + 981, + 9 + ], + [ + 982, + 9 + ], + [ + 983, + 9 + ], + [ + 984, + 9 + ], + [ + 985, + 9 + ], + [ + 986, + 9 + ], + [ + 987, + 9 + ], + [ + 988, + 9 + ], + [ + 989, + 9 + ], + [ + 990, + 9 + ], + [ + 991, + 9 + ], + [ + 992, + 9 + ], + [ + 993, + 9 + ], + [ + 994, + 9 + ], + [ + 995, + 9 + ], + [ + 996, + 9 + ], + [ + 997, + 9 + ], + [ + 998, + 9 + ], + [ + 999, + 9 + ], + [ + 1000, + 9 + ], + [ + 1001, + 9 + ], + [ + 1002, + 9 + ], + [ + 1004, + 9 + ], + [ + 1003, + 9 + ], + [ + 1005, + 9 + ], + [ + 1006, + 8 + ] + ], + "hit_ranks": [ + 0, + 67, + 134, + 201, + 268, + 335, + 402, + 469, + 536, + 603, + 670, + 737, + 804, + 871, + 938, + 1005 + ], + "oracle_ranges": [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + "rss_bytes": null + }, + "stage_rows": [ + [ + -1, + 0, + 1100, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + -1, + 1, + 1921900, + 185300, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 1, + 16096, + 2, + [], + true, + null + ], + [ + -1, + 2, + 2200, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16096, + 1, + [], + true, + null + ], + [ + -1, + 3, + 1239900, + 28100, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 0, + 16096, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 4, + 89100, + null, + 0, + 0, + 0, + 0, + 1011, + 10094, + 0, + 16096, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + -1, + 5, + 606300, + null, + 0, + 0, + 0, + 0, + 16241, + 162154, + 0, + 16096, + 2, + [], + true, + null + ], + [ + 0, + 0, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 0, + 1, + 1115600, + 65100, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 1, + 16096, + 2, + [], + true, + null + ], + [ + 0, + 2, + 600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16096, + 1, + [], + true, + null + ], + [ + 0, + 3, + 977700, + 17700, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 0, + 16096, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 4, + 56300, + null, + 0, + 0, + 0, + 0, + 1011, + 10094, + 0, + 16096, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 0, + 5, + 749700, + null, + 0, + 0, + 0, + 0, + 16241, + 162154, + 0, + 16096, + 2, + [], + true, + null + ], + [ + 1, + 0, + 1000, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 1, + 1, + 1068900, + 41900, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 1, + 16096, + 2, + [], + true, + null + ], + [ + 1, + 2, + 600, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16096, + 1, + [], + true, + null + ], + [ + 1, + 3, + 1155700, + 56000, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 0, + 16096, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 4, + 60200, + null, + 0, + 0, + 0, + 0, + 1011, + 10094, + 0, + 16096, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 1, + 5, + 602600, + null, + 0, + 0, + 0, + 0, + 16241, + 162154, + 0, + 16096, + 2, + [], + true, + null + ], + [ + 2, + 0, + 800, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + [], + true, + null + ], + [ + 2, + 1, + 1130300, + 36300, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 1, + 16096, + 2, + [], + true, + null + ], + [ + 2, + 2, + 900, + null, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16096, + 1, + [], + true, + null + ], + [ + 2, + 3, + 1182900, + 73900, + 158, + 10059, + 8047, + 1006, + 3300, + 32950, + 0, + 16096, + 2, + [ + [ + 1, + 9, + 0, + 0, + 1, + 9, + 6, + 0 + ], + [ + 68, + 9, + 0, + 0, + 68, + 9, + 6, + 0 + ], + [ + 135, + 9, + 0, + 0, + 135, + 9, + 6, + 0 + ], + [ + 202, + 9, + 0, + 0, + 202, + 9, + 6, + 0 + ], + [ + 269, + 9, + 0, + 0, + 269, + 9, + 6, + 0 + ], + [ + 336, + 9, + 0, + 0, + 336, + 9, + 6, + 0 + ], + [ + 403, + 9, + 0, + 0, + 403, + 9, + 6, + 0 + ], + [ + 470, + 9, + 0, + 0, + 470, + 9, + 6, + 0 + ], + [ + 537, + 9, + 0, + 0, + 537, + 9, + 6, + 0 + ], + [ + 604, + 9, + 0, + 0, + 604, + 9, + 6, + 0 + ], + [ + 671, + 9, + 0, + 0, + 671, + 9, + 6, + 0 + ], + [ + 738, + 9, + 0, + 0, + 738, + 9, + 6, + 0 + ], + [ + 805, + 9, + 0, + 0, + 805, + 9, + 6, + 0 + ], + [ + 872, + 9, + 0, + 0, + 872, + 9, + 6, + 0 + ], + [ + 939, + 9, + 0, + 0, + 939, + 9, + 6, + 0 + ], + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 4, + 61000, + null, + 0, + 0, + 0, + 0, + 1011, + 10094, + 0, + 16096, + 2, + [ + [ + 1006, + 8, + 0, + 0, + 1006, + 8, + 6, + 0 + ] + ], + true, + null + ], + [ + 2, + 5, + 820900, + null, + 0, + 0, + 0, + 0, + 16241, + 162154, + 0, + 16096, + 2, + [], + true, + null + ] + ], + "raw_stdout": { + "bytes": 19097, + "sha256": "6b51ba938534ab66871e8106b809a1105cf089ccd1fcdd8ad32e08699f6b859b" + }, + "raw_stderr": { + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "raw_protocol_lines": 25, + "target_exit_code": 0, + "target_timed_out": false, + "target_supervised_elapsed_seconds": 0.046999999991385266, + "current_offline_decoder_passed": true, + "rss_bytes": null, + "stdout_exact_roundtrip": true, + "summary": { + "sample_order": [ + -1, + 0, + 1, + 2 + ], + "six_endpoint_sum_ns": [ + 3860500, + 2900900, + 2889000, + 3196800 + ], + "stage_retained_ns": { + "cold_absent_start": { + "min": 800, + "median": 1000, + "max": 1000, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "cold_absent_step": { + "min": 1068900, + "median": 1115600, + "max": 1130300, + "max_step_min": 36300, + "max_step_median": 41900, + "max_step_max": 65100 + }, + "warm_needle_start": { + "min": 600, + "median": 600, + "max": 900, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "warm_needle_step": { + "min": 977700, + "median": 1155700, + "max": 1182900, + "max_step_min": 17700, + "max_step_median": 56000, + "max_step_max": 73900 + }, + "last_match": { + "min": 56300, + "median": 60200, + "max": 61000, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + }, + "navigate_no_wrap": { + "min": 602600, + "median": 749700, + "max": 820900, + "max_step_min": null, + "max_step_median": null, + "max_step_max": null + } + } + } + } + ] + } + ], + "published_target_captures": 5, + "published_protocol_lines": 125, + "published_stage_rows": 120, + "current_old_evidence_files_checked": 78, + "old_evidence_changes": 0, + "complete_incremental_search_tested": false, + "production_revision_notification_tested": false, + "product_selection": null, + "product_acceptance": null, + "windterm_equivalence": null, + "rss_bytes": null +}