open-standards/wai/live-conformance/links/vectors.json
Transaction Science 57e426c940 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1
The contribution link record and the live-recording clip record both began WCL1. The clip
record had it first (live-recording §5.1, the registry's only WCL1 row); the link record took
the same four bytes when it was added, so a reader that tells records apart by their magic
could not tell one from the other.

The link record is now WLK1, a magic nothing else in the registry, the code or an open branch
uses. live-contribution §6.2 and SPEC name it, §6.5 step 2 says the clip record's WCL1 is
refused as malformed, and codecs/registry.rs registers it (REGISTRY.md and registry/ exported
from it). joule-moq-ingest writes and reads it. The corpus live-conformance/links/ is
regenerated with it, its files now .wlk1, plus clip_record_magic, a part with the clip
record's magic, refused. live_contribution_verify.py reads WLK1 and also refuses each accepted
part mutated to WCL1.

A wire change: a link record written before this one is malformed to a reader of this
revision. The CHANGELOG says so and acknowledges every corpus file that changed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 05:19:53 -05:00

1114 lines
27 KiB
JSON

{
"format": "wai-live-contribution-links/1",
"hop": "ed6a47a39da869b5446155e40b2d93f1e3f0167be26732bae7a3ef9d8e3a3fd3",
"hop_seed": "5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c",
"reasons": [
"record_too_large",
"truncated",
"malformed",
"unknown_version",
"bad_key",
"bad_signature",
"link_invalid",
"account_invalid",
"runs_invalid",
"chain_broken",
"sequence_gap"
],
"vectors": [
{
"digest": "a5d6c2b598610a96191a37dd049fa1f1b774142a4f57b86d5b787f4fd135d465",
"files": [
"srt_listener_clean.wlk1"
],
"kind": "part",
"name": "srt_listener_clean",
"note": "SRT, the gateway listening, AES-128: every packet at the first try",
"outcome": "accept",
"summary": {
"bytes": 52640,
"cipher": 128,
"delivered": 40,
"dropped": 0,
"ended": 0,
"first_try": 40,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 0,
"runs": 0,
"seq_count": 40,
"seq_first": 42,
"size": 575
}
},
{
"digest": "a8f1966aed84ab2153c5d0a7dd3f1fdfbabe08847d7c30674b39473c1282f7df",
"files": [
"srt_recovered.wlk1"
],
"kind": "part",
"name": "srt_recovered",
"note": "SRT: losses found and recovered within the window, one dropped",
"outcome": "accept",
"summary": {
"bytes": 40796,
"cipher": 128,
"delivered": 31,
"dropped": 1,
"ended": 0,
"first_try": 25,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 6,
"runs": 4,
"seq_count": 32,
"seq_first": 1000000,
"size": 655
}
},
{
"digest": "0a8cfad3a410a2071d36ada160872eb18ca648d05e5cf2cafdb0d7a613c91ca9",
"files": [
"srt_last_outstanding.wlk1"
],
"kind": "part",
"name": "srt_last_outstanding",
"note": "a session of one part, its last: three sequence numbers outstanding when the caller shut down",
"outcome": "accept",
"summary": {
"bytes": 9212,
"cipher": 0,
"delivered": 7,
"dropped": 0,
"ended": 1,
"first_try": 6,
"last": true,
"mode": 1,
"outstanding": 3,
"part": 0,
"protocol": 1,
"recovered": 1,
"runs": 3,
"seq_count": 10,
"seq_first": 7,
"size": 635
}
},
{
"digest": "08781b0991e605e199019c84ea0f0b5c54c7b4dc38e47a20c0246b43f561d1c1",
"files": [
"rist_simple.wlk1"
],
"kind": "part",
"name": "rist_simple",
"note": "RIST Simple Profile, in the clear (the profile has no encryption)",
"outcome": "accept",
"summary": {
"bytes": 19740,
"cipher": 0,
"delivered": 15,
"dropped": 1,
"ended": 0,
"first_try": 11,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 2,
"recovered": 4,
"runs": 2,
"seq_count": 16,
"seq_first": 65536,
"size": 615
}
},
{
"digest": "39d08881c7b2eda1a17023a713bb83a78b65a183172386098ce5dd4301da3d68",
"files": [
"rist_main_psk256.wlk1"
],
"kind": "part",
"name": "rist_main_psk256",
"note": "RIST Main Profile under PSK with a 256-bit key",
"outcome": "accept",
"summary": {
"bytes": 13160,
"cipher": 256,
"delivered": 10,
"dropped": 0,
"ended": 0,
"first_try": 8,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 3,
"recovered": 2,
"runs": 2,
"seq_count": 10,
"seq_first": 70000,
"size": 615
}
},
{
"digest": "21e4a0b1ef6f31e4f2be3472370a3314e15741271eb85d793de30696ed3efb42",
"files": [
"srt_caller_aes192.wlk1"
],
"kind": "part",
"name": "srt_caller_aes192",
"note": "SRT, the gateway calling the publisher's listener, AES-192",
"outcome": "accept",
"summary": {
"bytes": 13160,
"cipher": 192,
"delivered": 10,
"dropped": 0,
"ended": 0,
"first_try": 9,
"last": false,
"mode": 2,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 1,
"runs": 1,
"seq_count": 10,
"seq_first": 9,
"size": 595
}
},
{
"digest": "ecdceee1052cba16c818a9d6bafc02cd24dc3af8feda1d980bcea0394f115991",
"files": [
"tracks_not_begun.wlk1"
],
"kind": "part",
"name": "tracks_not_begun",
"note": "no group signed yet on either track: each head zero",
"outcome": "accept",
"summary": {
"bytes": 3948,
"cipher": 128,
"delivered": 3,
"dropped": 0,
"ended": 0,
"first_try": 3,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 0,
"runs": 0,
"seq_count": 3,
"seq_first": 5,
"size": 575
}
},
{
"digest": "ab3c8f287643436d1aa81658b0570b4e11afdad85975e4e7a1465161a73d88de",
"files": [
"runs_truncated.wlk1"
],
"kind": "part",
"name": "runs_truncated",
"note": "more loss runs than a part lists: the first 512, marked truncated, the sums at most the part's",
"outcome": "accept",
"summary": {
"bytes": 1452864,
"cipher": 128,
"delivered": 1104,
"dropped": 0,
"ended": 0,
"first_try": 552,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 552,
"runs": 512,
"seq_count": 1104,
"seq_first": 100,
"size": 10815
}
},
{
"files": [
"too_large.wlk1"
],
"kind": "part",
"name": "too_large",
"note": "one byte past the largest record",
"outcome": "refuse",
"reason": "record_too_large"
},
{
"files": [
"truncated.wlk1"
],
"kind": "part",
"name": "truncated",
"note": "the signature's last byte missing",
"outcome": "refuse",
"reason": "truncated"
},
{
"files": [
"bad_magic.wlk1"
],
"kind": "part",
"name": "bad_magic",
"note": "not WLK1",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"clip_record_magic.wlk1"
],
"kind": "part",
"name": "clip_record_magic",
"note": "the clip record's magic, WCL1 (live-recording §5.1)",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"trailing_byte.wlk1"
],
"kind": "part",
"name": "trailing_byte",
"note": "a byte after the signature",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"unknown_version.wlk1"
],
"kind": "part",
"name": "unknown_version",
"note": "version 2",
"outcome": "refuse",
"reason": "unknown_version"
},
{
"files": [
"bad_key.wlk1"
],
"kind": "part",
"name": "bad_key",
"note": "the hop's key is the identity point, of small order",
"outcome": "refuse",
"reason": "bad_key"
},
{
"files": [
"bad_signature.wlk1"
],
"kind": "part",
"name": "bad_signature",
"note": "a bit of the signature flipped",
"outcome": "refuse",
"reason": "bad_signature"
},
{
"files": [
"altered_count.wlk1"
],
"kind": "part",
"name": "altered_count",
"note": "a count changed after signing",
"outcome": "refuse",
"reason": "bad_signature"
},
{
"files": [
"protocol_unknown.wlk1"
],
"kind": "part",
"name": "protocol_unknown",
"note": "protocol 4",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"mode_unknown.wlk1"
],
"kind": "part",
"name": "mode_unknown",
"note": "mode 3",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"rist_simple_encrypted.wlk1"
],
"kind": "part",
"name": "rist_simple_encrypted",
"note": "the Simple Profile has no encryption, yet the cipher is 128",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"rist_main_aes192.wlk1"
],
"kind": "part",
"name": "rist_main_aes192",
"note": "PSK keys are 128 or 256 bits",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"srt_cipher_100.wlk1"
],
"kind": "part",
"name": "srt_cipher_100",
"note": "no such key length",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"last_without_reason.wlk1"
],
"kind": "part",
"name": "last_without_reason",
"note": "the last part names no reason the session ended",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"reason_without_last.wlk1"
],
"kind": "part",
"name": "reason_without_last",
"note": "a reason on a part that is not the last",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"reason_unknown.wlk1"
],
"kind": "part",
"name": "reason_unknown",
"note": "reason 9",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"empty_span.wlk1"
],
"kind": "part",
"name": "empty_span",
"note": "start equals end",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"no_window.wlk1"
],
"kind": "part",
"name": "no_window",
"note": "a window of 0 µs",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"first_part_with_parent.wlk1"
],
"kind": "part",
"name": "first_part_with_parent",
"note": "part 0 names a parent",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"later_part_without_parent.wlk1"
],
"kind": "part",
"name": "later_part_without_parent",
"note": "part 3 names none",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"tracks_unsorted.wlk1"
],
"kind": "part",
"name": "tracks_unsorted",
"note": "the tracks out of order",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"track_head_without_groups.wlk1"
],
"kind": "part",
"name": "track_head_without_groups",
"note": "a head with no group signed",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"track_zero_digest.wlk1"
],
"kind": "part",
"name": "track_zero_digest",
"note": "a track digest of zero",
"outcome": "refuse",
"reason": "link_invalid"
},
{
"files": [
"count_mismatch.wlk1"
],
"kind": "part",
"name": "count_mismatch",
"note": "delivered + dropped + outstanding is one short of the count",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"first_try_over_delivered.wlk1"
],
"kind": "part",
"name": "first_try_over_delivered",
"note": "more at the first try than delivered",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"outstanding_not_last.wlk1"
],
"kind": "part",
"name": "outstanding_not_last",
"note": "outstanding in a part that is not the last",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"recovery_samples.wlk1"
],
"kind": "part",
"name": "recovery_samples",
"note": "one recovery sample more than recovered",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"rtt_disordered.wlk1"
],
"kind": "part",
"name": "rtt_disordered",
"note": "the RTT's minimum above its median",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"rtt_empty_with_figures.wlk1"
],
"kind": "part",
"name": "rtt_empty_with_figures",
"note": "no RTT sample, yet figures",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"margin_past_window.wlk1"
],
"kind": "part",
"name": "margin_past_window",
"note": "a recovered packet's margin larger than the window",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"requested_below_requests.wlk1"
],
"kind": "part",
"name": "requested_below_requests",
"note": "requests naming fewer sequence numbers than there are requests",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"runs_overlap.wlk1"
],
"kind": "part",
"name": "runs_overlap",
"note": "two runs with no first-try packet between",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"run_outside.wlk1"
],
"kind": "part",
"name": "run_outside",
"note": "a run past the part's sequence numbers",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"run_empty.wlk1"
],
"kind": "part",
"name": "run_empty",
"note": "a run of no sequence number",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"run_overfull.wlk1"
],
"kind": "part",
"name": "run_overfull",
"note": "recovered and dropped more than the run holds",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"runs_short.wlk1"
],
"kind": "part",
"name": "runs_short",
"note": "the runs do not sum to the part's losses",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"truncated_not_full.wlk1"
],
"kind": "part",
"name": "truncated_not_full",
"note": "marked truncated with fewer runs than a part lists",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"run_overfull_alone.wlk1"
],
"kind": "part",
"name": "run_overfull_alone",
"note": "a run's recovered and dropped past its count, every sum still right",
"outcome": "refuse",
"reason": "runs_invalid"
},
{
"files": [
"recovery_disordered.wlk1"
],
"kind": "part",
"name": "recovery_disordered",
"note": "the recoveries' minimum above their median",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"recovery_empty_with_figures.wlk1"
],
"kind": "part",
"name": "recovery_empty_with_figures",
"note": "no recovery sample, yet a maximum",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"files": [
"tracks_past_bound.wlk1"
],
"kind": "part",
"name": "tracks_past_bound",
"note": "more track heads than a record holds",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"runs_past_bound.wlk1"
],
"kind": "part",
"name": "runs_past_bound",
"note": "513 runs listed",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"last_byte_two.wlk1"
],
"kind": "part",
"name": "last_byte_two",
"note": "a last flag of 2",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"truncated_byte_two.wlk1"
],
"kind": "part",
"name": "truncated_byte_two",
"note": "a truncated flag of 2",
"outcome": "refuse",
"reason": "malformed"
},
{
"files": [
"small_order_r.wlk1"
],
"kind": "part",
"name": "small_order_r",
"note": "the signature's R is the identity point, of small order",
"outcome": "refuse",
"reason": "bad_signature"
},
{
"files": [
"margin_without_recovery.wlk1"
],
"kind": "part",
"name": "margin_without_recovery",
"note": "a recovery margin with nothing recovered",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"digest": "950215c0432843c0acf4c1ba3616a430773a59e73158ae8bf1b59f83dcbb05de",
"files": [
"two_dropped.wlk1"
],
"kind": "part",
"name": "two_dropped",
"note": "two of four dropped, none recovered",
"outcome": "accept",
"summary": {
"bytes": 2632,
"cipher": 128,
"delivered": 2,
"dropped": 2,
"ended": 0,
"first_try": 2,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 0,
"runs": 1,
"seq_count": 4,
"seq_first": 42,
"size": 595
}
},
{
"files": [
"bytes_without_delivery.wlk1"
],
"kind": "part",
"name": "bytes_without_delivery",
"note": "bytes delivered with nothing delivered",
"outcome": "refuse",
"reason": "account_invalid"
},
{
"digests": [
"a8f1966aed84ab2153c5d0a7dd3f1fdfbabe08847d7c30674b39473c1282f7df",
"0645d19776ea12ed4b540904c6c969c441fe9aeb90c7cbdd4e92ff2b143749a2",
"a51671b15792e2c2f57dee35f2fc08f086113d7f1f9dd25e8816035494d6bb1a"
],
"files": [
"series_three_parts.0.wlk1",
"series_three_parts.1.wlk1",
"series_three_parts.2.wlk1"
],
"kind": "series",
"name": "series_three_parts",
"note": "a session of three parts, each chained to the one before, the last ended by DELETE",
"outcome": "accept",
"summaries": [
{
"bytes": 40796,
"cipher": 128,
"delivered": 31,
"dropped": 1,
"ended": 0,
"first_try": 25,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 6,
"runs": 4,
"seq_count": 32,
"seq_first": 1000000,
"size": 655
},
{
"bytes": 21056,
"cipher": 128,
"delivered": 16,
"dropped": 0,
"ended": 0,
"first_try": 15,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 1,
"protocol": 1,
"recovered": 1,
"runs": 1,
"seq_count": 16,
"seq_first": 1000032,
"size": 595
},
{
"bytes": 11844,
"cipher": 128,
"delivered": 9,
"dropped": 0,
"ended": 3,
"first_try": 9,
"last": true,
"mode": 1,
"outstanding": 1,
"part": 2,
"protocol": 1,
"recovered": 0,
"runs": 1,
"seq_count": 10,
"seq_first": 1000048,
"size": 595
}
]
},
{
"at": 0,
"files": [
"series_starts_late.0.wlk1",
"series_starts_late.1.wlk1"
],
"kind": "series",
"name": "series_starts_late",
"note": "a series whose first part is not part 0",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_wrong_parent.0.wlk1",
"series_wrong_parent.1.wlk1",
"series_wrong_parent.2.wlk1"
],
"kind": "series",
"name": "series_wrong_parent",
"note": "part 1 names another parent",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 2,
"files": [
"series_skips_a_part.0.wlk1",
"series_skips_a_part.1.wlk1",
"series_skips_a_part.2.wlk1"
],
"kind": "series",
"name": "series_skips_a_part",
"note": "part 1 then part 3",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_session.0.wlk1",
"series_other_session.1.wlk1"
],
"kind": "series",
"name": "series_other_session",
"note": "part 1 of another session",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_head_moved_without_groups.0.wlk1",
"series_head_moved_without_groups.1.wlk1"
],
"kind": "series",
"name": "series_head_moved_without_groups",
"note": "a track's head changed with no group signed since",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_track_dropped.0.wlk1",
"series_track_dropped.1.wlk1"
],
"kind": "series",
"name": "series_track_dropped",
"note": "a track of part 0 missing from part 1",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_part_after_last.0.wlk1",
"series_part_after_last.1.wlk1"
],
"kind": "series",
"name": "series_part_after_last",
"note": "a part after the session's last",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_sequence_gap.0.wlk1",
"series_sequence_gap.1.wlk1"
],
"kind": "series",
"name": "series_sequence_gap",
"note": "a sequence number between part 0 and part 1 accounted for by neither",
"outcome": "refuse",
"reason": "sequence_gap"
},
{
"at": 1,
"files": [
"series_time_gap.0.wlk1",
"series_time_gap.1.wlk1"
],
"kind": "series",
"name": "series_time_gap",
"note": "part 1 begins a microsecond after part 0 ended",
"outcome": "refuse",
"reason": "sequence_gap"
},
{
"at": 1,
"files": [
"series_other_hop.0.wlk1",
"series_other_hop.1.wlk1"
],
"kind": "series",
"name": "series_other_hop",
"note": "part 1 signed by another gateway",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_room.0.wlk1",
"series_other_room.1.wlk1"
],
"kind": "series",
"name": "series_other_room",
"note": "part 1 of another room",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_principal.0.wlk1",
"series_other_principal.1.wlk1"
],
"kind": "series",
"name": "series_other_principal",
"note": "part 1 of another owner",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_grant.0.wlk1",
"series_other_grant.1.wlk1"
],
"kind": "series",
"name": "series_other_grant",
"note": "part 1 under another grant",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_protocol.0.wlk1",
"series_other_protocol.1.wlk1"
],
"kind": "series",
"name": "series_other_protocol",
"note": "part 1 of another protocol",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_mode.0.wlk1",
"series_other_mode.1.wlk1"
],
"kind": "series",
"name": "series_other_mode",
"note": "part 1 says the gateway called",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_cipher.0.wlk1",
"series_other_cipher.1.wlk1"
],
"kind": "series",
"name": "series_other_cipher",
"note": "part 1 under another key length",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_other_window.0.wlk1",
"series_other_window.1.wlk1"
],
"kind": "series",
"name": "series_other_window",
"note": "part 1 with another window",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"at": 1,
"files": [
"series_track_alias_changed.0.wlk1",
"series_track_alias_changed.1.wlk1"
],
"kind": "series",
"name": "series_track_alias_changed",
"note": "a track's receipt chain changed",
"outcome": "refuse",
"reason": "chain_broken"
},
{
"digests": [
"a8f1966aed84ab2153c5d0a7dd3f1fdfbabe08847d7c30674b39473c1282f7df",
"36d657afd9b50a0d97286fbf2dbaee13232d481a12b0cba5ae3612a66540e22e",
"04835ff14f0279fc3cd2340119151438a5864f9d80df6088788530625b8b0ed6"
],
"files": [
"series_track_added.0.wlk1",
"series_track_added.1.wlk1",
"series_track_added.2.wlk1"
],
"kind": "series",
"name": "series_track_added",
"note": "a track that begins in part 1, named again in part 2",
"outcome": "accept",
"summaries": [
{
"bytes": 40796,
"cipher": 128,
"delivered": 31,
"dropped": 1,
"ended": 0,
"first_try": 25,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 0,
"protocol": 1,
"recovered": 6,
"runs": 4,
"seq_count": 32,
"seq_first": 1000000,
"size": 655
},
{
"bytes": 21056,
"cipher": 128,
"delivered": 16,
"dropped": 0,
"ended": 0,
"first_try": 15,
"last": false,
"mode": 1,
"outstanding": 0,
"part": 1,
"protocol": 1,
"recovered": 1,
"runs": 1,
"seq_count": 16,
"seq_first": 1000032,
"size": 675
},
{
"bytes": 11844,
"cipher": 128,
"delivered": 9,
"dropped": 0,
"ended": 3,
"first_try": 9,
"last": true,
"mode": 1,
"outstanding": 1,
"part": 2,
"protocol": 1,
"recovered": 0,
"runs": 1,
"seq_count": 10,
"seq_first": 1000048,
"size": 675
}
]
}
]
}