From 0a50061480da85877b31a6b783e4d5bf5175ffdc Mon Sep 17 00:00:00 2001 From: Qian-Cheng-nju Date: Sun, 11 Oct 2026 04:57:44 +0000 Subject: [PATCH 1/4] Fix spin transition validation and trace capture --- .github/workflows/tests.yml | 2 + .gitignore | 1 + data/patches/asterinas_tla_trace.patch | 33 +- scripts/harness/spin_tv/parse_trace.py | 53 ++ scripts/harness/spin_tv/run.sh | 62 ++ tests/test_tv_examples/test_spin.py | 277 +++++++++ .../skills/tv-eval/examples/spin/README.md | 90 +++ .../examples/spin/action_windows.jsonl | 554 +----------------- .../spin/ai_spec_1/TV_AcquireLock.tla | 2 +- .../examples/spin/ai_spec_1/make_windows.py | 29 +- .../tv-eval/examples/spin/ai_spec_1/run_tv.py | 66 +-- .../spin/ai_spec_1/windows_AcquireLock.ndjson | 213 +------ .../tv-eval/examples/spin/generate_windows.py | 263 ++++----- .../examples/spin/legacy/action_windows.jsonl | 543 +++++++++++++++++ .../spin/legacy/windows_AcquireLock.ndjson | 210 +++++++ .../spin/reference_spec/TV_Windows.cfg | 3 + .../spin/reference_spec/TV_Windows.tla | 31 + .../examples/spin/reference_spec/run_tv.py | 17 + .../examples/spin/reference_spec/spin.tla | 16 +- .../examples/spin/traces/kernel-test.txt | 18 + .../examples/spin/traces/manifest.json | 11 + .../examples/spin/traces/trace_01.jsonl | 11 + .../skills/tv-eval/examples/spin/validate.py | 90 +++ tla_eval/skills/tv-eval/guide.md | 2 +- .../references/score_interpretation.md | 2 +- 25 files changed, 1638 insertions(+), 961 deletions(-) create mode 100644 scripts/harness/spin_tv/parse_trace.py create mode 100755 scripts/harness/spin_tv/run.sh create mode 100644 tests/test_tv_examples/test_spin.py create mode 100644 tla_eval/skills/tv-eval/examples/spin/README.md create mode 100644 tla_eval/skills/tv-eval/examples/spin/legacy/action_windows.jsonl create mode 100644 tla_eval/skills/tv-eval/examples/spin/legacy/windows_AcquireLock.ndjson create mode 100644 tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.cfg create mode 100644 tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.tla create mode 100644 tla_eval/skills/tv-eval/examples/spin/reference_spec/run_tv.py create mode 100644 tla_eval/skills/tv-eval/examples/spin/traces/kernel-test.txt create mode 100644 tla_eval/skills/tv-eval/examples/spin/traces/manifest.json create mode 100644 tla_eval/skills/tv-eval/examples/spin/traces/trace_01.jsonl create mode 100644 tla_eval/skills/tv-eval/examples/spin/validate.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 65cc4c2..09cae5c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -69,6 +69,8 @@ jobs: mkdir -p lib curl -fL --retry 3 -o lib/tla2tools.jar \ https://github.com/tlaplus/tlaplus/releases/download/v1.8.0/tla2tools.jar + curl -fL --retry 3 -o lib/CommunityModules-deps.jar \ + https://github.com/tlaplus/CommunityModules/releases/download/202505152026/CommunityModules-deps.jar - name: Run tests # test_model_connection.py is an interactive live-provider check that diff --git a/.gitignore b/.gitignore index ca9c77d..69b9922 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ systems/asterinas/asterinas/ *.fp states/ traces/ +!tla_eval/skills/tv-eval/examples/spin/traces/ **/output/ generation_summary.json specula diff --git a/data/patches/asterinas_tla_trace.patch b/data/patches/asterinas_tla_trace.patch index 5a3e5cb..eb42205 100644 --- a/data/patches/asterinas_tla_trace.patch +++ b/data/patches/asterinas_tla_trace.patch @@ -1843,10 +1843,10 @@ index 0000000..c902814 \ No newline at end of file diff --git a/ostd/src/sync/spin_trace.rs b/ostd/src/sync/spin_trace.rs new file mode 100644 -index 0000000..8ca98ee +index 0000000..0106a41 --- /dev/null +++ b/ostd/src/sync/spin_trace.rs -@@ -0,0 +1,525 @@ +@@ -0,0 +1,550 @@ +// SPDX-License-Identifier: MPL-2.0 + +use alloc::sync::Arc; @@ -2038,6 +2038,7 @@ index 0000000..8ca98ee + // Record RequestTryLock (after setting state to trying_nonblocking) + let lock_addr = self as *const Self as *const () as usize; + let current_state = self.inner.lock.load(Ordering::Relaxed); ++ trace_event("TryAcquireNonBlocking", lock_addr, thread_id, current_state); + + if self.try_acquire_lock_with_id(thread_id) { + let lock_guard = SpinTraceGuard_ { @@ -2047,8 +2048,8 @@ index 0000000..8ca98ee + }; + return Some(lock_guard); + } else { -+ // Explicitly record failure -+ trace_event("AcquireFail", lock_addr, thread_id, false); ++ // A failed compare_exchange(false, true) observed a held lock. ++ trace_event("AcquireFail", lock_addr, thread_id, true); + None + } + } @@ -2208,6 +2209,30 @@ index 0000000..8ca98ee + *seed + } + ++ // A deterministic, single-CPU scenario with overlapping lock lifetimes. ++ // Every event comes from an executed operation; no synthetic contention. ++ #[ktest] ++ fn test_spin_tv_contract() { ++ TRACE_SEQUENCE.store(0, Ordering::Relaxed); ++ crate::early_println!("=== SPIN_TV_BEGIN ==="); ++ let lock = SpinTrace::::new(0); ++ ++ let mut holder = lock.lock_with_thread_id(0); ++ *holder = 1; ++ assert!(lock.try_lock_with_thread_id(1).is_none()); ++ drop(holder); ++ ++ let mut next = lock.try_lock_with_thread_id(1).unwrap(); ++ assert_eq!(*next, 1); ++ *next = 2; ++ drop(next); ++ ++ let final_guard = lock.lock_with_thread_id(2); ++ assert_eq!(*final_guard, 2); ++ drop(final_guard); ++ crate::early_println!("=== SPIN_TV_END ==="); ++ } ++ + #[ktest] + fn test_spin_trace() { + crate::early_println!("=== Starting 20 SpinTrace TLA+ Traces: Single Lock, 3-Thread Contention ==="); diff --git a/scripts/harness/spin_tv/parse_trace.py b/scripts/harness/spin_tv/parse_trace.py new file mode 100644 index 0000000..b20556e --- /dev/null +++ b/scripts/harness/spin_tv/parse_trace.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +"""Extract the successful spin TV kernel test without synthesizing events.""" + +import argparse +import json +import re +from pathlib import Path + +BEGIN = "=== SPIN_TV_BEGIN ===" +END = "=== SPIN_TV_END ===" + + +def extract_trace(text): + text = re.sub(r"\x1b\[[0-9;]*m", "", text) + if text.count(BEGIN) != 1 or text.count(END) != 1: + raise ValueError("expected exactly one complete spin TV test") + if "test result: ok. 1 passed; 0 failed;" not in text: + raise ValueError("kernel test did not report success") + body = text.split(BEGIN, 1)[1].split(END, 1)[0] + events = [] + for line in body.splitlines(): + if not line.strip(): + continue + event = json.loads(line) + if ( + not isinstance(event, dict) + or not {"seq", "actor", "action", "state", "lock"} <= event.keys() + ): + raise ValueError("incomplete kernel event") + events.append(event) + if not events: + raise ValueError("no kernel events") + if [event["seq"] for event in events] != list(range(len(events))): + raise ValueError("kernel event sequence is incomplete or out of order") + return events + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("log", type=Path) + parser.add_argument("output", type=Path) + args = parser.parse_args() + try: + events = extract_trace(args.log.read_text()) + except (OSError, ValueError) as exc: + parser.error(str(exc)) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("".join(json.dumps(event) + "\n" for event in events)) + print(f"Captured {len(events)} kernel events in {args.output}") + + +if __name__ == "__main__": + main() diff --git a/scripts/harness/spin_tv/run.sh b/scripts/harness/spin_tv/run.sh new file mode 100755 index 0000000..9c1a685 --- /dev/null +++ b/scripts/harness/spin_tv/run.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +# Capture the focused spin TV contract test from an isolated Asterinas checkout. +set -euo pipefail +SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +PROJECT_ROOT=$(cd "$SCRIPT_DIR/../../.." && pwd) +SOURCE_COMMIT=d73f1016a1d0cfb7b1f2ea72d2e9dd67ced0e0fa +IMAGE=asterinas/asterinas:0.16.0-20250822@sha256:10d52ce84f72116ca2e41d6170f8882893592ccfc166d6b7d2262ccfeedacab2 +OUT=${1:-"$PROJECT_ROOT/tla_eval/skills/tv-eval/examples/spin/traces"} +mkdir -p "$PROJECT_ROOT/artifacts" "$OUT" +OUT=$(cd "$OUT" && pwd) +WORK=$(mktemp -d "$PROJECT_ROOT/artifacts/spin-tv.XXXXXX") +PATCH="$PROJECT_ROOT/data/patches/asterinas_tla_trace.patch" +cleanup() { + if [[ -s "$WORK/container-id" ]]; then + docker rm -f "$(cat "$WORK/container-id")" >/dev/null 2>&1 || true + fi +} +trap cleanup EXIT +printf 'Capture workspace: %s\n' "$WORK" +git init -q "$WORK/source" +git -C "$WORK/source" fetch --depth 1 https://github.com/asterinas/asterinas.git "$SOURCE_COMMIT" +git -C "$WORK/source" checkout -q --detach FETCH_HEAD +git -C "$WORK/source" apply --whitespace=nowarn "$PATCH" +# No host checkout, cargo installation, or other container is modified. +# --locked preserves the OSDK tool's dependency versions; make initramfs also +# prepares the disk images referenced by the pinned OSDK configuration. +timeout 1200 docker run --rm --cidfile "$WORK/container-id" --cpus 8 \ + -e CARGO_BUILD_JOBS=8 -v "$WORK/source:/build" "$IMAGE" bash -c ' + set -e + cd /build + OSDK_LOCAL_DEV=1 cargo install cargo-osdk --path osdk --locked + make initramfs + cd ostd + timeout 900 cargo osdk test --features tla-trace --target-arch x86_64 \ + --qemu-args="-accel tcg" test_spin_tv_contract + ' > "$WORK/kernel.log" 2>&1 || { + tail -40 "$WORK/kernel.log" >&2 + exit 1 +} +python3 "$SCRIPT_DIR/parse_trace.py" "$WORK/kernel.log" "$OUT/trace_01.jsonl" +python3 - "$OUT" "$SOURCE_COMMIT" "$IMAGE" "$PATCH" "$WORK/kernel.log" <<'PY' +import hashlib, json, sys +from pathlib import Path +out, commit, image, patch, log = sys.argv[1:] +out = Path(out) +text = Path(log).read_text() +# Keep the test output and result, without the large dependency/build log. +start = text.index("=== SPIN_TV_BEGIN ===") +(out / "kernel-test.txt").write_text(text[start:]) +manifest = { + "source_repository": "https://github.com/asterinas/asterinas", + "source_commit": commit, + "docker_image": image, + "patch": "data/patches/asterinas_tla_trace.patch", + "patch_sha256": hashlib.sha256(Path(patch).read_bytes()).hexdigest(), + "trace_sha256": hashlib.sha256((out / "trace_01.jsonl").read_bytes()).hexdigest(), + "test": "test_spin_tv_contract", + "capture_command": "bash scripts/harness/spin_tv/run.sh", + "scope": "Executed SpinTrace operations with three logical actors on one CPU; no synthetic events or blocking contention." +} +(out / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n") +PY diff --git a/tests/test_tv_examples/test_spin.py b/tests/test_tv_examples/test_spin.py new file mode 100644 index 0000000..bef68dd --- /dev/null +++ b/tests/test_tv_examples/test_spin.py @@ -0,0 +1,277 @@ +"""Behavioral regressions for the spin example's trace contract and TLC checks.""" + +import copy +import importlib.util +import json +import os +from pathlib import Path +import shutil +import subprocess +import sys + +import pytest + +ROOT = Path(__file__).resolve().parents[2] +EXAMPLE = ROOT / "tla_eval/skills/tv-eval/examples/spin" +_spec = importlib.util.spec_from_file_location( + "spin_windows", EXAMPLE / "generate_windows.py" +) +windows = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(windows) +TLA_JAR = ROOT / "lib/tla2tools.jar" +COMM_JAR = ROOT / "lib/CommunityModules-deps.jar" +requires_tlc = pytest.mark.skipif( + not (TLA_JAR.is_file() and COMM_JAR.is_file() and shutil.which("java")), + reason="Run sysmobench-setup to install TLC and CommunityModules", +) + + +def event(seq, action, actor=0, state="unlocked"): + return {"seq": seq, "action": action, "actor": actor, "state": state, "lock": 0} + + +def read_windows(path): + return [json.loads(line) for line in path.read_text().splitlines() if line.strip()] + + +def test_request_is_valid_with_free_or_held_lock(): + events = [ + event(0, "TryAcquireBlocking"), + event(1, "AcquireSuccess", state="locked"), + event(2, "TryAcquireBlocking", actor=1, state="locked"), + ] + result = windows.generate_windows_from_trace("requests", events) + assert result[0]["post_state"]["pc"]["0"] == "acquiring" + assert result[2]["post_state"]["pc"]["1"] == "acquiring" + assert ( + result[2]["pre_state"]["lockState"] + == result[2]["post_state"]["lockState"] + == "locked" + ) + + +def test_failed_try_lock_preserves_holder_and_allows_retry(): + events = [ + event(0, "TryAcquireBlocking"), + event(1, "AcquireSuccess", state="locked"), + event(2, "TryAcquireNonBlocking", actor=1, state="locked"), + event(3, "AcquireFail", actor=1, state="locked"), + event(4, "Release"), + event(5, "TryAcquireNonBlocking", actor=1), + event(6, "AcquireSuccess", actor=1, state="locked"), + ] + result = windows.generate_windows_from_trace("failure", events) + assert result[3]["post_state"] == { + "lockState": "locked", + "pc": {"0": "locked", "1": "idle", "2": "idle"}, + } + assert result[-1]["post_state"]["pc"]["1"] == "locked" + + +@pytest.mark.parametrize( + "events, message", + [ + ([event(0, "AcquireSuccess", state="locked")], "missing its request event"), + ([event(0, "Unknown")], "unknown action"), + ([event(0, "TryAcquireBlocking", state="locked")], "state mismatch"), + ([event(0, "Release")], "owning actor"), + ( + [event(0, "TryAcquireBlocking"), event(1, "StopSpinning", state="locked")], + "state mismatch", + ), + ( + [ + event(0, "TryAcquireBlocking"), + event(0, "AcquireSuccess", state="locked"), + ], + "sequence numbers", + ), + ( + [ + event(0, "TryAcquireBlocking"), + {**event(1, "AcquireSuccess", state="locked"), "lock": 1}, + ], + "one lock", + ), + ], +) +def test_bad_trace_is_rejected(events, message): + with pytest.raises(ValueError, match=message): + windows.generate_windows_from_trace("invalid", events) + + +def test_generator_rejects_before_overwriting_output(tmp_path): + (tmp_path / "trace_01.jsonl").write_text( + json.dumps(event(0, "AcquireSuccess", state="locked")) + "\n" + ) + output = tmp_path / "windows.jsonl" + output.write_text("keep existing results\n") + result = subprocess.run( + [ + sys.executable, + str(EXAMPLE / "generate_windows.py"), + "--traces-dir", + str(tmp_path), + "--output", + str(output), + ], + capture_output=True, + text=True, + timeout=10, + ) + assert result.returncode == 2 + assert "missing its request" in result.stderr + assert output.read_text() == "keep existing results\n" + + +def test_captured_data_regenerates_without_inventing_events(): + generated = [] + for path in sorted((EXAMPLE / "traces").glob("trace_*.jsonl")): + for window in windows.generate_windows_from_trace( + path.stem, windows.parse_trace(path) + ): + window["window_id"] = len(generated) + generated.append(window) + assert generated and generated == read_windows(EXAMPLE / "action_windows.jsonl") + assert {w["action"] for w in generated} == { + "TryAcquireBlocking", + "TryAcquireNonBlocking", + "AcquireSuccess", + "AcquireFail", + "Release", + } + + +def test_missing_tools_is_not_a_model_failure(tmp_path): + result = subprocess.run( + [ + sys.executable, + str(EXAMPLE / "ai_spec_1/run_tv.py"), + "--tla-jar", + str(tmp_path / "missing.jar"), + ], + capture_output=True, + text=True, + timeout=10, + ) + assert result.returncode == 2 + assert "sysmobench-setup" in result.stderr + assert '"failed"' not in result.stdout + + +def run_validator(tmp_path, spec, source): + report = tmp_path / "report.json" + result = subprocess.run( + [ + sys.executable, + str(EXAMPLE / spec / "run_tv.py"), + "--windows", + str(source), + "--report", + str(report), + ], + capture_output=True, + text=True, + timeout=180, + env={**os.environ, "JAVA_TOOL_OPTIONS": "-XX:ActiveProcessorCount=2 -Xmx256m"}, + ) + assert report.exists(), result.stdout + result.stderr + return result.returncode, json.loads(report.read_text()) + + +@requires_tlc +@pytest.mark.parametrize( + "spec,path,passed,failed", + [ + ("ai_spec_1", "ai_spec_1/windows_AcquireLock.ndjson", 3, 0), + ("reference_spec", "action_windows.jsonl", 11, 0), + ("ai_spec_1", "legacy/windows_AcquireLock.ndjson", 123, 87), + ("reference_spec", "legacy/action_windows.jsonl", 543, 0), + ], +) +def test_tlc_positive_and_historical_windows(tmp_path, spec, path, passed, failed): + code, report = run_validator(tmp_path, spec, EXAMPLE / path) + assert code == (1 if failed else 0) + assert report["summary"]["passed"] == passed + assert report["summary"]["failed"] == failed + assert report["summary"]["errored"] == report["summary"]["timeout"] == 0 + + +@requires_tlc +@pytest.mark.parametrize( + "mutation", ["held_lock", "wrong_actor", "wrong_post", "missing_request"] +) +def test_tlc_rejects_invalid_acquisition(tmp_path, mutation): + window = copy.deepcopy( + read_windows(EXAMPLE / "ai_spec_1/windows_AcquireLock.ndjson")[0] + ) + if mutation == "held_lock": + window["pre"]["lockState"] = "locked" + elif mutation == "wrong_actor": + window["actor"] = 3 + elif mutation == "wrong_post": + window["post"]["lockState"] = "unlocked" + else: + window["pre"]["pc"][window["actor"] - 1] = "idle" + source = tmp_path / "invalid.ndjson" + source.write_text(json.dumps(window) + "\n") + code, report = run_validator(tmp_path, "ai_spec_1", source) + assert code == 1 + assert report["summary"]["failed"] == 1 + assert report["summary"]["errored"] == 0 + + +@requires_tlc +def test_malformed_tlc_input_is_an_error(tmp_path): + source = tmp_path / "invalid.ndjson" + source.write_text('{"missing": "pre/post state"}\n') + code, report = run_validator(tmp_path, "ai_spec_1", source) + assert code == 2 + assert report["summary"]["errored"] == 1 + assert report["summary"]["failed"] == 0 + + +def test_capture_parser_requires_successful_complete_kernel_output(): + spec = importlib.util.spec_from_file_location( + "spin_capture", ROOT / "scripts/harness/spin_tv/parse_trace.py" + ) + parser = importlib.util.module_from_spec(spec) + spec.loader.exec_module(parser) + log = (EXAMPLE / "traces/kernel-test.txt").read_text() + assert parser.extract_trace(log) == read_windows(EXAMPLE / "traces/trace_01.jsonl") + for invalid in ( + log.replace("=== SPIN_TV_END ===", ""), + log.replace("1 passed; 0 failed;", "0 passed; 1 failed;"), + log.replace('"seq":5,', '"seq":50,'), + ): + with pytest.raises(ValueError): + parser.extract_trace(invalid) + + +def test_capture_manifest_matches_patch_and_trace(): + import hashlib + + manifest = json.loads((EXAMPLE / "traces/manifest.json").read_text()) + for source, field in ( + (ROOT / manifest["patch"], "patch_sha256"), + (EXAMPLE / "traces/trace_01.jsonl", "trace_sha256"), + ): + assert hashlib.sha256(source.read_bytes()).hexdigest() == manifest[field] + + +@requires_tlc +def test_reference_rejects_release_by_nonowner(tmp_path): + window = copy.deepcopy( + next( + w + for w in read_windows(EXAMPLE / "action_windows.jsonl") + if w["action"] == "Release" + ) + ) + window["actor"] = "2" + source = tmp_path / "invalid.ndjson" + source.write_text(json.dumps(window) + "\n") + code, report = run_validator(tmp_path, "reference_spec", source) + assert code == 1 + assert report["summary"]["failed"] == 1 + assert report["summary"]["errored"] == 0 diff --git a/tla_eval/skills/tv-eval/examples/spin/README.md b/tla_eval/skills/tv-eval/examples/spin/README.md new file mode 100644 index 0000000..6c456bc --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/README.md @@ -0,0 +1,90 @@ +# Spin transition-validation example + +Each window checks **one specification action** from its recorded pre-state to +its recorded post-state. The spin task requires a request step (`idle → trying`) +before acquisition, including a successful nonblocking `try_lock()`. + +The default example uses a small Asterinas kernel capture. It exercises blocking +acquisition, successful nonblocking acquisition, nonblocking failure while another +actor holds the lock, and release. The three actors execute on one CPU; this is +not a concurrent stress test and does not exercise the blocking spin loop. + +## Run + +From the repository root, install the package and tools as described in the root +README (`pip install -e .`, then `sysmobench-setup`). Both TLC and CommunityModules +are required for this example. + +```sh +EXAMPLE=tla_eval/skills/tv-eval/examples/spin +python "$EXAMPLE/ai_spec_1/run_tv.py" +python "$EXAMPLE/reference_spec/run_tv.py" +``` + +Expected results: + +| Specification | Windows | Result | +|---|---|---| +| `ai_spec_1` | Three successful acquisitions | 3/3 pass | +| `reference_spec` | All captured request, acquisition, failure and release events | 11/11 pass | + +The candidate `ai_spec_1/spin.tla` is unchanged. The reference is a **coarse +example abstraction**, not a complete implementation of the task's blocking / +nonblocking / spinning contract. In particular, it retains `AcquireLockDirect` +for examining the historical coarse windows. + +Use `--tla-jar PATH --community-jar PATH` for tools installed elsewhere. +`--report PATH` writes per-window outcomes. Runner exit status is 0 when all +windows pass, 1 for a model mismatch, and 2 for setup errors, TLC errors or timeouts. +Internally, TLC exit 12 means the `NeverPost` invariant was violated: a matching +post-state exists. TLC exit 0 means the window did not match. + +## Rebuild the windows + +```sh +python "$EXAMPLE/generate_windows.py" --traces-dir "$EXAMPLE/traces" +python "$EXAMPLE/ai_spec_1/make_windows.py" +``` + +`traces/trace_01.jsonl` contains the captured events, `kernel-test.txt` contains +the kernel test output, and `manifest.json` records the source commit, container +image and checksums. The generator rejects missing request events, unknown +actions, invalid ownership and inconsistent state observations. It never inserts +missing transitions or silently filters bad events. Its default input location +for newly collected task traces is `/data/sys_traces/spin`. + +## Capture again from Asterinas + +Requires Git, Docker, Python and network access for the pinned source and build +dependencies: + +```sh +bash scripts/harness/spin_tv/run.sh +python "$EXAMPLE/generate_windows.py" --traces-dir "$EXAMPLE/traces" +python "$EXAMPLE/ai_spec_1/make_windows.py" +``` + +The script creates a separate source/build directory under `artifacts/`, applies +`data/patches/asterinas_tla_trace.patch`, and runs `test_spin_tv_contract` under +QEMU TCG. It records executed operations on the instrumented `SpinTrace`; this +test emits no hand-written contention events. An optional first argument selects +another output directory. Build logs remain in the printed capture workspace. + +## Historical incomplete traces + +`legacy/` retains the original window files byte-for-byte. They contain 87 +acquisitions with `idle` pre-states because the old nonblocking instrumentation +omitted its request event. They are a diagnostic fixture, **not valid input for +benchmark scoring**. + +```sh +python "$EXAMPLE/ai_spec_1/run_tv.py" --windows "$EXAMPLE/legacy/windows_AcquireLock.ndjson" +# Expected: 123 pass, 87 fail; runner exit 1. +python "$EXAMPLE/reference_spec/run_tv.py" --windows "$EXAMPLE/legacy/action_windows.jsonl" +# Expected: 543/543 pass with the coarse reference abstraction. +``` + +The reference previously rejected 104 requests made while the lock was free. +Starting a request does not require a held lock; its `TryAcquire` guard now +reflects that. Passing the coarse reference does not repair missing events or +establish compliance with the finer task contract. diff --git a/tla_eval/skills/tv-eval/examples/spin/action_windows.jsonl b/tla_eval/skills/tv-eval/examples/spin/action_windows.jsonl index 5e555e6..f3697ba 100644 --- a/tla_eval/skills/tv-eval/examples/spin/action_windows.jsonl +++ b/tla_eval/skills/tv-eval/examples/spin/action_windows.jsonl @@ -1,543 +1,11 @@ -{"window_id": 0, "trace_id": "trace_01", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 1, "trace_id": "trace_01", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 2, "trace_id": "trace_01", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 3, "trace_id": "trace_01", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 4, "trace_id": "trace_01", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 5, "trace_id": "trace_01", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 6, "trace_id": "trace_01", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 7, "trace_id": "trace_01", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 8, "trace_id": "trace_01", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 9, "trace_id": "trace_01", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 10, "trace_id": "trace_01", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 11, "trace_id": "trace_01", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 12, "trace_id": "trace_01", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 13, "trace_id": "trace_01", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 14, "trace_id": "trace_01", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 15, "trace_id": "trace_01", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 16, "trace_id": "trace_01", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 17, "trace_id": "trace_01", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 18, "trace_id": "trace_01", "seq": 38, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 19, "trace_id": "trace_01", "seq": 40, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 20, "trace_id": "trace_01", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 21, "trace_id": "trace_01", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 22, "trace_id": "trace_01", "seq": 46, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 23, "trace_id": "trace_01", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 24, "trace_id": "trace_01", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 25, "trace_id": "trace_02", "seq": 0, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 26, "trace_id": "trace_02", "seq": 2, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 27, "trace_id": "trace_02", "seq": 4, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 28, "trace_id": "trace_02", "seq": 6, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 29, "trace_id": "trace_02", "seq": 8, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 30, "trace_id": "trace_02", "seq": 10, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 31, "trace_id": "trace_02", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 32, "trace_id": "trace_02", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 33, "trace_id": "trace_02", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 34, "trace_id": "trace_02", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 35, "trace_id": "trace_02", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 36, "trace_id": "trace_02", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 37, "trace_id": "trace_02", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 38, "trace_id": "trace_02", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 39, "trace_id": "trace_02", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 40, "trace_id": "trace_02", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 41, "trace_id": "trace_02", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 42, "trace_id": "trace_02", "seq": 36, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 43, "trace_id": "trace_02", "seq": 38, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 44, "trace_id": "trace_02", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 45, "trace_id": "trace_02", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 46, "trace_id": "trace_02", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 47, "trace_id": "trace_02", "seq": 46, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 48, "trace_id": "trace_02", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 49, "trace_id": "trace_02", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 50, "trace_id": "trace_03", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 51, "trace_id": "trace_03", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 52, "trace_id": "trace_03", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 53, "trace_id": "trace_03", "seq": 6, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 54, "trace_id": "trace_03", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 55, "trace_id": "trace_03", "seq": 10, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 56, "trace_id": "trace_03", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 57, "trace_id": "trace_03", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 58, "trace_id": "trace_03", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 59, "trace_id": "trace_03", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 60, "trace_id": "trace_03", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 61, "trace_id": "trace_03", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 62, "trace_id": "trace_03", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 63, "trace_id": "trace_03", "seq": 28, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 64, "trace_id": "trace_03", "seq": 30, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 65, "trace_id": "trace_03", "seq": 32, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 66, "trace_id": "trace_03", "seq": 34, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 67, "trace_id": "trace_03", "seq": 36, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 68, "trace_id": "trace_03", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 69, "trace_id": "trace_03", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 70, "trace_id": "trace_03", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 71, "trace_id": "trace_03", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 72, "trace_id": "trace_03", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 73, "trace_id": "trace_03", "seq": 48, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 74, "trace_id": "trace_03", "seq": 50, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 75, "trace_id": "trace_03", "seq": 52, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 76, "trace_id": "trace_03", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 77, "trace_id": "trace_03", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 78, "trace_id": "trace_03", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 79, "trace_id": "trace_04", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 80, "trace_id": "trace_04", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 81, "trace_id": "trace_04", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 82, "trace_id": "trace_04", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 83, "trace_id": "trace_04", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 84, "trace_id": "trace_04", "seq": 10, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 85, "trace_id": "trace_04", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 86, "trace_id": "trace_04", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 87, "trace_id": "trace_04", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 88, "trace_id": "trace_04", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 89, "trace_id": "trace_04", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 90, "trace_id": "trace_04", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 91, "trace_id": "trace_04", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 92, "trace_id": "trace_04", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 93, "trace_id": "trace_04", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 94, "trace_id": "trace_04", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 95, "trace_id": "trace_04", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 96, "trace_id": "trace_04", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 97, "trace_id": "trace_04", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 98, "trace_id": "trace_04", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 99, "trace_id": "trace_04", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 100, "trace_id": "trace_04", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 101, "trace_id": "trace_04", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 102, "trace_id": "trace_04", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 103, "trace_id": "trace_04", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 104, "trace_id": "trace_04", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 105, "trace_id": "trace_05", "seq": 0, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 106, "trace_id": "trace_05", "seq": 2, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 107, "trace_id": "trace_05", "seq": 4, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 108, "trace_id": "trace_05", "seq": 6, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 109, "trace_id": "trace_05", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 110, "trace_id": "trace_05", "seq": 10, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 111, "trace_id": "trace_05", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 112, "trace_id": "trace_05", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 113, "trace_id": "trace_05", "seq": 16, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 114, "trace_id": "trace_05", "seq": 18, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 115, "trace_id": "trace_05", "seq": 20, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 116, "trace_id": "trace_05", "seq": 22, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 117, "trace_id": "trace_05", "seq": 24, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 118, "trace_id": "trace_05", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 119, "trace_id": "trace_05", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 120, "trace_id": "trace_05", "seq": 32, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 121, "trace_id": "trace_05", "seq": 34, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 122, "trace_id": "trace_05", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 123, "trace_id": "trace_05", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 124, "trace_id": "trace_05", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 125, "trace_id": "trace_05", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 126, "trace_id": "trace_05", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 127, "trace_id": "trace_05", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 128, "trace_id": "trace_05", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 129, "trace_id": "trace_05", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 130, "trace_id": "trace_05", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 131, "trace_id": "trace_05", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 132, "trace_id": "trace_05", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 133, "trace_id": "trace_05", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 134, "trace_id": "trace_06", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 135, "trace_id": "trace_06", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 136, "trace_id": "trace_06", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 137, "trace_id": "trace_06", "seq": 6, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 138, "trace_id": "trace_06", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 139, "trace_id": "trace_06", "seq": 10, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 140, "trace_id": "trace_06", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 141, "trace_id": "trace_06", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 142, "trace_id": "trace_06", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 143, "trace_id": "trace_06", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 144, "trace_id": "trace_06", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 145, "trace_id": "trace_06", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 146, "trace_id": "trace_06", "seq": 26, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 147, "trace_id": "trace_06", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 148, "trace_id": "trace_06", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 149, "trace_id": "trace_06", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 150, "trace_id": "trace_06", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 151, "trace_id": "trace_06", "seq": 36, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 152, "trace_id": "trace_06", "seq": 38, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 153, "trace_id": "trace_06", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 154, "trace_id": "trace_06", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 155, "trace_id": "trace_06", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 156, "trace_id": "trace_06", "seq": 46, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 157, "trace_id": "trace_06", "seq": 48, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 158, "trace_id": "trace_06", "seq": 50, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 159, "trace_id": "trace_06", "seq": 52, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 160, "trace_id": "trace_06", "seq": 54, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 161, "trace_id": "trace_06", "seq": 56, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 162, "trace_id": "trace_06", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 163, "trace_id": "trace_06", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 164, "trace_id": "trace_07", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 165, "trace_id": "trace_07", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 166, "trace_id": "trace_07", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 167, "trace_id": "trace_07", "seq": 6, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 168, "trace_id": "trace_07", "seq": 8, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 169, "trace_id": "trace_07", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 170, "trace_id": "trace_07", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 171, "trace_id": "trace_07", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 172, "trace_id": "trace_07", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 173, "trace_id": "trace_07", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 174, "trace_id": "trace_07", "seq": 20, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 175, "trace_id": "trace_07", "seq": 22, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 176, "trace_id": "trace_07", "seq": 24, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 177, "trace_id": "trace_07", "seq": 26, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 178, "trace_id": "trace_07", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 179, "trace_id": "trace_07", "seq": 30, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 180, "trace_id": "trace_07", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 181, "trace_id": "trace_07", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 182, "trace_id": "trace_07", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 183, "trace_id": "trace_07", "seq": 40, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 184, "trace_id": "trace_07", "seq": 42, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 185, "trace_id": "trace_07", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 186, "trace_id": "trace_07", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 187, "trace_id": "trace_07", "seq": 48, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 188, "trace_id": "trace_07", "seq": 50, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 189, "trace_id": "trace_07", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 190, "trace_id": "trace_07", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 191, "trace_id": "trace_07", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 192, "trace_id": "trace_07", "seq": 58, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 193, "trace_id": "trace_07", "seq": 60, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 194, "trace_id": "trace_07", "seq": 62, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 195, "trace_id": "trace_08", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 196, "trace_id": "trace_08", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 197, "trace_id": "trace_08", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 198, "trace_id": "trace_08", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 199, "trace_id": "trace_08", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 200, "trace_id": "trace_08", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 201, "trace_id": "trace_08", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 202, "trace_id": "trace_08", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 203, "trace_id": "trace_08", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 204, "trace_id": "trace_08", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 205, "trace_id": "trace_08", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 206, "trace_id": "trace_08", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 207, "trace_id": "trace_08", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 208, "trace_id": "trace_08", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 209, "trace_id": "trace_08", "seq": 30, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 210, "trace_id": "trace_08", "seq": 32, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 211, "trace_id": "trace_08", "seq": 34, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 212, "trace_id": "trace_08", "seq": 36, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 213, "trace_id": "trace_08", "seq": 38, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 214, "trace_id": "trace_08", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 215, "trace_id": "trace_08", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 216, "trace_id": "trace_08", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 217, "trace_id": "trace_08", "seq": 46, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 218, "trace_id": "trace_08", "seq": 48, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 219, "trace_id": "trace_08", "seq": 50, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 220, "trace_id": "trace_08", "seq": 52, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 221, "trace_id": "trace_08", "seq": 54, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 222, "trace_id": "trace_09", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 223, "trace_id": "trace_09", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 224, "trace_id": "trace_09", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 225, "trace_id": "trace_09", "seq": 6, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 226, "trace_id": "trace_09", "seq": 8, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 227, "trace_id": "trace_09", "seq": 10, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 228, "trace_id": "trace_09", "seq": 12, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 229, "trace_id": "trace_09", "seq": 14, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 230, "trace_id": "trace_09", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 231, "trace_id": "trace_09", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 232, "trace_id": "trace_09", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 233, "trace_id": "trace_09", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 234, "trace_id": "trace_09", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 235, "trace_id": "trace_09", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 236, "trace_id": "trace_09", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 237, "trace_id": "trace_09", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 238, "trace_id": "trace_09", "seq": 32, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 239, "trace_id": "trace_09", "seq": 34, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 240, "trace_id": "trace_09", "seq": 36, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 241, "trace_id": "trace_09", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 242, "trace_id": "trace_09", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 243, "trace_id": "trace_09", "seq": 42, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 244, "trace_id": "trace_09", "seq": 44, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 245, "trace_id": "trace_09", "seq": 46, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 246, "trace_id": "trace_09", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 247, "trace_id": "trace_09", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 248, "trace_id": "trace_09", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 249, "trace_id": "trace_10", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 250, "trace_id": "trace_10", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 251, "trace_id": "trace_10", "seq": 4, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 252, "trace_id": "trace_10", "seq": 6, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 253, "trace_id": "trace_10", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 254, "trace_id": "trace_10", "seq": 10, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 255, "trace_id": "trace_10", "seq": 12, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 256, "trace_id": "trace_10", "seq": 14, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 257, "trace_id": "trace_10", "seq": 16, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 258, "trace_id": "trace_10", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 259, "trace_id": "trace_10", "seq": 22, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 260, "trace_id": "trace_10", "seq": 24, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 261, "trace_id": "trace_10", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 262, "trace_id": "trace_10", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 263, "trace_id": "trace_10", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 264, "trace_id": "trace_10", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 265, "trace_id": "trace_10", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 266, "trace_id": "trace_10", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 267, "trace_id": "trace_10", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 268, "trace_id": "trace_10", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 269, "trace_id": "trace_10", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 270, "trace_id": "trace_10", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 271, "trace_id": "trace_10", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 272, "trace_id": "trace_10", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 273, "trace_id": "trace_10", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 274, "trace_id": "trace_10", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 275, "trace_id": "trace_10", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 276, "trace_id": "trace_10", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 277, "trace_id": "trace_10", "seq": 58, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 278, "trace_id": "trace_10", "seq": 60, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 279, "trace_id": "trace_10", "seq": 62, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 280, "trace_id": "trace_11", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 281, "trace_id": "trace_11", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 282, "trace_id": "trace_11", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 283, "trace_id": "trace_11", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 284, "trace_id": "trace_11", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 285, "trace_id": "trace_11", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 286, "trace_id": "trace_11", "seq": 14, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 287, "trace_id": "trace_11", "seq": 16, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 288, "trace_id": "trace_11", "seq": 18, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 289, "trace_id": "trace_11", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 290, "trace_id": "trace_11", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 291, "trace_id": "trace_11", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 292, "trace_id": "trace_11", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 293, "trace_id": "trace_11", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 294, "trace_id": "trace_11", "seq": 30, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 295, "trace_id": "trace_11", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 296, "trace_id": "trace_11", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 297, "trace_id": "trace_11", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 298, "trace_id": "trace_11", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 299, "trace_id": "trace_11", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 300, "trace_id": "trace_11", "seq": 42, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 301, "trace_id": "trace_11", "seq": 44, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 302, "trace_id": "trace_11", "seq": 46, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 303, "trace_id": "trace_11", "seq": 48, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 304, "trace_id": "trace_11", "seq": 50, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 305, "trace_id": "trace_11", "seq": 52, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 306, "trace_id": "trace_11", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 307, "trace_id": "trace_11", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 308, "trace_id": "trace_11", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 309, "trace_id": "trace_11", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 310, "trace_id": "trace_11", "seq": 62, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 311, "trace_id": "trace_11", "seq": 64, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 312, "trace_id": "trace_11", "seq": 66, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 313, "trace_id": "trace_12", "seq": 0, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 314, "trace_id": "trace_12", "seq": 2, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 315, "trace_id": "trace_12", "seq": 4, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 316, "trace_id": "trace_12", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 317, "trace_id": "trace_12", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 318, "trace_id": "trace_12", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 319, "trace_id": "trace_12", "seq": 14, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 320, "trace_id": "trace_12", "seq": 16, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 321, "trace_id": "trace_12", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 322, "trace_id": "trace_12", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 323, "trace_id": "trace_12", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 324, "trace_id": "trace_12", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 325, "trace_id": "trace_12", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 326, "trace_id": "trace_12", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 327, "trace_id": "trace_12", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 328, "trace_id": "trace_12", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 329, "trace_id": "trace_12", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 330, "trace_id": "trace_12", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 331, "trace_id": "trace_12", "seq": 38, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 332, "trace_id": "trace_12", "seq": 40, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 333, "trace_id": "trace_12", "seq": 42, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 334, "trace_id": "trace_13", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 335, "trace_id": "trace_13", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 336, "trace_id": "trace_13", "seq": 4, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 337, "trace_id": "trace_13", "seq": 6, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 338, "trace_id": "trace_13", "seq": 8, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 339, "trace_id": "trace_13", "seq": 10, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 340, "trace_id": "trace_13", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 341, "trace_id": "trace_13", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 342, "trace_id": "trace_13", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 343, "trace_id": "trace_13", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 344, "trace_id": "trace_13", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 345, "trace_id": "trace_13", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 346, "trace_id": "trace_13", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 347, "trace_id": "trace_13", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 348, "trace_id": "trace_13", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 349, "trace_id": "trace_13", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 350, "trace_id": "trace_13", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 351, "trace_id": "trace_13", "seq": 36, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 352, "trace_id": "trace_13", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 353, "trace_id": "trace_13", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 354, "trace_id": "trace_14", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 355, "trace_id": "trace_14", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 356, "trace_id": "trace_14", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 357, "trace_id": "trace_14", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 358, "trace_id": "trace_14", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 359, "trace_id": "trace_14", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 360, "trace_id": "trace_14", "seq": 14, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 361, "trace_id": "trace_14", "seq": 16, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 362, "trace_id": "trace_14", "seq": 18, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 363, "trace_id": "trace_14", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 364, "trace_id": "trace_14", "seq": 22, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 365, "trace_id": "trace_14", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 366, "trace_id": "trace_14", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 367, "trace_id": "trace_14", "seq": 28, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 368, "trace_id": "trace_14", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 369, "trace_id": "trace_14", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 370, "trace_id": "trace_14", "seq": 34, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 371, "trace_id": "trace_14", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 372, "trace_id": "trace_14", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 373, "trace_id": "trace_14", "seq": 40, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 374, "trace_id": "trace_14", "seq": 42, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 375, "trace_id": "trace_14", "seq": 44, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 376, "trace_id": "trace_15", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 377, "trace_id": "trace_15", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 378, "trace_id": "trace_15", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 379, "trace_id": "trace_15", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 380, "trace_id": "trace_15", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 381, "trace_id": "trace_15", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 382, "trace_id": "trace_15", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 383, "trace_id": "trace_15", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 384, "trace_id": "trace_15", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 385, "trace_id": "trace_15", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 386, "trace_id": "trace_15", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 387, "trace_id": "trace_15", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 388, "trace_id": "trace_15", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 389, "trace_id": "trace_15", "seq": 28, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 390, "trace_id": "trace_15", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 391, "trace_id": "trace_15", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 392, "trace_id": "trace_15", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 393, "trace_id": "trace_15", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 394, "trace_id": "trace_15", "seq": 38, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 395, "trace_id": "trace_15", "seq": 40, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 396, "trace_id": "trace_15", "seq": 42, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 397, "trace_id": "trace_15", "seq": 44, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 398, "trace_id": "trace_15", "seq": 46, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 399, "trace_id": "trace_15", "seq": 48, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 400, "trace_id": "trace_16", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 401, "trace_id": "trace_16", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 402, "trace_id": "trace_16", "seq": 4, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 403, "trace_id": "trace_16", "seq": 6, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 404, "trace_id": "trace_16", "seq": 8, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 405, "trace_id": "trace_16", "seq": 10, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 406, "trace_id": "trace_16", "seq": 12, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 407, "trace_id": "trace_16", "seq": 14, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 408, "trace_id": "trace_16", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 409, "trace_id": "trace_16", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 410, "trace_id": "trace_16", "seq": 20, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 411, "trace_id": "trace_16", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 412, "trace_id": "trace_16", "seq": 24, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 413, "trace_id": "trace_16", "seq": 26, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 414, "trace_id": "trace_16", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 415, "trace_id": "trace_16", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 416, "trace_id": "trace_16", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 417, "trace_id": "trace_16", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 418, "trace_id": "trace_16", "seq": 36, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 419, "trace_id": "trace_16", "seq": 38, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 420, "trace_id": "trace_16", "seq": 40, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 421, "trace_id": "trace_16", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 422, "trace_id": "trace_16", "seq": 46, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 423, "trace_id": "trace_16", "seq": 48, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 424, "trace_id": "trace_16", "seq": 50, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 425, "trace_id": "trace_16", "seq": 52, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 426, "trace_id": "trace_16", "seq": 54, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 427, "trace_id": "trace_17", "seq": 0, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 428, "trace_id": "trace_17", "seq": 2, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 429, "trace_id": "trace_17", "seq": 4, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 430, "trace_id": "trace_17", "seq": 6, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 431, "trace_id": "trace_17", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 432, "trace_id": "trace_17", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 433, "trace_id": "trace_17", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 434, "trace_id": "trace_17", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 435, "trace_id": "trace_17", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 436, "trace_id": "trace_17", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 437, "trace_id": "trace_17", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 438, "trace_id": "trace_17", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 439, "trace_id": "trace_17", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 440, "trace_id": "trace_17", "seq": 28, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 441, "trace_id": "trace_17", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 442, "trace_id": "trace_17", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 443, "trace_id": "trace_17", "seq": 34, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 444, "trace_id": "trace_17", "seq": 36, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 445, "trace_id": "trace_17", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 446, "trace_id": "trace_17", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 447, "trace_id": "trace_17", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 448, "trace_id": "trace_17", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 449, "trace_id": "trace_17", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 450, "trace_id": "trace_17", "seq": 48, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 451, "trace_id": "trace_17", "seq": 50, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 452, "trace_id": "trace_17", "seq": 52, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 453, "trace_id": "trace_17", "seq": 54, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 454, "trace_id": "trace_17", "seq": 56, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 455, "trace_id": "trace_17", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 456, "trace_id": "trace_17", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 457, "trace_id": "trace_18", "seq": 0, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 458, "trace_id": "trace_18", "seq": 2, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 459, "trace_id": "trace_18", "seq": 4, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 460, "trace_id": "trace_18", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 461, "trace_id": "trace_18", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 462, "trace_id": "trace_18", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 463, "trace_id": "trace_18", "seq": 14, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 464, "trace_id": "trace_18", "seq": 16, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 465, "trace_id": "trace_18", "seq": 18, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 466, "trace_id": "trace_18", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 467, "trace_id": "trace_18", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 468, "trace_id": "trace_18", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 469, "trace_id": "trace_18", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 470, "trace_id": "trace_18", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 471, "trace_id": "trace_18", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 472, "trace_id": "trace_18", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 473, "trace_id": "trace_18", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 474, "trace_id": "trace_18", "seq": 36, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 475, "trace_id": "trace_18", "seq": 38, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 476, "trace_id": "trace_18", "seq": 40, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 477, "trace_id": "trace_18", "seq": 42, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 478, "trace_id": "trace_18", "seq": 44, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 479, "trace_id": "trace_18", "seq": 46, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 480, "trace_id": "trace_18", "seq": 48, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 481, "trace_id": "trace_18", "seq": 50, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 482, "trace_id": "trace_18", "seq": 52, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 483, "trace_id": "trace_18", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 484, "trace_id": "trace_18", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 485, "trace_id": "trace_18", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 486, "trace_id": "trace_19", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 487, "trace_id": "trace_19", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 488, "trace_id": "trace_19", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 489, "trace_id": "trace_19", "seq": 6, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 490, "trace_id": "trace_19", "seq": 8, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 491, "trace_id": "trace_19", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 492, "trace_id": "trace_19", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 493, "trace_id": "trace_19", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 494, "trace_id": "trace_19", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 495, "trace_id": "trace_19", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 496, "trace_id": "trace_19", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 497, "trace_id": "trace_19", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 498, "trace_id": "trace_19", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 499, "trace_id": "trace_19", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 500, "trace_id": "trace_19", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 501, "trace_id": "trace_19", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 502, "trace_id": "trace_19", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 503, "trace_id": "trace_19", "seq": 36, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 504, "trace_id": "trace_19", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 505, "trace_id": "trace_19", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 506, "trace_id": "trace_19", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 507, "trace_id": "trace_19", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 508, "trace_id": "trace_19", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 509, "trace_id": "trace_19", "seq": 48, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 510, "trace_id": "trace_19", "seq": 50, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 511, "trace_id": "trace_19", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 512, "trace_id": "trace_19", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 513, "trace_id": "trace_19", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 514, "trace_id": "trace_20", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 515, "trace_id": "trace_20", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 516, "trace_id": "trace_20", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} -{"window_id": 517, "trace_id": "trace_20", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 518, "trace_id": "trace_20", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 519, "trace_id": "trace_20", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 520, "trace_id": "trace_20", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 521, "trace_id": "trace_20", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 522, "trace_id": "trace_20", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 523, "trace_id": "trace_20", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 524, "trace_id": "trace_20", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 525, "trace_id": "trace_20", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 526, "trace_id": "trace_20", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 527, "trace_id": "trace_20", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 528, "trace_id": "trace_20", "seq": 30, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 529, "trace_id": "trace_20", "seq": 32, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 530, "trace_id": "trace_20", "seq": 34, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} -{"window_id": 531, "trace_id": "trace_20", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} -{"window_id": 532, "trace_id": "trace_20", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 533, "trace_id": "trace_20", "seq": 40, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 534, "trace_id": "trace_20", "seq": 42, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 535, "trace_id": "trace_20", "seq": 44, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 536, "trace_id": "trace_20", "seq": 46, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 537, "trace_id": "trace_20", "seq": 48, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} -{"window_id": 538, "trace_id": "trace_20", "seq": 50, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} -{"window_id": 539, "trace_id": "trace_20", "seq": 52, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} -{"window_id": 540, "trace_id": "trace_20", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} -{"window_id": 541, "trace_id": "trace_20", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} -{"window_id": 542, "trace_id": "trace_20", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 0, "trace_id": "trace_01", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 1, "trace_id": "trace_01", "seq": 1, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 2, "trace_id": "trace_01", "seq": 2, "action": "TryAcquireNonBlocking", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "acquiring", "2": "idle"}}} +{"window_id": 3, "trace_id": "trace_01", "seq": 3, "action": "AcquireFail", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 4, "trace_id": "trace_01", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 5, "trace_id": "trace_01", "seq": 5, "action": "TryAcquireNonBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 6, "trace_id": "trace_01", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 7, "trace_id": "trace_01", "seq": 7, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 8, "trace_id": "trace_01", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 9, "trace_id": "trace_01", "seq": 9, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 10, "trace_id": "trace_01", "seq": 10, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} diff --git a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/TV_AcquireLock.tla b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/TV_AcquireLock.tla index 4737499..6c48f30 100644 --- a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/TV_AcquireLock.tla +++ b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/TV_AcquireLock.tla @@ -23,7 +23,7 @@ Init == Next == /\ step = 0 - /\ \E t \in Threads : S!AcquireLock(t) + /\ S!AcquireLock(w.actor) /\ step' = 1 PostReached == diff --git a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/make_windows.py b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/make_windows.py index 2c965c8..82afcdd 100644 --- a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/make_windows.py +++ b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/make_windows.py @@ -7,6 +7,7 @@ - pc value: trace 'acquiring' → spec 'trying' (same for idle/locked) """ +import argparse import json from pathlib import Path @@ -26,24 +27,30 @@ def convert_state(s): def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--source", type=Path, default=SRC) + parser.add_argument("--output", type=Path, default=DST) + args = parser.parse_args() out = [] - with open(SRC) as f: + with open(args.source) as f: for line in f: w = json.loads(line) if w["action"] != TARGET_ACTION: continue - out.append({ - "id": len(out) + 1, # 1-indexed for TLA+ - "trace_id": w["trace_id"], - "actor": int(w["actor"]) + 1, # trace 0/1/2 → spec 1/2/3 - "pre": convert_state(w["pre_state"]), - "post": convert_state(w["post_state"]), - }) - - with open(DST, "w") as f: + out.append( + { + "id": len(out) + 1, # 1-indexed for TLA+ + "trace_id": w["trace_id"], + "actor": int(w["actor"]) + 1, # trace 0/1/2 → spec 1/2/3 + "pre": convert_state(w["pre_state"]), + "post": convert_state(w["post_state"]), + } + ) + + with open(args.output, "w") as f: for w in out: f.write(json.dumps(w) + "\n") - print(f"Wrote {len(out)} {TARGET_ACTION} windows to {DST}") + print(f"Wrote {len(out)} {TARGET_ACTION} windows to {args.output}") if __name__ == "__main__": diff --git a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/run_tv.py b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/run_tv.py index c28f64d..88c16bf 100644 --- a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/run_tv.py +++ b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/run_tv.py @@ -1,61 +1,17 @@ #!/usr/bin/env python3 -""" -Run TV for AcquireLock on all windows. -Data-code separation: windows.ndjson is pure data, TV_*.tla is pure code. -""" +"""Validate the spin example using the shared TLC runner.""" -import os -import json -import subprocess -import time +import sys from pathlib import Path -from concurrent.futures import ProcessPoolExecutor, as_completed - -SPEC_DIR = Path(__file__).parent -WINDOWS = SPEC_DIR / "windows_AcquireLock.ndjson" -TV_TLA = "TV_AcquireLock.tla" -TV_CFG = "TV_AcquireLock.cfg" -PROJECT_ROOT = SPEC_DIR.resolve().parents[5] -TLA_JAR = str(PROJECT_ROOT / "lib" / "tla2tools.jar") -COMM_JAR = str(PROJECT_ROOT / "lib" / "CommunityModules-deps.jar") - - -def check_one(idx): - env = {**os.environ, "WINDOW_INDEX": str(idx)} - r = subprocess.run( - ["java", "-cp", f"{TLA_JAR}:{COMM_JAR}", "tlc2.TLC", - "-dfid", "2", "-deadlock", "-nowarning", - "-metadir", f"/tmp/tv_spin_{idx}", - "-config", TV_CFG, TV_TLA], - capture_output=True, text=True, timeout=30, - cwd=SPEC_DIR, env=env, - ) - return idx, r.returncode == 12, r.returncode - - -def main(): - with open(WINDOWS) as f: - n = sum(1 for _ in f) - - print(f"Running {n} windows against AI spec's AcquireLock...") - start = time.time() - results = {} - with ProcessPoolExecutor(max_workers=8) as pool: - for idx, ok, code in pool.map(check_one, range(1, n + 1)): - results[idx] = (ok, code) - - passed = sum(1 for ok, _ in results.values() if ok) - elapsed = time.time() - start - - # Cleanup metadirs - os.system("rm -rf /tmp/tv_spin_*") - - print(f"\nResult: {passed}/{n} PASSED ({passed/n*100:.1f}%) time={elapsed:.1f}s") - - failed = [i for i, (ok, _) in results.items() if not ok] - if failed: - print(f"Failed: {failed[:10]}{' ...' if len(failed) > 10 else ''}") +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +from validate import main if __name__ == "__main__": - main() + sys.exit( + main( + Path(__file__).resolve().parent, + "TV_AcquireLock", + Path(__file__).resolve().parent / "windows_AcquireLock.ndjson", + ) + ) diff --git a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/windows_AcquireLock.ndjson b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/windows_AcquireLock.ndjson index 64484af..4b2b85c 100644 --- a/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/windows_AcquireLock.ndjson +++ b/tla_eval/skills/tv-eval/examples/spin/ai_spec_1/windows_AcquireLock.ndjson @@ -1,210 +1,3 @@ -{"id": 1, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 2, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 3, "trace_id": "trace_01", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 4, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 5, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 6, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 7, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 8, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 9, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 10, "trace_id": "trace_01", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 11, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 12, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 13, "trace_id": "trace_02", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 14, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 15, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 16, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 17, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 18, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 19, "trace_id": "trace_02", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 20, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 21, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 22, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 23, "trace_id": "trace_03", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 24, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 25, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 26, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 27, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 28, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 29, "trace_id": "trace_03", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 30, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 31, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 32, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 33, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 34, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 35, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 36, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 37, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 38, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 39, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 40, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 41, "trace_id": "trace_04", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 42, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 43, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 44, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 45, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 46, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 47, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 48, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 49, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 50, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 51, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 52, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 53, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 54, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 55, "trace_id": "trace_06", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 56, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 57, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 58, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 59, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 60, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 61, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 62, "trace_id": "trace_06", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 63, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 64, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 65, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 66, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 67, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 68, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 69, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 70, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 71, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 72, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 73, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 74, "trace_id": "trace_07", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 75, "trace_id": "trace_07", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 76, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 77, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 78, "trace_id": "trace_08", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 79, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 80, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 81, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 82, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 83, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 84, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 85, "trace_id": "trace_08", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 86, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 87, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 88, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 89, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 90, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 91, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 92, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 93, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 94, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 95, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 96, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 97, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 98, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 99, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 100, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 101, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 102, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 103, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 104, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 105, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 106, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 107, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 108, "trace_id": "trace_11", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 109, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 110, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 111, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 112, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 113, "trace_id": "trace_11", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 114, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 115, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 116, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 117, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 118, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 119, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 120, "trace_id": "trace_12", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 121, "trace_id": "trace_12", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 122, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 123, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 124, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 125, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 126, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 127, "trace_id": "trace_12", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 128, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 129, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 130, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 131, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 132, "trace_id": "trace_13", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 133, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 134, "trace_id": "trace_13", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 135, "trace_id": "trace_13", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 136, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 137, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 138, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 139, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 140, "trace_id": "trace_14", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 141, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 142, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 143, "trace_id": "trace_14", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 144, "trace_id": "trace_15", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 145, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 146, "trace_id": "trace_15", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 147, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 148, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 149, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 150, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 151, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 152, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 153, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 154, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 155, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 156, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 157, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 158, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 159, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 160, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 161, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 162, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 163, "trace_id": "trace_16", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 164, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 165, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 166, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 167, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 168, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 169, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 170, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 171, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 172, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 173, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 174, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 175, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 176, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 177, "trace_id": "trace_18", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 178, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 179, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 180, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 181, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 182, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 183, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 184, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 185, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 186, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 187, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 188, "trace_id": "trace_18", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 189, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 190, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 191, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 192, "trace_id": "trace_19", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 193, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 194, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 195, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 196, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 197, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 198, "trace_id": "trace_19", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 199, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} -{"id": 200, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 201, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 202, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 203, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 204, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 205, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 206, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} -{"id": 207, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 208, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 209, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} -{"id": 210, "trace_id": "trace_20", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 1, "trace_id": "trace_01", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 2, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 3, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} diff --git a/tla_eval/skills/tv-eval/examples/spin/generate_windows.py b/tla_eval/skills/tv-eval/examples/spin/generate_windows.py index 461d42a..321050c 100644 --- a/tla_eval/skills/tv-eval/examples/spin/generate_windows.py +++ b/tla_eval/skills/tv-eval/examples/spin/generate_windows.py @@ -1,157 +1,158 @@ #!/usr/bin/env python3 -""" -Generate action windows from spinlock system traces. +"""Reconstruct single-lock action windows from complete spin trace events.""" -Reads raw trace JSONL files, reconstructs full state at each step, -and outputs (pre_state, post_state) windows for transition validation. - -State variables tracked: - - lockState: "locked" | "unlocked" - - pc: per-thread program counter {"idle", "acquiring", "locked"} -""" - -import json +import argparse import copy -import sys +import json +from collections import Counter from pathlib import Path -TRACES_DIR = Path(__file__).parent.parent.parent / "data" / "sys_traces" / "spin" -OUTPUT_FILE = Path(__file__).parent / "action_windows.jsonl" - +EXAMPLE_DIR = Path(__file__).resolve().parent +PROJECT_ROOT = EXAMPLE_DIR.parents[4] +TRACES_DIR = PROJECT_ROOT / "data/sys_traces/spin" +OUTPUT_FILE = EXAMPLE_DIR / "action_windows.jsonl" THREAD_IDS = ["0", "1", "2"] -# How each trace action updates the state -ACTION_EFFECTS = { - "TryAcquireBlocking": lambda state, actor: _set_pc(state, actor, "acquiring"), - "TryAcquireNonBlocking": lambda state, actor: _set_pc(state, actor, "acquiring"), - "AcquireSuccess": lambda state, actor: _acquire(state, actor), - "StopSpinning": lambda state, actor: state, # no change to tracked vars - "Release": lambda state, actor: _release(state, actor), -} - - -def _set_pc(state, actor, value): - new = copy.deepcopy(state) - new["pc"][actor] = value - return new - - -def _acquire(state, actor): - new = copy.deepcopy(state) - new["lockState"] = "locked" - new["pc"][actor] = "locked" - return new - - -def _release(state, actor): - new = copy.deepcopy(state) - new["lockState"] = "unlocked" - new["pc"][actor] = "idle" - return new - def initial_state(): - return { - "lockState": "unlocked", - "pc": {tid: "idle" for tid in THREAD_IDS}, - } + return {"lockState": "unlocked", "pc": {tid: "idle" for tid in THREAD_IDS}} def parse_trace(trace_path): - """Parse a trace JSONL file, skipping comment lines.""" events = [] - with open(trace_path) as f: - for line in f: - line = line.strip() - if not line or line.startswith("#"): - continue - events.append(json.loads(line)) + for number, line in enumerate(trace_path.read_text().splitlines(), 1): + if not line.strip() or line.lstrip().startswith("#"): + continue + try: + event = json.loads(line) + if not isinstance(event, dict): + raise ValueError("expected an event object") + except ValueError as exc: + raise ValueError(f"{trace_path}:{number}: {exc}") from exc + events.append(event) + if not events: + raise ValueError(f"{trace_path}: no events") return events -def generate_windows_from_trace(trace_id, events): - """Generate action windows from a sequence of trace events.""" - windows = [] - current_state = initial_state() - window_id = 0 +def generate_windows_from_trace(trace_id, events, *, allow_legacy_direct_acquire=False): + """Reject incomplete/inconsistent traces instead of scoring invented states. + The legacy switch only reproduces the archived coarse example; it does not + make missing request events compliant with the task's single-step contract. + """ + windows = [] + state = initial_state() + requests = {} + previous_seq = -1 + lock_id = None for event in events: - action = event["action"] - actor = str(event["actor"]) - - if action not in ACTION_EFFECTS: - print(f" WARNING: unknown action '{action}' in {trace_id}, skipping") - continue - - pre_state = copy.deepcopy(current_state) - post_state = ACTION_EFFECTS[action](current_state, actor) - - # Skip no-op windows (pre == post), e.g. StopSpinning - if pre_state == post_state: - current_state = post_state - continue - - # Sanity check: lockState in post should match trace 'state' field - trace_lock_state = event.get("state") - if trace_lock_state and post_state["lockState"] != trace_lock_state: - print( - f" WARNING: state mismatch in {trace_id} seq {event['seq']}: " - f"computed={post_state['lockState']}, trace={trace_lock_state}" + try: + action, actor, seq = event["action"], str(event["actor"]), event["seq"] + observed = event["state"] + if actor not in THREAD_IDS: + raise ValueError(f"unknown actor {actor}") + if type(seq) is not int or seq <= previous_seq: + raise ValueError("sequence numbers must increase within a trace") + previous_seq = seq + if observed not in ("locked", "unlocked"): + raise ValueError("state must be locked or unlocked") + if "lock" in event: + if lock_id is not None and event["lock"] != lock_id: + raise ValueError("one lock per trace is required") + lock_id = event["lock"] + post = copy.deepcopy(state) + pc = state["pc"][actor] + held = state["lockState"] == "locked" + if action in ("TryAcquireBlocking", "TryAcquireNonBlocking"): + if pc != "idle": + raise ValueError("request requires an idle actor") + post["pc"][actor] = "acquiring" + requests[actor] = action + elif action == "AcquireSuccess": + if held: + raise ValueError("acquisition requires a free lock") + if pc != "acquiring" and not ( + allow_legacy_direct_acquire and pc == "idle" + ): + raise ValueError( + "AcquireSuccess is missing its request event; re-instrument and recapture" + ) + post["lockState"] = "locked" + post["pc"][actor] = "locked" + requests.pop(actor, None) + elif action == "AcquireFail": + if ( + pc != "acquiring" + or not held + or requests.get(actor) != "TryAcquireNonBlocking" + ): + raise ValueError( + "failure requires a pending nonblocking request and a held lock" + ) + post["pc"][actor] = "idle" + requests.pop(actor) + elif action == "Release": + if pc != "locked" or not held: + raise ValueError("release requires the owning actor") + post["lockState"] = "unlocked" + post["pc"][actor] = "idle" + elif action == "StopSpinning": + if pc != "acquiring" or requests.get(actor) != "TryAcquireBlocking": + raise ValueError("StopSpinning requires a pending blocking request") + else: + raise ValueError(f"unknown action {action!r}") + # Check even no-op events, before deciding whether to emit a window. + if post["lockState"] != observed: + raise ValueError( + f"state mismatch: computed={post['lockState']}, observed={observed}" + ) + except (KeyError, ValueError) as exc: + raise ValueError(f"{trace_id} seq {event.get('seq', '?')}: {exc}") from exc + if post != state: + windows.append( + { + "window_id": len(windows), + "trace_id": trace_id, + "seq": seq, + "action": action, + "actor": actor, + "pre_state": state, + "post_state": post, + } ) - - windows.append({ - "window_id": window_id, - "trace_id": trace_id, - "seq": event["seq"], - "action": action, - "actor": actor, - "pre_state": pre_state, - "post_state": post_state, - }) - - current_state = post_state - window_id += 1 - + state = post return windows def main(): - trace_files = sorted(TRACES_DIR.glob("trace_*.jsonl")) - if not trace_files: - print(f"ERROR: no trace files found in {TRACES_DIR}") - sys.exit(1) - - all_windows = [] - global_id = 0 - - for trace_file in trace_files: - trace_id = trace_file.stem # e.g. "trace_01" - events = parse_trace(trace_file) - windows = generate_windows_from_trace(trace_id, events) - - # Re-number with global IDs - for w in windows: - w["window_id"] = global_id - global_id += 1 - - all_windows.extend(windows) - print(f" {trace_id}: {len(events)} events → {len(windows)} windows") - - # Write output - with open(OUTPUT_FILE, "w") as f: - for w in all_windows: - f.write(json.dumps(w) + "\n") - - print(f"\nTotal: {len(all_windows)} windows written to {OUTPUT_FILE}") - - # Summary stats - actions = {} - for w in all_windows: - a = w["action"] - actions[a] = actions.get(a, 0) + 1 - print("\nWindows by action type:") - for a, count in sorted(actions.items()): - print(f" {a}: {count}") + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--traces-dir", type=Path, default=TRACES_DIR) + parser.add_argument("--output", type=Path, default=OUTPUT_FILE) + parser.add_argument( + "--allow-legacy-direct-acquire", + action="store_true", + help="Reproduce historical coarse windows; not valid benchmark input", + ) + args = parser.parse_args() + files = sorted(args.traces_dir.glob("trace_*.jsonl")) + if not files: + parser.error(f"no trace_*.jsonl files in {args.traces_dir}") + windows = [] + try: + for path in files: + for window in generate_windows_from_trace( + path.stem, + parse_trace(path), + allow_legacy_direct_acquire=args.allow_legacy_direct_acquire, + ): + window["window_id"] = len(windows) + windows.append(window) + except (OSError, ValueError) as exc: + parser.error(str(exc)) + args.output.write_text("".join(json.dumps(w) + "\n" for w in windows)) + print(f"Wrote {len(windows)} windows to {args.output}") + print(dict(Counter(w["action"] for w in windows))) if __name__ == "__main__": diff --git a/tla_eval/skills/tv-eval/examples/spin/legacy/action_windows.jsonl b/tla_eval/skills/tv-eval/examples/spin/legacy/action_windows.jsonl new file mode 100644 index 0000000..5e555e6 --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/legacy/action_windows.jsonl @@ -0,0 +1,543 @@ +{"window_id": 0, "trace_id": "trace_01", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 1, "trace_id": "trace_01", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 2, "trace_id": "trace_01", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 3, "trace_id": "trace_01", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 4, "trace_id": "trace_01", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 5, "trace_id": "trace_01", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 6, "trace_id": "trace_01", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 7, "trace_id": "trace_01", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 8, "trace_id": "trace_01", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 9, "trace_id": "trace_01", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 10, "trace_id": "trace_01", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 11, "trace_id": "trace_01", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 12, "trace_id": "trace_01", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 13, "trace_id": "trace_01", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 14, "trace_id": "trace_01", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 15, "trace_id": "trace_01", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 16, "trace_id": "trace_01", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 17, "trace_id": "trace_01", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 18, "trace_id": "trace_01", "seq": 38, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 19, "trace_id": "trace_01", "seq": 40, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 20, "trace_id": "trace_01", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 21, "trace_id": "trace_01", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 22, "trace_id": "trace_01", "seq": 46, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 23, "trace_id": "trace_01", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 24, "trace_id": "trace_01", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 25, "trace_id": "trace_02", "seq": 0, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 26, "trace_id": "trace_02", "seq": 2, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 27, "trace_id": "trace_02", "seq": 4, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 28, "trace_id": "trace_02", "seq": 6, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 29, "trace_id": "trace_02", "seq": 8, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 30, "trace_id": "trace_02", "seq": 10, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 31, "trace_id": "trace_02", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 32, "trace_id": "trace_02", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 33, "trace_id": "trace_02", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 34, "trace_id": "trace_02", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 35, "trace_id": "trace_02", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 36, "trace_id": "trace_02", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 37, "trace_id": "trace_02", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 38, "trace_id": "trace_02", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 39, "trace_id": "trace_02", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 40, "trace_id": "trace_02", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 41, "trace_id": "trace_02", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 42, "trace_id": "trace_02", "seq": 36, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 43, "trace_id": "trace_02", "seq": 38, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 44, "trace_id": "trace_02", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 45, "trace_id": "trace_02", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 46, "trace_id": "trace_02", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 47, "trace_id": "trace_02", "seq": 46, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 48, "trace_id": "trace_02", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 49, "trace_id": "trace_02", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 50, "trace_id": "trace_03", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 51, "trace_id": "trace_03", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 52, "trace_id": "trace_03", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 53, "trace_id": "trace_03", "seq": 6, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 54, "trace_id": "trace_03", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 55, "trace_id": "trace_03", "seq": 10, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 56, "trace_id": "trace_03", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 57, "trace_id": "trace_03", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 58, "trace_id": "trace_03", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 59, "trace_id": "trace_03", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 60, "trace_id": "trace_03", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 61, "trace_id": "trace_03", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 62, "trace_id": "trace_03", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 63, "trace_id": "trace_03", "seq": 28, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 64, "trace_id": "trace_03", "seq": 30, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 65, "trace_id": "trace_03", "seq": 32, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 66, "trace_id": "trace_03", "seq": 34, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 67, "trace_id": "trace_03", "seq": 36, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 68, "trace_id": "trace_03", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 69, "trace_id": "trace_03", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 70, "trace_id": "trace_03", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 71, "trace_id": "trace_03", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 72, "trace_id": "trace_03", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 73, "trace_id": "trace_03", "seq": 48, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 74, "trace_id": "trace_03", "seq": 50, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 75, "trace_id": "trace_03", "seq": 52, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 76, "trace_id": "trace_03", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 77, "trace_id": "trace_03", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 78, "trace_id": "trace_03", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 79, "trace_id": "trace_04", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 80, "trace_id": "trace_04", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 81, "trace_id": "trace_04", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 82, "trace_id": "trace_04", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 83, "trace_id": "trace_04", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 84, "trace_id": "trace_04", "seq": 10, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 85, "trace_id": "trace_04", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 86, "trace_id": "trace_04", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 87, "trace_id": "trace_04", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 88, "trace_id": "trace_04", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 89, "trace_id": "trace_04", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 90, "trace_id": "trace_04", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 91, "trace_id": "trace_04", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 92, "trace_id": "trace_04", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 93, "trace_id": "trace_04", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 94, "trace_id": "trace_04", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 95, "trace_id": "trace_04", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 96, "trace_id": "trace_04", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 97, "trace_id": "trace_04", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 98, "trace_id": "trace_04", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 99, "trace_id": "trace_04", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 100, "trace_id": "trace_04", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 101, "trace_id": "trace_04", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 102, "trace_id": "trace_04", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 103, "trace_id": "trace_04", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 104, "trace_id": "trace_04", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 105, "trace_id": "trace_05", "seq": 0, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 106, "trace_id": "trace_05", "seq": 2, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 107, "trace_id": "trace_05", "seq": 4, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 108, "trace_id": "trace_05", "seq": 6, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 109, "trace_id": "trace_05", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 110, "trace_id": "trace_05", "seq": 10, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 111, "trace_id": "trace_05", "seq": 12, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 112, "trace_id": "trace_05", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 113, "trace_id": "trace_05", "seq": 16, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 114, "trace_id": "trace_05", "seq": 18, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 115, "trace_id": "trace_05", "seq": 20, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 116, "trace_id": "trace_05", "seq": 22, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 117, "trace_id": "trace_05", "seq": 24, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 118, "trace_id": "trace_05", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 119, "trace_id": "trace_05", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 120, "trace_id": "trace_05", "seq": 32, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 121, "trace_id": "trace_05", "seq": 34, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 122, "trace_id": "trace_05", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 123, "trace_id": "trace_05", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 124, "trace_id": "trace_05", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 125, "trace_id": "trace_05", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 126, "trace_id": "trace_05", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 127, "trace_id": "trace_05", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 128, "trace_id": "trace_05", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 129, "trace_id": "trace_05", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 130, "trace_id": "trace_05", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 131, "trace_id": "trace_05", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 132, "trace_id": "trace_05", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 133, "trace_id": "trace_05", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 134, "trace_id": "trace_06", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 135, "trace_id": "trace_06", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 136, "trace_id": "trace_06", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 137, "trace_id": "trace_06", "seq": 6, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 138, "trace_id": "trace_06", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 139, "trace_id": "trace_06", "seq": 10, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 140, "trace_id": "trace_06", "seq": 14, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 141, "trace_id": "trace_06", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 142, "trace_id": "trace_06", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 143, "trace_id": "trace_06", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 144, "trace_id": "trace_06", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 145, "trace_id": "trace_06", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 146, "trace_id": "trace_06", "seq": 26, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 147, "trace_id": "trace_06", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 148, "trace_id": "trace_06", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 149, "trace_id": "trace_06", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 150, "trace_id": "trace_06", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 151, "trace_id": "trace_06", "seq": 36, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 152, "trace_id": "trace_06", "seq": 38, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 153, "trace_id": "trace_06", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 154, "trace_id": "trace_06", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 155, "trace_id": "trace_06", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 156, "trace_id": "trace_06", "seq": 46, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 157, "trace_id": "trace_06", "seq": 48, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 158, "trace_id": "trace_06", "seq": 50, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 159, "trace_id": "trace_06", "seq": 52, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 160, "trace_id": "trace_06", "seq": 54, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 161, "trace_id": "trace_06", "seq": 56, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 162, "trace_id": "trace_06", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 163, "trace_id": "trace_06", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 164, "trace_id": "trace_07", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 165, "trace_id": "trace_07", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 166, "trace_id": "trace_07", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 167, "trace_id": "trace_07", "seq": 6, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 168, "trace_id": "trace_07", "seq": 8, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 169, "trace_id": "trace_07", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 170, "trace_id": "trace_07", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 171, "trace_id": "trace_07", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 172, "trace_id": "trace_07", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 173, "trace_id": "trace_07", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 174, "trace_id": "trace_07", "seq": 20, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 175, "trace_id": "trace_07", "seq": 22, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 176, "trace_id": "trace_07", "seq": 24, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 177, "trace_id": "trace_07", "seq": 26, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 178, "trace_id": "trace_07", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 179, "trace_id": "trace_07", "seq": 30, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 180, "trace_id": "trace_07", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 181, "trace_id": "trace_07", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 182, "trace_id": "trace_07", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 183, "trace_id": "trace_07", "seq": 40, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 184, "trace_id": "trace_07", "seq": 42, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 185, "trace_id": "trace_07", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 186, "trace_id": "trace_07", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 187, "trace_id": "trace_07", "seq": 48, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 188, "trace_id": "trace_07", "seq": 50, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 189, "trace_id": "trace_07", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 190, "trace_id": "trace_07", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 191, "trace_id": "trace_07", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 192, "trace_id": "trace_07", "seq": 58, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 193, "trace_id": "trace_07", "seq": 60, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 194, "trace_id": "trace_07", "seq": 62, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 195, "trace_id": "trace_08", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 196, "trace_id": "trace_08", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 197, "trace_id": "trace_08", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 198, "trace_id": "trace_08", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 199, "trace_id": "trace_08", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 200, "trace_id": "trace_08", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 201, "trace_id": "trace_08", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 202, "trace_id": "trace_08", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 203, "trace_id": "trace_08", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 204, "trace_id": "trace_08", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 205, "trace_id": "trace_08", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 206, "trace_id": "trace_08", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 207, "trace_id": "trace_08", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 208, "trace_id": "trace_08", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 209, "trace_id": "trace_08", "seq": 30, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 210, "trace_id": "trace_08", "seq": 32, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 211, "trace_id": "trace_08", "seq": 34, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 212, "trace_id": "trace_08", "seq": 36, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 213, "trace_id": "trace_08", "seq": 38, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 214, "trace_id": "trace_08", "seq": 40, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 215, "trace_id": "trace_08", "seq": 42, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 216, "trace_id": "trace_08", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 217, "trace_id": "trace_08", "seq": 46, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 218, "trace_id": "trace_08", "seq": 48, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 219, "trace_id": "trace_08", "seq": 50, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 220, "trace_id": "trace_08", "seq": 52, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 221, "trace_id": "trace_08", "seq": 54, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 222, "trace_id": "trace_09", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 223, "trace_id": "trace_09", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 224, "trace_id": "trace_09", "seq": 4, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 225, "trace_id": "trace_09", "seq": 6, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 226, "trace_id": "trace_09", "seq": 8, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 227, "trace_id": "trace_09", "seq": 10, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 228, "trace_id": "trace_09", "seq": 12, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 229, "trace_id": "trace_09", "seq": 14, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 230, "trace_id": "trace_09", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 231, "trace_id": "trace_09", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 232, "trace_id": "trace_09", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 233, "trace_id": "trace_09", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 234, "trace_id": "trace_09", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 235, "trace_id": "trace_09", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 236, "trace_id": "trace_09", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 237, "trace_id": "trace_09", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 238, "trace_id": "trace_09", "seq": 32, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 239, "trace_id": "trace_09", "seq": 34, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 240, "trace_id": "trace_09", "seq": 36, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 241, "trace_id": "trace_09", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 242, "trace_id": "trace_09", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 243, "trace_id": "trace_09", "seq": 42, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 244, "trace_id": "trace_09", "seq": 44, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 245, "trace_id": "trace_09", "seq": 46, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 246, "trace_id": "trace_09", "seq": 48, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 247, "trace_id": "trace_09", "seq": 50, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 248, "trace_id": "trace_09", "seq": 52, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 249, "trace_id": "trace_10", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 250, "trace_id": "trace_10", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 251, "trace_id": "trace_10", "seq": 4, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 252, "trace_id": "trace_10", "seq": 6, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 253, "trace_id": "trace_10", "seq": 8, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 254, "trace_id": "trace_10", "seq": 10, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 255, "trace_id": "trace_10", "seq": 12, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 256, "trace_id": "trace_10", "seq": 14, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 257, "trace_id": "trace_10", "seq": 16, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 258, "trace_id": "trace_10", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 259, "trace_id": "trace_10", "seq": 22, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 260, "trace_id": "trace_10", "seq": 24, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 261, "trace_id": "trace_10", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 262, "trace_id": "trace_10", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 263, "trace_id": "trace_10", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 264, "trace_id": "trace_10", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 265, "trace_id": "trace_10", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 266, "trace_id": "trace_10", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 267, "trace_id": "trace_10", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 268, "trace_id": "trace_10", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 269, "trace_id": "trace_10", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 270, "trace_id": "trace_10", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 271, "trace_id": "trace_10", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 272, "trace_id": "trace_10", "seq": 48, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 273, "trace_id": "trace_10", "seq": 50, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 274, "trace_id": "trace_10", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 275, "trace_id": "trace_10", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 276, "trace_id": "trace_10", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 277, "trace_id": "trace_10", "seq": 58, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 278, "trace_id": "trace_10", "seq": 60, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 279, "trace_id": "trace_10", "seq": 62, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 280, "trace_id": "trace_11", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 281, "trace_id": "trace_11", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 282, "trace_id": "trace_11", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 283, "trace_id": "trace_11", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 284, "trace_id": "trace_11", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 285, "trace_id": "trace_11", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 286, "trace_id": "trace_11", "seq": 14, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 287, "trace_id": "trace_11", "seq": 16, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 288, "trace_id": "trace_11", "seq": 18, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 289, "trace_id": "trace_11", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 290, "trace_id": "trace_11", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 291, "trace_id": "trace_11", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 292, "trace_id": "trace_11", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 293, "trace_id": "trace_11", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 294, "trace_id": "trace_11", "seq": 30, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 295, "trace_id": "trace_11", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 296, "trace_id": "trace_11", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 297, "trace_id": "trace_11", "seq": 36, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 298, "trace_id": "trace_11", "seq": 38, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 299, "trace_id": "trace_11", "seq": 40, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 300, "trace_id": "trace_11", "seq": 42, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 301, "trace_id": "trace_11", "seq": 44, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 302, "trace_id": "trace_11", "seq": 46, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 303, "trace_id": "trace_11", "seq": 48, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 304, "trace_id": "trace_11", "seq": 50, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 305, "trace_id": "trace_11", "seq": 52, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 306, "trace_id": "trace_11", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 307, "trace_id": "trace_11", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 308, "trace_id": "trace_11", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 309, "trace_id": "trace_11", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 310, "trace_id": "trace_11", "seq": 62, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 311, "trace_id": "trace_11", "seq": 64, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 312, "trace_id": "trace_11", "seq": 66, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 313, "trace_id": "trace_12", "seq": 0, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 314, "trace_id": "trace_12", "seq": 2, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 315, "trace_id": "trace_12", "seq": 4, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 316, "trace_id": "trace_12", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 317, "trace_id": "trace_12", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 318, "trace_id": "trace_12", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 319, "trace_id": "trace_12", "seq": 14, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 320, "trace_id": "trace_12", "seq": 16, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 321, "trace_id": "trace_12", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 322, "trace_id": "trace_12", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 323, "trace_id": "trace_12", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 324, "trace_id": "trace_12", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 325, "trace_id": "trace_12", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 326, "trace_id": "trace_12", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 327, "trace_id": "trace_12", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 328, "trace_id": "trace_12", "seq": 32, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 329, "trace_id": "trace_12", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 330, "trace_id": "trace_12", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 331, "trace_id": "trace_12", "seq": 38, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 332, "trace_id": "trace_12", "seq": 40, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 333, "trace_id": "trace_12", "seq": 42, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 334, "trace_id": "trace_13", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 335, "trace_id": "trace_13", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 336, "trace_id": "trace_13", "seq": 4, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 337, "trace_id": "trace_13", "seq": 6, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 338, "trace_id": "trace_13", "seq": 8, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 339, "trace_id": "trace_13", "seq": 10, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 340, "trace_id": "trace_13", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 341, "trace_id": "trace_13", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 342, "trace_id": "trace_13", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 343, "trace_id": "trace_13", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 344, "trace_id": "trace_13", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 345, "trace_id": "trace_13", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 346, "trace_id": "trace_13", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 347, "trace_id": "trace_13", "seq": 28, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 348, "trace_id": "trace_13", "seq": 30, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 349, "trace_id": "trace_13", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 350, "trace_id": "trace_13", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 351, "trace_id": "trace_13", "seq": 36, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 352, "trace_id": "trace_13", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 353, "trace_id": "trace_13", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 354, "trace_id": "trace_14", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 355, "trace_id": "trace_14", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 356, "trace_id": "trace_14", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 357, "trace_id": "trace_14", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 358, "trace_id": "trace_14", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 359, "trace_id": "trace_14", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 360, "trace_id": "trace_14", "seq": 14, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 361, "trace_id": "trace_14", "seq": 16, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 362, "trace_id": "trace_14", "seq": 18, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 363, "trace_id": "trace_14", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 364, "trace_id": "trace_14", "seq": 22, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 365, "trace_id": "trace_14", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 366, "trace_id": "trace_14", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 367, "trace_id": "trace_14", "seq": 28, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 368, "trace_id": "trace_14", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 369, "trace_id": "trace_14", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 370, "trace_id": "trace_14", "seq": 34, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 371, "trace_id": "trace_14", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 372, "trace_id": "trace_14", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 373, "trace_id": "trace_14", "seq": 40, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 374, "trace_id": "trace_14", "seq": 42, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 375, "trace_id": "trace_14", "seq": 44, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 376, "trace_id": "trace_15", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 377, "trace_id": "trace_15", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 378, "trace_id": "trace_15", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 379, "trace_id": "trace_15", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 380, "trace_id": "trace_15", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 381, "trace_id": "trace_15", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 382, "trace_id": "trace_15", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 383, "trace_id": "trace_15", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 384, "trace_id": "trace_15", "seq": 18, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 385, "trace_id": "trace_15", "seq": 20, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 386, "trace_id": "trace_15", "seq": 22, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 387, "trace_id": "trace_15", "seq": 24, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 388, "trace_id": "trace_15", "seq": 26, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 389, "trace_id": "trace_15", "seq": 28, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 390, "trace_id": "trace_15", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 391, "trace_id": "trace_15", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 392, "trace_id": "trace_15", "seq": 34, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 393, "trace_id": "trace_15", "seq": 36, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 394, "trace_id": "trace_15", "seq": 38, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 395, "trace_id": "trace_15", "seq": 40, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 396, "trace_id": "trace_15", "seq": 42, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 397, "trace_id": "trace_15", "seq": 44, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 398, "trace_id": "trace_15", "seq": 46, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 399, "trace_id": "trace_15", "seq": 48, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 400, "trace_id": "trace_16", "seq": 0, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 401, "trace_id": "trace_16", "seq": 2, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 402, "trace_id": "trace_16", "seq": 4, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 403, "trace_id": "trace_16", "seq": 6, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 404, "trace_id": "trace_16", "seq": 8, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 405, "trace_id": "trace_16", "seq": 10, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 406, "trace_id": "trace_16", "seq": 12, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 407, "trace_id": "trace_16", "seq": 14, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 408, "trace_id": "trace_16", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 409, "trace_id": "trace_16", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 410, "trace_id": "trace_16", "seq": 20, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 411, "trace_id": "trace_16", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 412, "trace_id": "trace_16", "seq": 24, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 413, "trace_id": "trace_16", "seq": 26, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 414, "trace_id": "trace_16", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 415, "trace_id": "trace_16", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 416, "trace_id": "trace_16", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 417, "trace_id": "trace_16", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 418, "trace_id": "trace_16", "seq": 36, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 419, "trace_id": "trace_16", "seq": 38, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 420, "trace_id": "trace_16", "seq": 40, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 421, "trace_id": "trace_16", "seq": 44, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 422, "trace_id": "trace_16", "seq": 46, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 423, "trace_id": "trace_16", "seq": 48, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 424, "trace_id": "trace_16", "seq": 50, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 425, "trace_id": "trace_16", "seq": 52, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 426, "trace_id": "trace_16", "seq": 54, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 427, "trace_id": "trace_17", "seq": 0, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 428, "trace_id": "trace_17", "seq": 2, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 429, "trace_id": "trace_17", "seq": 4, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 430, "trace_id": "trace_17", "seq": 6, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 431, "trace_id": "trace_17", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 432, "trace_id": "trace_17", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 433, "trace_id": "trace_17", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 434, "trace_id": "trace_17", "seq": 14, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 435, "trace_id": "trace_17", "seq": 16, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 436, "trace_id": "trace_17", "seq": 18, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 437, "trace_id": "trace_17", "seq": 20, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 438, "trace_id": "trace_17", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 439, "trace_id": "trace_17", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 440, "trace_id": "trace_17", "seq": 28, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 441, "trace_id": "trace_17", "seq": 30, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 442, "trace_id": "trace_17", "seq": 32, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 443, "trace_id": "trace_17", "seq": 34, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 444, "trace_id": "trace_17", "seq": 36, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 445, "trace_id": "trace_17", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 446, "trace_id": "trace_17", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 447, "trace_id": "trace_17", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 448, "trace_id": "trace_17", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 449, "trace_id": "trace_17", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 450, "trace_id": "trace_17", "seq": 48, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 451, "trace_id": "trace_17", "seq": 50, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 452, "trace_id": "trace_17", "seq": 52, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 453, "trace_id": "trace_17", "seq": 54, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 454, "trace_id": "trace_17", "seq": 56, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 455, "trace_id": "trace_17", "seq": 58, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 456, "trace_id": "trace_17", "seq": 60, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 457, "trace_id": "trace_18", "seq": 0, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 458, "trace_id": "trace_18", "seq": 2, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 459, "trace_id": "trace_18", "seq": 4, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 460, "trace_id": "trace_18", "seq": 6, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 461, "trace_id": "trace_18", "seq": 8, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 462, "trace_id": "trace_18", "seq": 12, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 463, "trace_id": "trace_18", "seq": 14, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 464, "trace_id": "trace_18", "seq": 16, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 465, "trace_id": "trace_18", "seq": 18, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 466, "trace_id": "trace_18", "seq": 20, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 467, "trace_id": "trace_18", "seq": 22, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 468, "trace_id": "trace_18", "seq": 24, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 469, "trace_id": "trace_18", "seq": 26, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 470, "trace_id": "trace_18", "seq": 28, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 471, "trace_id": "trace_18", "seq": 30, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 472, "trace_id": "trace_18", "seq": 32, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 473, "trace_id": "trace_18", "seq": 34, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 474, "trace_id": "trace_18", "seq": 36, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 475, "trace_id": "trace_18", "seq": 38, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 476, "trace_id": "trace_18", "seq": 40, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 477, "trace_id": "trace_18", "seq": 42, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 478, "trace_id": "trace_18", "seq": 44, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 479, "trace_id": "trace_18", "seq": 46, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 480, "trace_id": "trace_18", "seq": 48, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 481, "trace_id": "trace_18", "seq": 50, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 482, "trace_id": "trace_18", "seq": 52, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 483, "trace_id": "trace_18", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 484, "trace_id": "trace_18", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 485, "trace_id": "trace_18", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 486, "trace_id": "trace_19", "seq": 0, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 487, "trace_id": "trace_19", "seq": 2, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 488, "trace_id": "trace_19", "seq": 4, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 489, "trace_id": "trace_19", "seq": 6, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 490, "trace_id": "trace_19", "seq": 8, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 491, "trace_id": "trace_19", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 492, "trace_id": "trace_19", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 493, "trace_id": "trace_19", "seq": 14, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 494, "trace_id": "trace_19", "seq": 16, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 495, "trace_id": "trace_19", "seq": 18, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 496, "trace_id": "trace_19", "seq": 22, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 497, "trace_id": "trace_19", "seq": 24, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 498, "trace_id": "trace_19", "seq": 26, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 499, "trace_id": "trace_19", "seq": 28, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 500, "trace_id": "trace_19", "seq": 30, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 501, "trace_id": "trace_19", "seq": 32, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 502, "trace_id": "trace_19", "seq": 34, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 503, "trace_id": "trace_19", "seq": 36, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 504, "trace_id": "trace_19", "seq": 38, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 505, "trace_id": "trace_19", "seq": 40, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 506, "trace_id": "trace_19", "seq": 42, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 507, "trace_id": "trace_19", "seq": 44, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 508, "trace_id": "trace_19", "seq": 46, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 509, "trace_id": "trace_19", "seq": 48, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 510, "trace_id": "trace_19", "seq": 50, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 511, "trace_id": "trace_19", "seq": 52, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 512, "trace_id": "trace_19", "seq": 54, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 513, "trace_id": "trace_19", "seq": 56, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 514, "trace_id": "trace_20", "seq": 0, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 515, "trace_id": "trace_20", "seq": 2, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 516, "trace_id": "trace_20", "seq": 4, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}} +{"window_id": 517, "trace_id": "trace_20", "seq": 8, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "acquiring"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 518, "trace_id": "trace_20", "seq": 10, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 519, "trace_id": "trace_20", "seq": 12, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 520, "trace_id": "trace_20", "seq": 14, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 521, "trace_id": "trace_20", "seq": 16, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 522, "trace_id": "trace_20", "seq": 18, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 523, "trace_id": "trace_20", "seq": 20, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 524, "trace_id": "trace_20", "seq": 22, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 525, "trace_id": "trace_20", "seq": 24, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 526, "trace_id": "trace_20", "seq": 26, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 527, "trace_id": "trace_20", "seq": 28, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 528, "trace_id": "trace_20", "seq": 30, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 529, "trace_id": "trace_20", "seq": 32, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 530, "trace_id": "trace_20", "seq": 34, "action": "TryAcquireBlocking", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}} +{"window_id": 531, "trace_id": "trace_20", "seq": 36, "action": "AcquireSuccess", "actor": "2", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "acquiring"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}} +{"window_id": 532, "trace_id": "trace_20", "seq": 38, "action": "Release", "actor": "2", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "idle", "2": "locked"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 533, "trace_id": "trace_20", "seq": 40, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 534, "trace_id": "trace_20", "seq": 42, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 535, "trace_id": "trace_20", "seq": 44, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 536, "trace_id": "trace_20", "seq": 46, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 537, "trace_id": "trace_20", "seq": 48, "action": "TryAcquireBlocking", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}} +{"window_id": 538, "trace_id": "trace_20", "seq": 50, "action": "AcquireSuccess", "actor": "1", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "acquiring", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}} +{"window_id": 539, "trace_id": "trace_20", "seq": 52, "action": "Release", "actor": "1", "pre_state": {"lockState": "locked", "pc": {"0": "idle", "1": "locked", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} +{"window_id": 540, "trace_id": "trace_20", "seq": 54, "action": "TryAcquireBlocking", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}} +{"window_id": 541, "trace_id": "trace_20", "seq": 56, "action": "AcquireSuccess", "actor": "0", "pre_state": {"lockState": "unlocked", "pc": {"0": "acquiring", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}} +{"window_id": 542, "trace_id": "trace_20", "seq": 58, "action": "Release", "actor": "0", "pre_state": {"lockState": "locked", "pc": {"0": "locked", "1": "idle", "2": "idle"}}, "post_state": {"lockState": "unlocked", "pc": {"0": "idle", "1": "idle", "2": "idle"}}} diff --git a/tla_eval/skills/tv-eval/examples/spin/legacy/windows_AcquireLock.ndjson b/tla_eval/skills/tv-eval/examples/spin/legacy/windows_AcquireLock.ndjson new file mode 100644 index 0000000..64484af --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/legacy/windows_AcquireLock.ndjson @@ -0,0 +1,210 @@ +{"id": 1, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 2, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 3, "trace_id": "trace_01", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 4, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 5, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 6, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 7, "trace_id": "trace_01", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 8, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 9, "trace_id": "trace_01", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 10, "trace_id": "trace_01", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 11, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 12, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 13, "trace_id": "trace_02", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 14, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 15, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 16, "trace_id": "trace_02", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 17, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 18, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 19, "trace_id": "trace_02", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 20, "trace_id": "trace_02", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 21, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 22, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 23, "trace_id": "trace_03", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 24, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 25, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 26, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 27, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 28, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 29, "trace_id": "trace_03", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 30, "trace_id": "trace_03", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 31, "trace_id": "trace_03", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 32, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 33, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 34, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 35, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 36, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 37, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 38, "trace_id": "trace_04", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 39, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 40, "trace_id": "trace_04", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 41, "trace_id": "trace_04", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 42, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 43, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 44, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 45, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 46, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 47, "trace_id": "trace_05", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 48, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 49, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 50, "trace_id": "trace_05", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 51, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 52, "trace_id": "trace_05", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 53, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 54, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 55, "trace_id": "trace_06", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 56, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 57, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 58, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 59, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 60, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 61, "trace_id": "trace_06", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 62, "trace_id": "trace_06", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 63, "trace_id": "trace_06", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 64, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 65, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 66, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 67, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 68, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 69, "trace_id": "trace_07", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 70, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 71, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 72, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 73, "trace_id": "trace_07", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 74, "trace_id": "trace_07", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 75, "trace_id": "trace_07", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 76, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 77, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 78, "trace_id": "trace_08", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 79, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 80, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 81, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 82, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 83, "trace_id": "trace_08", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 84, "trace_id": "trace_08", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 85, "trace_id": "trace_08", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 86, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 87, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 88, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 89, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 90, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 91, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 92, "trace_id": "trace_09", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 93, "trace_id": "trace_09", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 94, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 95, "trace_id": "trace_09", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 96, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 97, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 98, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 99, "trace_id": "trace_10", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 100, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 101, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 102, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 103, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 104, "trace_id": "trace_10", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 105, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 106, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 107, "trace_id": "trace_10", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 108, "trace_id": "trace_11", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 109, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 110, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 111, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 112, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 113, "trace_id": "trace_11", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 114, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 115, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 116, "trace_id": "trace_11", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 117, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 118, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 119, "trace_id": "trace_11", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 120, "trace_id": "trace_12", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 121, "trace_id": "trace_12", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 122, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 123, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 124, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 125, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 126, "trace_id": "trace_12", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 127, "trace_id": "trace_12", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 128, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 129, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 130, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 131, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 132, "trace_id": "trace_13", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 133, "trace_id": "trace_13", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 134, "trace_id": "trace_13", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 135, "trace_id": "trace_13", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 136, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 137, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 138, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 139, "trace_id": "trace_14", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 140, "trace_id": "trace_14", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 141, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 142, "trace_id": "trace_14", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 143, "trace_id": "trace_14", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 144, "trace_id": "trace_15", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 145, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 146, "trace_id": "trace_15", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 147, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 148, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 149, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 150, "trace_id": "trace_15", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 151, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 152, "trace_id": "trace_15", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 153, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 154, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 155, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 156, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 157, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 158, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 159, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 160, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 161, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 162, "trace_id": "trace_16", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 163, "trace_id": "trace_16", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 164, "trace_id": "trace_16", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 165, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 166, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 167, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 168, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 169, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 170, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 171, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 172, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 173, "trace_id": "trace_17", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 174, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 175, "trace_id": "trace_17", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 176, "trace_id": "trace_17", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 177, "trace_id": "trace_18", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 178, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 179, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 180, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 181, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 182, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 183, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 184, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 185, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 186, "trace_id": "trace_18", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 187, "trace_id": "trace_18", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 188, "trace_id": "trace_18", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 189, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 190, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 191, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 192, "trace_id": "trace_19", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 193, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 194, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 195, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 196, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 197, "trace_id": "trace_19", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 198, "trace_id": "trace_19", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 199, "trace_id": "trace_19", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} +{"id": 200, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 201, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 202, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 203, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 204, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 205, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 206, "trace_id": "trace_20", "actor": 3, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "trying"]}, "post": {"lockState": "locked", "pc": ["idle", "idle", "locked"]}} +{"id": 207, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 208, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 209, "trace_id": "trace_20", "actor": 2, "pre": {"lockState": "unlocked", "pc": ["idle", "trying", "idle"]}, "post": {"lockState": "locked", "pc": ["idle", "locked", "idle"]}} +{"id": 210, "trace_id": "trace_20", "actor": 1, "pre": {"lockState": "unlocked", "pc": ["trying", "idle", "idle"]}, "post": {"lockState": "locked", "pc": ["locked", "idle", "idle"]}} diff --git a/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.cfg b/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.cfg new file mode 100644 index 0000000..f8acacb --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.cfg @@ -0,0 +1,3 @@ +SPECIFICATION Spec +INVARIANT NeverPost +CONSTANTS Threads = {1, 2, 3} diff --git a/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.tla b/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.tla new file mode 100644 index 0000000..d7029dd --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/reference_spec/TV_Windows.tla @@ -0,0 +1,31 @@ +---- MODULE TV_Windows ---- +EXTENDS Naturals, FiniteSets, TLC, Json, IOUtils + +CONSTANTS Threads +VARIABLES lockState, pc, step +vars == <> +S == INSTANCE spin + +AllWindows == ndJsonDeserialize("action_windows.jsonl") +w == AllWindows[atoi(IOEnv.WINDOW_INDEX)] +actor == atoi(w.actor) + 1 +PC(s) == [t \in Threads |-> s.pc[ToString(t - 1)]] + +Init == + /\ lockState = w.pre_state.lockState + /\ pc = PC(w.pre_state) + /\ step = 0 + +Next == + /\ step = 0 + /\ CASE w.action \in {"TryAcquireBlocking", "TryAcquireNonBlocking"} -> S!TryAcquire(actor) + [] w.action = "AcquireSuccess" -> (S!AcquireLock(actor) \/ S!AcquireLockDirect(actor)) + [] w.action = "AcquireFail" -> S!AcquireFail(actor) + [] w.action = "Release" -> S!ReleaseLock(actor) + [] OTHER -> FALSE + /\ step' = 1 + +PostReached == step = 1 /\ lockState = w.post_state.lockState /\ pc = PC(w.post_state) +NeverPost == ~PostReached +Spec == Init /\ [][Next]_vars +==== diff --git a/tla_eval/skills/tv-eval/examples/spin/reference_spec/run_tv.py b/tla_eval/skills/tv-eval/examples/spin/reference_spec/run_tv.py new file mode 100644 index 0000000..4f41c1d --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/reference_spec/run_tv.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +"""Validate the spin example using the shared TLC runner.""" + +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +from validate import main + +if __name__ == "__main__": + sys.exit( + main( + Path(__file__).resolve().parent, + "TV_Windows", + Path(__file__).resolve().parent.parent / "action_windows.jsonl", + ) + ) diff --git a/tla_eval/skills/tv-eval/examples/spin/reference_spec/spin.tla b/tla_eval/skills/tv-eval/examples/spin/reference_spec/spin.tla index 6cb5cba..c40d898 100644 --- a/tla_eval/skills/tv-eval/examples/spin/reference_spec/spin.tla +++ b/tla_eval/skills/tv-eval/examples/spin/reference_spec/spin.tla @@ -15,27 +15,34 @@ Init == /\ lockState = "unlocked" /\ pc = [t \in Threads |-> "idle"] -\* Thread starts a blocking acquire attempt (lock is held, will spin) +\* A request starts before CAS, whether the lock is free or held. TryAcquire(t) == /\ pc[t] = "idle" - /\ lockState = "locked" /\ pc' = [pc EXCEPT ![t] = "acquiring"] /\ UNCHANGED lockState -\* Thread acquires lock after spinning (lock just became free) +\* A pending request successfully executes CAS. AcquireLock(t) == /\ pc[t] = "acquiring" /\ lockState = "unlocked" /\ lockState' = "locked" /\ pc' = [pc EXCEPT ![t] = "locked"] -\* Thread acquires lock immediately (no contention, lock is free) +\* Coarse legacy traces omitted the nonblocking request event. +\* Retained for that abstraction; not the task's full modeling contract. AcquireLockDirect(t) == /\ pc[t] = "idle" /\ lockState = "unlocked" /\ lockState' = "locked" /\ pc' = [pc EXCEPT ![t] = "locked"] +\* A nonblocking request fails while another thread holds the lock. +AcquireFail(t) == + /\ pc[t] = "acquiring" + /\ lockState = "locked" + /\ pc' = [pc EXCEPT ![t] = "idle"] + /\ UNCHANGED lockState + \* Thread releases lock ReleaseLock(t) == /\ pc[t] = "locked" @@ -47,6 +54,7 @@ Next == \/ TryAcquire(t) \/ AcquireLock(t) \/ AcquireLockDirect(t) + \/ AcquireFail(t) \/ ReleaseLock(t) Spec == Init /\ [][Next]_vars diff --git a/tla_eval/skills/tv-eval/examples/spin/traces/kernel-test.txt b/tla_eval/skills/tv-eval/examples/spin/traces/kernel-test.txt new file mode 100644 index 0000000..986def8 --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/traces/kernel-test.txt @@ -0,0 +1,18 @@ +=== SPIN_TV_BEGIN === +{"seq":0,"thread":0,"lock":0,"state":"unlocked","action":"TryAcquireBlocking","actor":0} +{"seq":1,"thread":0,"lock":0,"state":"locked","action":"AcquireSuccess","actor":0} +{"seq":2,"thread":1,"lock":0,"state":"locked","action":"TryAcquireNonBlocking","actor":1} +{"seq":3,"thread":1,"lock":0,"state":"locked","action":"AcquireFail","actor":1} +{"seq":4,"thread":0,"lock":0,"state":"unlocked","action":"Release","actor":0} +{"seq":5,"thread":1,"lock":0,"state":"unlocked","action":"TryAcquireNonBlocking","actor":1} +{"seq":6,"thread":1,"lock":0,"state":"locked","action":"AcquireSuccess","actor":1} +{"seq":7,"thread":1,"lock":0,"state":"unlocked","action":"Release","actor":1} +{"seq":8,"thread":2,"lock":0,"state":"unlocked","action":"TryAcquireBlocking","actor":2} +{"seq":9,"thread":2,"lock":0,"state":"locked","action":"AcquireSuccess","actor":2} +{"seq":10,"thread":2,"lock":0,"state":"unlocked","action":"Release","actor":2} +=== SPIN_TV_END === + ok + +test result: ok. 1 passed; 0 failed; 158 filtered out. + +[ktest runner] All crates tested. diff --git a/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json b/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json new file mode 100644 index 0000000..80bc8d2 --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json @@ -0,0 +1,11 @@ +{ + "source_repository": "https://github.com/asterinas/asterinas", + "source_commit": "d73f1016a1d0cfb7b1f2ea72d2e9dd67ced0e0fa", + "docker_image": "asterinas/asterinas:0.16.0-20250822@sha256:10d52ce84f72116ca2e41d6170f8882893592ccfc166d6b7d2262ccfeedacab2", + "patch": "data/patches/asterinas_tla_trace.patch", + "patch_sha256": "2b8527c65dbd851769877e4d5032cf72d48e0dc61e97ebaf1961dc8639e85d23", + "trace_sha256": "f07b9a8c826c4739aa9a33867d3a1895e060ada67adb430caf1540e87dde7ff3", + "test": "test_spin_tv_contract", + "capture_command": "bash scripts/harness/spin_tv/run.sh", + "scope": "Executed SpinTrace operations with three logical actors on one CPU; no synthetic events or blocking contention." +} diff --git a/tla_eval/skills/tv-eval/examples/spin/traces/trace_01.jsonl b/tla_eval/skills/tv-eval/examples/spin/traces/trace_01.jsonl new file mode 100644 index 0000000..b47f531 --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/traces/trace_01.jsonl @@ -0,0 +1,11 @@ +{"seq": 0, "thread": 0, "lock": 0, "state": "unlocked", "action": "TryAcquireBlocking", "actor": 0} +{"seq": 1, "thread": 0, "lock": 0, "state": "locked", "action": "AcquireSuccess", "actor": 0} +{"seq": 2, "thread": 1, "lock": 0, "state": "locked", "action": "TryAcquireNonBlocking", "actor": 1} +{"seq": 3, "thread": 1, "lock": 0, "state": "locked", "action": "AcquireFail", "actor": 1} +{"seq": 4, "thread": 0, "lock": 0, "state": "unlocked", "action": "Release", "actor": 0} +{"seq": 5, "thread": 1, "lock": 0, "state": "unlocked", "action": "TryAcquireNonBlocking", "actor": 1} +{"seq": 6, "thread": 1, "lock": 0, "state": "locked", "action": "AcquireSuccess", "actor": 1} +{"seq": 7, "thread": 1, "lock": 0, "state": "unlocked", "action": "Release", "actor": 1} +{"seq": 8, "thread": 2, "lock": 0, "state": "unlocked", "action": "TryAcquireBlocking", "actor": 2} +{"seq": 9, "thread": 2, "lock": 0, "state": "locked", "action": "AcquireSuccess", "actor": 2} +{"seq": 10, "thread": 2, "lock": 0, "state": "unlocked", "action": "Release", "actor": 2} diff --git a/tla_eval/skills/tv-eval/examples/spin/validate.py b/tla_eval/skills/tv-eval/examples/spin/validate.py new file mode 100644 index 0000000..a355b53 --- /dev/null +++ b/tla_eval/skills/tv-eval/examples/spin/validate.py @@ -0,0 +1,90 @@ +"""Run the spin examples without modifying their checked-in specifications/data.""" + +import argparse +import json +import shutil +import sys +import tempfile +from pathlib import Path + +PROJECT_ROOT = Path(__file__).resolve().parents[5] +sys.path.insert(0, str(PROJECT_ROOT)) + +from tla_eval.tv_tools.runner import run_tv_batch, summarize + + +def main(spec_dir, module, default_windows): + windows_name = default_windows.name + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--windows", type=Path, default=default_windows) + parser.add_argument( + "--tla-jar", type=Path, default=PROJECT_ROOT / "lib/tla2tools.jar" + ) + parser.add_argument( + "--community-jar", + type=Path, + default=PROJECT_ROOT / "lib/CommunityModules-deps.jar", + ) + parser.add_argument("--workers", type=int, default=8) + parser.add_argument("--timeout", type=int, default=30) + parser.add_argument("--report", type=Path, help="Write per-window results as JSON") + args = parser.parse_args() + if args.workers < 1 or args.timeout < 1: + parser.error("--workers and --timeout must be positive") + if not shutil.which("java"): + parser.error("Java is required; install Java 11 or newer") + for jar in (args.tla_jar, args.community_jar): + if not jar.is_file() or jar.stat().st_size == 0: + parser.error( + f"Missing tool: {jar}. Run sysmobench-setup or specify both jar paths." + ) + try: + windows = [ + json.loads(line) + for line in args.windows.read_text().splitlines() + if line.strip() + ] + if not windows or not all(isinstance(w, dict) for w in windows): + raise ValueError("expected a nonempty NDJSON window file") + except (OSError, ValueError) as exc: + parser.error(str(exc)) + + # TLC may write generated files beside the module; keep the checkout clean. + with tempfile.TemporaryDirectory(prefix="spin-tv-") as tmp: + work_dir = Path(tmp) + for pattern in ("*.tla", "*.cfg"): + for source in spec_dir.glob(pattern): + shutil.copy2(source, work_dir / source.name) + (work_dir / windows_name).write_text( + "".join(json.dumps(w) + "\n" for w in windows) + ) + results = run_tv_batch( + len(windows), + f"{module}.tla", + f"{module}.cfg", + str(work_dir), + workers=args.workers, + timeout=args.timeout, + tla_jar=str(args.tla_jar.resolve()), + community_jar=str(args.community_jar.resolve()), + ) + stats = summarize(results) + print(json.dumps(stats, indent=2)) + if args.report: + args.report.write_text( + json.dumps( + { + "summary": stats, + "windows": [vars(r) for _, r in sorted(results.items())], + }, + indent=2, + ) + + "\n" + ) + if stats["errored"] or stats["timeout"]: + print( + "TLC errors/timeouts are infrastructure failures, not model mismatches.", + file=sys.stderr, + ) + return 2 + return 1 if stats["failed"] else 0 diff --git a/tla_eval/skills/tv-eval/guide.md b/tla_eval/skills/tv-eval/guide.md index 9c73ba4..748447f 100644 --- a/tla_eval/skills/tv-eval/guide.md +++ b/tla_eval/skills/tv-eval/guide.md @@ -268,7 +268,7 @@ The audit section of `audit.md` should contain the full reasoning and TLC transc | Symptom | Likely cause | Fix | |---|---|---| | 0% on an action | Trace granularity coarser than spec's | Re-check Step 0; trace is likely non-compliant | -| Middle score with clear pre-state pattern | Subset of traces non-compliant | Exclude non-compliant windows, re-score | +| Middle score with clear pre-state pattern | Subset of traces non-compliant | Classify at Step 0; repair and recapture instrumentation defects | | Random-looking failures | Real spec quality issue | Dump TLC counterexample, examine actual vs expected | | TLC timeouts | Aux variable defaults wrong / domain explosion | Tighten aux defaults per action precondition | | Parse/compile errors | TV module syntax | Check INSTANCE usage, imports, cfg constants | diff --git a/tla_eval/skills/tv-eval/references/score_interpretation.md b/tla_eval/skills/tv-eval/references/score_interpretation.md index a9c7d0e..67549c3 100644 --- a/tla_eval/skills/tv-eval/references/score_interpretation.md +++ b/tla_eval/skills/tv-eval/references/score_interpretation.md @@ -66,7 +66,7 @@ Diagnostic procedure: **Known pattern from spin prototype**: 123/210 pass on AcquireLock. All 123 pass had `pc[actor] = "trying"` in pre. All 87 fail had `pc[actor] = "idle"`. Reason: trace skipped the intermediate `trying` state in no-contention paths. Trace non-compliant in some windows. -Fix: filter out the non-compliant windows at Step 0 (per-window contract check), OR report the split clearly. +Fix: classify this as an instrumentation defect at Step 0, repair the missing request event, and recapture the traces. Do not filter the failing windows or score the incomplete trace set. The spin example preserves the old windows under `legacy/` for diagnosis; its default data comes from a separate, documented kernel capture. ### Random failures (no pattern) From 9d67861cd0621c69e2e9e622252fa63cfa232fd9 Mon Sep 17 00:00:00 2001 From: Qian-Cheng-nju Date: Sun, 11 Oct 2026 06:08:16 +0000 Subject: [PATCH 2/4] Allow full spin validation batches to finish in CI --- tests/test_tv_examples/test_spin.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/test_tv_examples/test_spin.py b/tests/test_tv_examples/test_spin.py index bef68dd..4d6668e 100644 --- a/tests/test_tv_examples/test_spin.py +++ b/tests/test_tv_examples/test_spin.py @@ -169,10 +169,15 @@ def run_validator(tmp_path, spec, source): str(source), "--report", str(report), + "--workers", + "2", ], capture_output=True, text=True, - timeout=180, + # The historical reference fixture starts 543 JVMs. Allow the whole + # batch to finish on hosted runners; each window still has its own + # 30-second TLC timeout. Limit concurrency to avoid CPU oversubscription. + timeout=600, env={**os.environ, "JAVA_TOOL_OPTIONS": "-XX:ActiveProcessorCount=2 -Xmx256m"}, ) assert report.exists(), result.stdout + result.stderr From a841ead5392be0f7b49d57e514578253a9ae7119 Mon Sep 17 00:00:00 2001 From: Qian-Cheng-nju Date: Sun, 11 Oct 2026 06:12:39 +0000 Subject: [PATCH 3/4] Keep spin fix focused on code and regression data --- .../skills/tv-eval/examples/spin/README.md | 90 ------------------- tla_eval/skills/tv-eval/guide.md | 2 +- .../references/score_interpretation.md | 2 +- 3 files changed, 2 insertions(+), 92 deletions(-) delete mode 100644 tla_eval/skills/tv-eval/examples/spin/README.md diff --git a/tla_eval/skills/tv-eval/examples/spin/README.md b/tla_eval/skills/tv-eval/examples/spin/README.md deleted file mode 100644 index 6c456bc..0000000 --- a/tla_eval/skills/tv-eval/examples/spin/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# Spin transition-validation example - -Each window checks **one specification action** from its recorded pre-state to -its recorded post-state. The spin task requires a request step (`idle → trying`) -before acquisition, including a successful nonblocking `try_lock()`. - -The default example uses a small Asterinas kernel capture. It exercises blocking -acquisition, successful nonblocking acquisition, nonblocking failure while another -actor holds the lock, and release. The three actors execute on one CPU; this is -not a concurrent stress test and does not exercise the blocking spin loop. - -## Run - -From the repository root, install the package and tools as described in the root -README (`pip install -e .`, then `sysmobench-setup`). Both TLC and CommunityModules -are required for this example. - -```sh -EXAMPLE=tla_eval/skills/tv-eval/examples/spin -python "$EXAMPLE/ai_spec_1/run_tv.py" -python "$EXAMPLE/reference_spec/run_tv.py" -``` - -Expected results: - -| Specification | Windows | Result | -|---|---|---| -| `ai_spec_1` | Three successful acquisitions | 3/3 pass | -| `reference_spec` | All captured request, acquisition, failure and release events | 11/11 pass | - -The candidate `ai_spec_1/spin.tla` is unchanged. The reference is a **coarse -example abstraction**, not a complete implementation of the task's blocking / -nonblocking / spinning contract. In particular, it retains `AcquireLockDirect` -for examining the historical coarse windows. - -Use `--tla-jar PATH --community-jar PATH` for tools installed elsewhere. -`--report PATH` writes per-window outcomes. Runner exit status is 0 when all -windows pass, 1 for a model mismatch, and 2 for setup errors, TLC errors or timeouts. -Internally, TLC exit 12 means the `NeverPost` invariant was violated: a matching -post-state exists. TLC exit 0 means the window did not match. - -## Rebuild the windows - -```sh -python "$EXAMPLE/generate_windows.py" --traces-dir "$EXAMPLE/traces" -python "$EXAMPLE/ai_spec_1/make_windows.py" -``` - -`traces/trace_01.jsonl` contains the captured events, `kernel-test.txt` contains -the kernel test output, and `manifest.json` records the source commit, container -image and checksums. The generator rejects missing request events, unknown -actions, invalid ownership and inconsistent state observations. It never inserts -missing transitions or silently filters bad events. Its default input location -for newly collected task traces is `/data/sys_traces/spin`. - -## Capture again from Asterinas - -Requires Git, Docker, Python and network access for the pinned source and build -dependencies: - -```sh -bash scripts/harness/spin_tv/run.sh -python "$EXAMPLE/generate_windows.py" --traces-dir "$EXAMPLE/traces" -python "$EXAMPLE/ai_spec_1/make_windows.py" -``` - -The script creates a separate source/build directory under `artifacts/`, applies -`data/patches/asterinas_tla_trace.patch`, and runs `test_spin_tv_contract` under -QEMU TCG. It records executed operations on the instrumented `SpinTrace`; this -test emits no hand-written contention events. An optional first argument selects -another output directory. Build logs remain in the printed capture workspace. - -## Historical incomplete traces - -`legacy/` retains the original window files byte-for-byte. They contain 87 -acquisitions with `idle` pre-states because the old nonblocking instrumentation -omitted its request event. They are a diagnostic fixture, **not valid input for -benchmark scoring**. - -```sh -python "$EXAMPLE/ai_spec_1/run_tv.py" --windows "$EXAMPLE/legacy/windows_AcquireLock.ndjson" -# Expected: 123 pass, 87 fail; runner exit 1. -python "$EXAMPLE/reference_spec/run_tv.py" --windows "$EXAMPLE/legacy/action_windows.jsonl" -# Expected: 543/543 pass with the coarse reference abstraction. -``` - -The reference previously rejected 104 requests made while the lock was free. -Starting a request does not require a held lock; its `TryAcquire` guard now -reflects that. Passing the coarse reference does not repair missing events or -establish compliance with the finer task contract. diff --git a/tla_eval/skills/tv-eval/guide.md b/tla_eval/skills/tv-eval/guide.md index 748447f..9c73ba4 100644 --- a/tla_eval/skills/tv-eval/guide.md +++ b/tla_eval/skills/tv-eval/guide.md @@ -268,7 +268,7 @@ The audit section of `audit.md` should contain the full reasoning and TLC transc | Symptom | Likely cause | Fix | |---|---|---| | 0% on an action | Trace granularity coarser than spec's | Re-check Step 0; trace is likely non-compliant | -| Middle score with clear pre-state pattern | Subset of traces non-compliant | Classify at Step 0; repair and recapture instrumentation defects | +| Middle score with clear pre-state pattern | Subset of traces non-compliant | Exclude non-compliant windows, re-score | | Random-looking failures | Real spec quality issue | Dump TLC counterexample, examine actual vs expected | | TLC timeouts | Aux variable defaults wrong / domain explosion | Tighten aux defaults per action precondition | | Parse/compile errors | TV module syntax | Check INSTANCE usage, imports, cfg constants | diff --git a/tla_eval/skills/tv-eval/references/score_interpretation.md b/tla_eval/skills/tv-eval/references/score_interpretation.md index 67549c3..a9c7d0e 100644 --- a/tla_eval/skills/tv-eval/references/score_interpretation.md +++ b/tla_eval/skills/tv-eval/references/score_interpretation.md @@ -66,7 +66,7 @@ Diagnostic procedure: **Known pattern from spin prototype**: 123/210 pass on AcquireLock. All 123 pass had `pc[actor] = "trying"` in pre. All 87 fail had `pc[actor] = "idle"`. Reason: trace skipped the intermediate `trying` state in no-contention paths. Trace non-compliant in some windows. -Fix: classify this as an instrumentation defect at Step 0, repair the missing request event, and recapture the traces. Do not filter the failing windows or score the incomplete trace set. The spin example preserves the old windows under `legacy/` for diagnosis; its default data comes from a separate, documented kernel capture. +Fix: filter out the non-compliant windows at Step 0 (per-window contract check), OR report the split clearly. ### Random failures (no pattern) From 58034fe0cec4cb461ccdd07975f7a9997f976b78 Mon Sep 17 00:00:00 2001 From: Qian-Cheng-nju Date: Sun, 11 Oct 2026 08:49:02 +0000 Subject: [PATCH 4/4] Fix spin trace ordering and reject sequence gaps --- data/patches/asterinas_tla_trace.patch | 8 +- tests/test_tv_examples/spin_contention.rs | 72 ++++++++ tests/test_tv_examples/test_spin.py | 168 +++++++++++++++++- .../tv-eval/examples/spin/generate_windows.py | 18 +- .../examples/spin/traces/manifest.json | 2 +- 5 files changed, 258 insertions(+), 10 deletions(-) create mode 100644 tests/test_tv_examples/spin_contention.rs diff --git a/data/patches/asterinas_tla_trace.patch b/data/patches/asterinas_tla_trace.patch index eb42205..6ee148d 100644 --- a/data/patches/asterinas_tla_trace.patch +++ b/data/patches/asterinas_tla_trace.patch @@ -2076,13 +2076,13 @@ index 0000000..0106a41 + core::hint::spin_loop(); + } + ++ // Record successful lock acquisition (after execution) ++ trace_event("AcquireSuccess", lock_addr, thread_id, true); ++ + if spinning { -+ // Record end of spinning (if we did spin) ++ // The lock is already held; this event does not change its state. + trace_event("StopSpinning", lock_addr, thread_id, true); + } -+ -+ // Record successful lock acquisition (after execution) -+ trace_event("AcquireSuccess", lock_addr, thread_id, true); + } + + fn try_acquire_lock_internal(&self) -> bool { diff --git a/tests/test_tv_examples/spin_contention.rs b/tests/test_tv_examples/spin_contention.rs new file mode 100644 index 0000000..441c2db --- /dev/null +++ b/tests/test_tv_examples/spin_contention.rs @@ -0,0 +1,72 @@ +// Execute the patched acquisition/release methods with a deterministic CAS race. +use std::sync::atomic::{AtomicBool, AtomicU64, Ordering}; +use std::sync::{Arc, Barrier}; + +static FAILED_CAS: Barrier = Barrier::new(2); +static RESUME_WAITER: Barrier = Barrier::new(2); +static SEQUENCE: AtomicU64 = AtomicU64::new(0); + +struct ObservedLock(AtomicBool); + +impl ObservedLock { + fn compare_exchange( + &self, + current: bool, + new: bool, + success: Ordering, + failure: Ordering, + ) -> Result { + let result = self.0.compare_exchange(current, new, success, failure); + if result.is_err() { + // Pause immediately after the failed atomic operation so the holder + // can release and finish logging before the waiter retries. + FAILED_CAS.wait(); + RESUME_WAITER.wait(); + } + result + } + + fn store(&self, value: bool, order: Ordering) { + self.0.store(value, order); + } +} + +struct SpinLockInner { + lock: ObservedLock, +} + +struct SpinTrace { + inner: SpinLockInner, +} + +impl SpinTrace { + // SPIN_TRACE_METHODS +} + +fn trace_event(action: &str, _address: usize, actor: usize, held: bool) { + let seq = SEQUENCE.fetch_add(1, Ordering::Relaxed); + let state = if held { "locked" } else { "unlocked" }; + println!( + "{{\"seq\":{seq},\"action\":\"{action}\",\"actor\":{actor},\"state\":\"{state}\",\"lock\":0}}" + ); +} + +fn main() { + let lock = Arc::new(SpinTrace { + inner: SpinLockInner { + lock: ObservedLock(AtomicBool::new(false)), + }, + }); + trace_event("TryAcquireBlocking", 0, 0, false); + lock.acquire_lock_with_id(0); + let waiter_lock = Arc::clone(&lock); + let waiter = std::thread::spawn(move || { + trace_event("TryAcquireBlocking", 0, 1, true); + waiter_lock.acquire_lock_with_id(1); + waiter_lock.release_lock(1); + }); + FAILED_CAS.wait(); + lock.release_lock(0); + RESUME_WAITER.wait(); + waiter.join().unwrap(); +} diff --git a/tests/test_tv_examples/test_spin.py b/tests/test_tv_examples/test_spin.py index 4d6668e..4e6496c 100644 --- a/tests/test_tv_examples/test_spin.py +++ b/tests/test_tv_examples/test_spin.py @@ -68,6 +68,140 @@ def test_failed_try_lock_preserves_holder_and_allows_retry(): assert result[-1]["post_state"]["pc"]["1"] == "locked" +def blocking_contention_events(): + return [ + event(0, "TryAcquireBlocking"), + event(1, "AcquireSuccess", state="locked"), + event(2, "TryAcquireBlocking", actor=1, state="locked"), + event(3, "Release"), + event(4, "AcquireSuccess", actor=1, state="locked"), + event(5, "StopSpinning", actor=1, state="locked"), + event(6, "Release", actor=1), + ] + + +def test_blocking_contention_records_one_acquisition_after_release(): + result = windows.generate_windows_from_trace( + "contention", blocking_contention_events() + ) + assert len(result) == 6 + acquisition = result[4] + assert acquisition["action"] == "AcquireSuccess" + assert acquisition["pre_state"] == { + "lockState": "unlocked", + "pc": {"0": "idle", "1": "acquiring", "2": "idle"}, + } + assert acquisition["post_state"] == { + "lockState": "locked", + "pc": {"0": "idle", "1": "locked", "2": "idle"}, + } + assert result[-1]["post_state"] == windows.initial_state() + + +@pytest.fixture(scope="module") +def executed_contention_events(tmp_path_factory): + if not shutil.which("rustc"): + pytest.skip("rustc is required to execute the patched spin methods") + patch = (ROOT / "data/patches/asterinas_tla_trace.patch").read_text() + section = patch.split( + "diff --git a/ostd/src/sync/spin_trace.rs b/ostd/src/sync/spin_trace.rs\n", 1 + )[1].split("\ndiff --git ", 1)[0] + source = "\n".join( + line[1:] + for line in section.splitlines() + if line.startswith("+") and not line.startswith("+++") + ) + methods = [] + for name in ("acquire_lock_with_id", "try_acquire_lock_internal", "release_lock"): + start = source.index(f" fn {name}(") + end = source.index("\n }", start) + len("\n }") + methods.append(source[start:end]) + template = Path(__file__).with_name("spin_contention.rs").read_text() + work = tmp_path_factory.mktemp("spin-contention") + native_source = work / "main.rs" + native_source.write_text( + template.replace("// SPIN_TRACE_METHODS", "\n".join(methods)) + ) + binary = work / "spin-contention" + subprocess.run( + ["rustc", "--edition=2021", str(native_source), "-o", str(binary)], + check=True, + capture_output=True, + text=True, + timeout=30, + ) + result = subprocess.run( + [str(binary)], check=True, capture_output=True, text=True, timeout=10 + ) + return [json.loads(line) for line in result.stdout.splitlines()] + + +def test_executed_contention_matches_windows(executed_contention_events): + generated = windows.generate_windows_from_trace( + "native", executed_contention_events + ) + expected = windows.generate_windows_from_trace( + "native", blocking_contention_events() + ) + assert generated == expected + + +@pytest.mark.parametrize("mutation", ["unlocked", "nonblocking", "wrong_actor"]) +def test_invalid_stop_spinning_is_rejected(mutation): + events = blocking_contention_events() + if mutation == "unlocked": + events[5]["state"] = "unlocked" + elif mutation == "nonblocking": + events[2]["action"] = "TryAcquireNonBlocking" + else: + events[5]["actor"] = 2 + with pytest.raises(ValueError): + windows.generate_windows_from_trace("invalid-contention", events) + + +@pytest.mark.parametrize("missing", [{5, 6, 7}, set(range(5))]) +def test_incomplete_sequence_is_rejected_before_overwriting_output(tmp_path, missing): + events = read_windows(EXAMPLE / "traces/trace_01.jsonl") + events = [e for e in events if e["seq"] not in missing] + (tmp_path / "trace_01.jsonl").write_text( + "".join(json.dumps(e) + "\n" for e in events) + ) + output = tmp_path / "windows.jsonl" + output.write_text("keep existing results\n") + result = subprocess.run( + [ + sys.executable, + str(EXAMPLE / "generate_windows.py"), + "--traces-dir", + str(tmp_path), + "--output", + str(output), + ], + capture_output=True, + text=True, + timeout=10, + ) + assert result.returncode == 2 + assert "sequence numbers" in result.stderr + assert output.read_text() == "keep existing results\n" + + +def test_legacy_mode_preserves_coarse_spin_markers_and_sequence_gaps(): + events = [ + event(0, "AcquireSuccess", state="locked"), + event(2, "TryAcquireBlocking", actor=1, state="locked"), + event(3, "StopSpinning", actor=1, state="locked"), + event(4, "Release"), + event(5, "AcquireSuccess", actor=1, state="locked"), + event(6, "Release", actor=1), + ] + result = windows.generate_windows_from_trace( + "legacy", events, allow_legacy_direct_acquire=True + ) + assert len(result) == 5 + assert result[-1]["post_state"] == windows.initial_state() + + @pytest.mark.parametrize( "events, message", [ @@ -77,7 +211,7 @@ def test_failed_try_lock_preserves_holder_and_allows_retry(): ([event(0, "Release")], "owning actor"), ( [event(0, "TryAcquireBlocking"), event(1, "StopSpinning", state="locked")], - "state mismatch", + "held blocking acquisition", ), ( [ @@ -184,6 +318,38 @@ def run_validator(tmp_path, spec, source): return result.returncode, json.loads(report.read_text()) +@requires_tlc +@pytest.mark.parametrize("spec, count", [("reference_spec", 6), ("ai_spec_1", 2)]) +def test_tlc_executed_blocking_contention( + tmp_path, executed_contention_events, spec, count +): + generated = windows.generate_windows_from_trace( + "native", executed_contention_events + ) + source = tmp_path / "windows.jsonl" + source.write_text("".join(json.dumps(w) + "\n" for w in generated)) + if spec == "ai_spec_1": + converted = tmp_path / "acquire.ndjson" + subprocess.run( + [ + sys.executable, + str(EXAMPLE / "ai_spec_1/make_windows.py"), + "--source", + str(source), + "--output", + str(converted), + ], + check=True, + capture_output=True, + text=True, + timeout=10, + ) + source = converted + code, report = run_validator(tmp_path, spec, source) + assert code == 0 + assert report["summary"]["total"] == report["summary"]["passed"] == count + + @requires_tlc @pytest.mark.parametrize( "spec,path,passed,failed", diff --git a/tla_eval/skills/tv-eval/examples/spin/generate_windows.py b/tla_eval/skills/tv-eval/examples/spin/generate_windows.py index 321050c..08e85ea 100644 --- a/tla_eval/skills/tv-eval/examples/spin/generate_windows.py +++ b/tla_eval/skills/tv-eval/examples/spin/generate_windows.py @@ -40,6 +40,7 @@ def generate_windows_from_trace(trace_id, events, *, allow_legacy_direct_acquire The legacy switch only reproduces the archived coarse example; it does not make missing request events compliant with the task's single-step contract. + It also permits gaps and the old pre-acquisition StopSpinning marker. """ windows = [] state = initial_state() @@ -54,6 +55,8 @@ def generate_windows_from_trace(trace_id, events, *, allow_legacy_direct_acquire raise ValueError(f"unknown actor {actor}") if type(seq) is not int or seq <= previous_seq: raise ValueError("sequence numbers must increase within a trace") + if not allow_legacy_direct_acquire and seq != previous_seq + 1: + raise ValueError("sequence numbers must start at 0 and be contiguous") previous_seq = seq if observed not in ("locked", "unlocked"): raise ValueError("state must be locked or unlocked") @@ -80,7 +83,7 @@ def generate_windows_from_trace(trace_id, events, *, allow_legacy_direct_acquire ) post["lockState"] = "locked" post["pc"][actor] = "locked" - requests.pop(actor, None) + # Keep the request kind until release to check StopSpinning. elif action == "AcquireFail": if ( pc != "acquiring" @@ -97,9 +100,16 @@ def generate_windows_from_trace(trace_id, events, *, allow_legacy_direct_acquire raise ValueError("release requires the owning actor") post["lockState"] = "unlocked" post["pc"][actor] = "idle" + requests.pop(actor, None) elif action == "StopSpinning": - if pc != "acquiring" or requests.get(actor) != "TryAcquireBlocking": - raise ValueError("StopSpinning requires a pending blocking request") + # CAS and AcquireSuccess precede this diagnostic event. + valid_pc = pc == "locked" or ( + allow_legacy_direct_acquire and pc == "acquiring" + ) + if not valid_pc or requests.get(actor) != "TryAcquireBlocking": + raise ValueError( + "StopSpinning requires a held blocking acquisition" + ) else: raise ValueError(f"unknown action {action!r}") # Check even no-op events, before deciding whether to emit a window. @@ -132,7 +142,7 @@ def main(): parser.add_argument( "--allow-legacy-direct-acquire", action="store_true", - help="Reproduce historical coarse windows; not valid benchmark input", + help="Allow legacy direct acquisitions, sequence gaps and spin markers; not valid benchmark input", ) args = parser.parse_args() files = sorted(args.traces_dir.glob("trace_*.jsonl")) diff --git a/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json b/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json index 80bc8d2..caac634 100644 --- a/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json +++ b/tla_eval/skills/tv-eval/examples/spin/traces/manifest.json @@ -3,7 +3,7 @@ "source_commit": "d73f1016a1d0cfb7b1f2ea72d2e9dd67ced0e0fa", "docker_image": "asterinas/asterinas:0.16.0-20250822@sha256:10d52ce84f72116ca2e41d6170f8882893592ccfc166d6b7d2262ccfeedacab2", "patch": "data/patches/asterinas_tla_trace.patch", - "patch_sha256": "2b8527c65dbd851769877e4d5032cf72d48e0dc61e97ebaf1961dc8639e85d23", + "patch_sha256": "8dd4ca8885d1d04670e9fe81bd73a694e80e42184d1ea77e7099a85ae5ce1542", "trace_sha256": "f07b9a8c826c4739aa9a33867d3a1895e060ada67adb430caf1540e87dde7ff3", "test": "test_spin_tv_contract", "capture_command": "bash scripts/harness/spin_tv/run.sh",