nmarshall commited on
Commit
f69bc50
·
1 Parent(s): 9538f73

gameplay: assemble scoreboard packets

Browse files
crates/urt-gameplay/src/bin/urt-lifecycle.rs CHANGED
@@ -48,6 +48,37 @@ fn payload_client(v: &[u32], entity_flags: u32) -> urt_gameplay::recipient_paylo
48
  entity_flags,
49
  }
50
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  fn main() {
52
  if let Err(e) = run() {
53
  eprintln!("{e}");
@@ -363,6 +394,42 @@ fn run() -> Result<(), String> {
363
  second.cached_ping as u32
364
  );
365
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  "scoreboard-row" if w.len() == 21 => {
367
  let mut c = payload_client(&w[3..], w[2]);
368
  let row = urt_gameplay::scoreboard_wire::project(w[0] as usize, &mut c, w[1] as i32)
 
48
  entity_flags,
49
  }
50
  }
51
+ fn scoreboard_clients(
52
+ w: &[u32],
53
+ n: usize,
54
+ ) -> Result<(Vec<urt_gameplay::recipient_payload::Client>, Vec<Vec<u8>>), String> {
55
+ let mut pos = 0;
56
+ let mut clients = vec![];
57
+ let mut names = vec![];
58
+ for _ in 0..n {
59
+ if w.len() - pos < 20 {
60
+ return Err("missing scoreboard client".into());
61
+ }
62
+ let count = w[pos + 19] as usize;
63
+ if count > 4096 || w.len() - pos - 20 < count {
64
+ return Err("invalid scoreboard name length".into());
65
+ }
66
+ clients.push(payload_client(&w[pos..pos + 18], w[pos + 18]));
67
+ let mut name = vec![];
68
+ for &v in &w[pos + 20..pos + 20 + count] {
69
+ if v > 255 {
70
+ return Err("invalid name byte".into());
71
+ }
72
+ name.push(v as u8);
73
+ }
74
+ names.push(name);
75
+ pos += 20 + count;
76
+ }
77
+ if pos != w.len() {
78
+ return Err("trailing scoreboard words".into());
79
+ }
80
+ Ok((clients, names))
81
+ }
82
  fn main() {
83
  if let Err(e) = run() {
84
  eprintln!("{e}");
 
394
  second.cached_ping as u32
395
  );
396
  }
397
+ "scoreboard-packet" if w.len() >= 6 && w[4] <= 64 && w[5] <= 64 => {
398
+ let n = w[4] as usize;
399
+ let count = w[5] as usize;
400
+ if w.len() < 6 + count {
401
+ return Err("missing scoreboard order".into());
402
+ }
403
+ let order: Vec<_> = w[6..6 + count].iter().map(|v| *v as usize).collect();
404
+ let (mut clients, names) = scoreboard_clients(&w[6 + count..], n)?;
405
+ let mut counter = w[3];
406
+ let p = urt_gameplay::scoreboard_wire::prepare(
407
+ &mut clients,
408
+ &names,
409
+ &order,
410
+ w[0] as i32,
411
+ [w[1] as i32, w[2] as i32],
412
+ &mut counter,
413
+ )
414
+ .map_err(|e| format!("unsupported input: {e:?}"))?;
415
+ println!(
416
+ "{{\"accepted\":{},\"attempted\":{},\"payload_length\":{},\"cstring_hex\":\"{}\",\"buffer_index\":{},\"counter\":{},\"cached\":[{}]}}",
417
+ p.accepted,
418
+ p.attempted,
419
+ p.payload_length,
420
+ p.cstring
421
+ .iter()
422
+ .map(|v| format!("{v:02x}"))
423
+ .collect::<String>(),
424
+ p.buffer_index,
425
+ counter,
426
+ clients
427
+ .iter()
428
+ .map(|c| (c.cached_ping as u32).to_string())
429
+ .collect::<Vec<_>>()
430
+ .join(",")
431
+ );
432
+ }
433
  "scoreboard-row" if w.len() == 21 => {
434
  let mut c = payload_client(&w[3..], w[2]);
435
  let row = urt_gameplay::scoreboard_wire::project(w[0] as usize, &mut c, w[1] as i32)
crates/urt-gameplay/src/scoreboard_wire.rs CHANGED
@@ -30,6 +30,68 @@ pub fn project(id: usize, c: &mut Client, now: i32) -> Result<[i32; 12], Error>
30
  c.class,
31
  ])
32
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  #[cfg(test)]
34
  mod tests {
35
  use super::*;
@@ -56,6 +118,47 @@ mod tests {
56
  }
57
  }
58
  #[test]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  fn raw_class_nonconnecting_ping_and_wrap() {
60
  let mut c = client();
61
  let n = project(3, &mut c, i32::MIN).unwrap();
 
30
  c.class,
31
  ])
32
  }
33
+ #[derive(Clone, Debug, PartialEq, Eq)]
34
+ pub struct Packet {
35
+ pub accepted: usize,
36
+ pub attempted: usize,
37
+ pub payload_length: usize,
38
+ pub cstring: Vec<u8>,
39
+ pub buffer_index: u32,
40
+ }
41
+ /// Modeled37914 decimal/raw-byte output and native strncpy name policy. Cache
42
+ /// projection precedes admission, including the first rejected candidate.
43
+ pub fn prepare(
44
+ clients: &mut [Client],
45
+ names: &[Vec<u8>],
46
+ order: &[usize],
47
+ now: i32,
48
+ scores: [i32; 2],
49
+ counter: &mut u32,
50
+ ) -> Result<Packet, Error> {
51
+ if clients.len() > 64 || names.len() != clients.len() || order.len() > 64 {
52
+ return Err(Error::InvalidOrder);
53
+ }
54
+ let mut seen = vec![false; clients.len()];
55
+ for &id in order {
56
+ if id >= clients.len() || seen[id] {
57
+ return Err(Error::InvalidOrder);
58
+ }
59
+ seen[id] = true;
60
+ }
61
+ let mut payload = vec![];
62
+ let mut accepted = 0;
63
+ let mut attempted = 0;
64
+ for &id in order {
65
+ let numbers = project(id, &mut clients[id], now)?;
66
+ attempted += 1;
67
+ let mut row = vec![];
68
+ for number in numbers {
69
+ row.push(b' ');
70
+ row.extend_from_slice(number.to_string().as_bytes());
71
+ }
72
+ let name = crate::recipient_wire::copy_name(&names[id]);
73
+ let end = name.iter().position(|b| *b == 0).unwrap();
74
+ row.push(b' ');
75
+ row.extend_from_slice(&name[..end]);
76
+ if payload.len() + row.len() > 1024 {
77
+ break;
78
+ }
79
+ payload.extend_from_slice(&row);
80
+ accepted += 1;
81
+ }
82
+ let mut cstring = format!("scores {} {} {}", accepted, scores[0], scores[1]).into_bytes();
83
+ cstring.extend_from_slice(&payload);
84
+ cstring.push(0);
85
+ let buffer_index = *counter & 1;
86
+ *counter = counter.wrapping_add(1);
87
+ Ok(Packet {
88
+ accepted,
89
+ attempted,
90
+ payload_length: payload.len(),
91
+ cstring,
92
+ buffer_index,
93
+ })
94
+ }
95
  #[cfg(test)]
96
  mod tests {
97
  use super::*;
 
118
  }
119
  }
120
  #[test]
121
+ fn exact_capacity_and_rejected_candidate_cache_effect() {
122
+ let mut c = client();
123
+ c.packed = 0;
124
+ c.entered = 0;
125
+ c.class = 0;
126
+ c.ping = 7;
127
+ let mut clients = vec![c; 64];
128
+ clients[0].score = 100000000;
129
+ let names = vec![vec![b'x'; 31]; 64];
130
+ let mut counter = 0;
131
+ let p = prepare(
132
+ &mut clients,
133
+ &names,
134
+ &(0..64).collect::<Vec<_>>(),
135
+ 0,
136
+ [2, 1],
137
+ &mut counter,
138
+ )
139
+ .unwrap();
140
+ assert_eq!((p.accepted, p.attempted, p.payload_length), (18, 19, 1024));
141
+ assert!(clients[..19].iter().all(|c| c.cached_ping == 7));
142
+ assert!(clients[19..].iter().all(|c| c.cached_ping == 77));
143
+ assert_eq!(counter, 1);
144
+ assert_eq!(p.cstring.last(), Some(&0));
145
+ }
146
+ #[test]
147
+ fn invalid_order_atomic_and_empty_ring_wrap() {
148
+ let mut c = [client()];
149
+ let old = c;
150
+ let mut counter = u32::MAX;
151
+ assert_eq!(
152
+ prepare(&mut c, &[vec![]], &[0, 0], 0, [0, 0], &mut counter),
153
+ Err(Error::InvalidOrder)
154
+ );
155
+ assert_eq!(c, old);
156
+ assert_eq!(counter, u32::MAX);
157
+ let p = prepare(&mut c, &[vec![]], &[], 0, [-1, 2], &mut counter).unwrap();
158
+ assert_eq!(p.cstring, b"scores 0 -1 2\0");
159
+ assert_eq!((p.buffer_index, counter), (1, 0));
160
+ }
161
+ #[test]
162
  fn raw_class_nonconnecting_ping_and_wrap() {
163
  let mut c = client();
164
  let n = project(3, &mut c, i32::MIN).unwrap();
docs/FINDINGS.md CHANGED
@@ -1421,3 +1421,6 @@ RE-791–800 adds exact Rust source-sort/ranking parity, mixed count/prefix sema
1421
 
1422
 
1423
  **RE-807:** Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. [Evidence](research/RUST_SCOREBOARD_ROWS.md).
 
 
 
 
1421
 
1422
 
1423
  **RE-807:** Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. [Evidence](research/RUST_SCOREBOARD_ROWS.md).
1424
+
1425
+
1426
+ **RE-808:** Rust matches exact modeled scoreboard bytes, accepted/attempted counts, rejected-row cache mutations and output-ring wrap for18 source compositions. [Evidence](research/RUST_SCOREBOARD_PACKET.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1428,3 +1428,6 @@ RE-806: 179363 now executes its real string and format wrappers, admission loop
1428
 
1429
 
1430
  RE-807: Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_ROWS.md).
 
 
 
 
1428
 
1429
 
1430
  RE-807: Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_ROWS.md).
1431
+
1432
+
1433
+ RE-808: Rust matches exact modeled scoreboard bytes, accepted/attempted counts, rejected-row cache mutations and output-ring wrap for18 source compositions. Full runtime completion remains open. [Evidence](research/RUST_SCOREBOARD_PACKET.md).
docs/RESEARCH_LEDGER.md CHANGED
@@ -1701,3 +1701,8 @@ Actual strlen36038 and strcpy36185 execute against coherent bytes, preserving de
1701
  ## 2026-10-26 — RE-807 Rust scoreboard numeric projection with source-specific ping and class policy
1702
 
1703
  Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. Focused `cargo xtask test-group rust-scoreboard-rows` passes (9 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
 
 
 
 
 
 
1701
  ## 2026-10-26 — RE-807 Rust scoreboard numeric projection with source-specific ping and class policy
1702
 
1703
  Rust reproduces every attempted source scoreboard row and cache update while preserving the differences from existing single/pair recipient projections. Focused `cargo xtask test-group rust-scoreboard-rows` passes (9 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
1704
+
1705
+
1706
+ ## 2026-10-26 — RE-808 Rust scoreboard packet admission cache and ring-buffer policy
1707
+
1708
+ Rust matches exact modeled scoreboard bytes, accepted/attempted counts, rejected-row cache mutations and output-ring wrap for18 source compositions. Focused `cargo xtask test-group rust-scoreboard-packet` passes (9 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1471,3 +1471,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1471
 
1472
 
1473
  - [x] RE-807 Rust scoreboard numeric projection with source-specific ping and class policy ([evidence](research/RUST_SCOREBOARD_ROWS.md)).
 
 
 
 
1471
 
1472
 
1473
  - [x] RE-807 Rust scoreboard numeric projection with source-specific ping and class policy ([evidence](research/RUST_SCOREBOARD_ROWS.md)).
1474
+
1475
+
1476
+ - [x] RE-808 Rust scoreboard packet admission cache and ring-buffer policy ([evidence](research/RUST_SCOREBOARD_PACKET.md)).
docs/research/README.md CHANGED
@@ -1011,3 +1011,6 @@ The extension collector adds five focused tests for native tail calls, command-r
1011
 
1012
 
1013
  [RE-807: Rust scoreboard numeric projection with source-specific ping and class policy](RUST_SCOREBOARD_ROWS.md).
 
 
 
 
1011
 
1012
 
1013
  [RE-807: Rust scoreboard numeric projection with source-specific ping and class policy](RUST_SCOREBOARD_ROWS.md).
1014
+
1015
+
1016
+ [RE-808: Rust scoreboard packet admission cache and ring-buffer policy](RUST_SCOREBOARD_PACKET.md).
docs/research/RUST_SCOREBOARD_PACKET.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Rust scoreboard packet admission cache and ring-buffer policy
2
+
3
+ RE-808. Reproduce with `python3 scripts/analyze_rust_scoreboard_packet.py`; focused validation: `cargo xtask test-group rust-scoreboard-packet`. [Machine report](rust-scoreboard-packet.json).
4
+
5
+ The packet API validates complete input shape before mutation, admits a prefix with at most1024 row bytes and increments the ring counter even for an empty packet. Names retain the existing explicit fallback/truncation/raw-byte model. Unit tests independently construct an exact1024-byte packet, verify the19th attempted cache mutation, and check atomic malformed-order rejection. Native formatter/copy/send parity is still not claimed.
6
+
7
+ Original executable/native runtime and complete Linux/macOS Rust/Bevy/Solari acceptance remain unverified.
docs/research/rust-health-impulse.json CHANGED
@@ -2985,7 +2985,7 @@
2985
  "exit_code": 2
2986
  }
2987
  ],
2988
- "rust_unit_tests": 67,
2989
  "source_report": "docs/research/qvm-health-impulse.json",
2990
  "source_report_sha256": "625fd8064004ea6dbdf398d51d0af844d9c635ff04c0a0790886dddb6ab81e71"
2991
  }
 
2985
  "exit_code": 2
2986
  }
2987
  ],
2988
+ "rust_unit_tests": 69,
2989
  "source_report": "docs/research/qvm-health-impulse.json",
2990
  "source_report_sha256": "625fd8064004ea6dbdf398d51d0af844d9c635ff04c0a0790886dddb6ab81e71"
2991
  }
docs/research/rust-scoreboard-packet.json ADDED
@@ -0,0 +1,1039 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "Rust179363 projection/admission plus modeled byte formatter/name copy matches18 original-control-flow cases, including rejected-candidate cache mutations and ring wrap. Actual37914/native strncpy/server send parity remains unverified.",
3
+ "probes": [
4
+ {
5
+ "rust": {
6
+ "accepted": 0,
7
+ "attempted": 0,
8
+ "buffer_index": 0,
9
+ "cached": [],
10
+ "counter": 1,
11
+ "cstring_hex": "73636f72657320302032203100",
12
+ "payload_length": 0
13
+ },
14
+ "source": {
15
+ "accepted": 0,
16
+ "attempted": 0,
17
+ "buffer_index": 0,
18
+ "cached": [],
19
+ "counter": 1,
20
+ "cstring_hex": "73636f72657320302032203100",
21
+ "payload_length": 0
22
+ }
23
+ },
24
+ {
25
+ "rust": {
26
+ "accepted": 0,
27
+ "attempted": 0,
28
+ "buffer_index": 1,
29
+ "cached": [],
30
+ "counter": 2,
31
+ "cstring_hex": "73636f72657320302032203100",
32
+ "payload_length": 0
33
+ },
34
+ "source": {
35
+ "accepted": 0,
36
+ "attempted": 0,
37
+ "buffer_index": 1,
38
+ "cached": [],
39
+ "counter": 2,
40
+ "cstring_hex": "73636f72657320302032203100",
41
+ "payload_length": 0
42
+ }
43
+ },
44
+ {
45
+ "rust": {
46
+ "accepted": 0,
47
+ "attempted": 0,
48
+ "buffer_index": 1,
49
+ "cached": [],
50
+ "counter": 0,
51
+ "cstring_hex": "73636f72657320302032203100",
52
+ "payload_length": 0
53
+ },
54
+ "source": {
55
+ "accepted": 0,
56
+ "attempted": 0,
57
+ "buffer_index": 1,
58
+ "cached": [],
59
+ "counter": 0,
60
+ "cstring_hex": "73636f72657320302032203100",
61
+ "payload_length": 0
62
+ }
63
+ },
64
+ {
65
+ "rust": {
66
+ "accepted": 1,
67
+ "attempted": 1,
68
+ "buffer_index": 0,
69
+ "cached": [
70
+ 4294967291
71
+ ],
72
+ "counter": 1,
73
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
74
+ "payload_length": 50
75
+ },
76
+ "source": {
77
+ "accepted": 1,
78
+ "attempted": 1,
79
+ "buffer_index": 0,
80
+ "cached": [
81
+ 4294967291
82
+ ],
83
+ "counter": 1,
84
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
85
+ "payload_length": 50
86
+ }
87
+ },
88
+ {
89
+ "rust": {
90
+ "accepted": 1,
91
+ "attempted": 1,
92
+ "buffer_index": 1,
93
+ "cached": [
94
+ 4294967291
95
+ ],
96
+ "counter": 2,
97
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
98
+ "payload_length": 50
99
+ },
100
+ "source": {
101
+ "accepted": 1,
102
+ "attempted": 1,
103
+ "buffer_index": 1,
104
+ "cached": [
105
+ 4294967291
106
+ ],
107
+ "counter": 2,
108
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
109
+ "payload_length": 50
110
+ }
111
+ },
112
+ {
113
+ "rust": {
114
+ "accepted": 1,
115
+ "attempted": 1,
116
+ "buffer_index": 1,
117
+ "cached": [
118
+ 4294967291
119
+ ],
120
+ "counter": 0,
121
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
122
+ "payload_length": 50
123
+ },
124
+ "source": {
125
+ "accepted": 1,
126
+ "attempted": 1,
127
+ "buffer_index": 1,
128
+ "cached": [
129
+ 4294967291
130
+ ],
131
+ "counter": 0,
132
+ "cstring_hex": "73636f7265732031203220312030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
133
+ "payload_length": 50
134
+ }
135
+ },
136
+ {
137
+ "rust": {
138
+ "accepted": 2,
139
+ "attempted": 2,
140
+ "buffer_index": 0,
141
+ "cached": [
142
+ 4294967291,
143
+ 77
144
+ ],
145
+ "counter": 1,
146
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
147
+ "payload_length": 90
148
+ },
149
+ "source": {
150
+ "accepted": 2,
151
+ "attempted": 2,
152
+ "buffer_index": 0,
153
+ "cached": [
154
+ 4294967291,
155
+ 77
156
+ ],
157
+ "counter": 1,
158
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
159
+ "payload_length": 90
160
+ }
161
+ },
162
+ {
163
+ "rust": {
164
+ "accepted": 2,
165
+ "attempted": 2,
166
+ "buffer_index": 1,
167
+ "cached": [
168
+ 4294967291,
169
+ 77
170
+ ],
171
+ "counter": 2,
172
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
173
+ "payload_length": 90
174
+ },
175
+ "source": {
176
+ "accepted": 2,
177
+ "attempted": 2,
178
+ "buffer_index": 1,
179
+ "cached": [
180
+ 4294967291,
181
+ 77
182
+ ],
183
+ "counter": 2,
184
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
185
+ "payload_length": 90
186
+ }
187
+ },
188
+ {
189
+ "rust": {
190
+ "accepted": 2,
191
+ "attempted": 2,
192
+ "buffer_index": 1,
193
+ "cached": [
194
+ 4294967291,
195
+ 77
196
+ ],
197
+ "counter": 0,
198
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
199
+ "payload_length": 90
200
+ },
201
+ "source": {
202
+ "accepted": 2,
203
+ "attempted": 2,
204
+ "buffer_index": 1,
205
+ "cached": [
206
+ 4294967291,
207
+ 77
208
+ ],
209
+ "counter": 0,
210
+ "cstring_hex": "73636f72657320322032203120312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
211
+ "payload_length": 90
212
+ }
213
+ },
214
+ {
215
+ "rust": {
216
+ "accepted": 8,
217
+ "attempted": 8,
218
+ "buffer_index": 0,
219
+ "cached": [
220
+ 4294967291,
221
+ 77,
222
+ 4294967291,
223
+ 77,
224
+ 4294967291,
225
+ 77,
226
+ 4294967291,
227
+ 77
228
+ ],
229
+ "counter": 1,
230
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
231
+ "payload_length": 423
232
+ },
233
+ "source": {
234
+ "accepted": 8,
235
+ "attempted": 8,
236
+ "buffer_index": 0,
237
+ "cached": [
238
+ 4294967291,
239
+ 77,
240
+ 4294967291,
241
+ 77,
242
+ 4294967291,
243
+ 77,
244
+ 4294967291,
245
+ 77
246
+ ],
247
+ "counter": 1,
248
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
249
+ "payload_length": 423
250
+ }
251
+ },
252
+ {
253
+ "rust": {
254
+ "accepted": 8,
255
+ "attempted": 8,
256
+ "buffer_index": 1,
257
+ "cached": [
258
+ 4294967291,
259
+ 77,
260
+ 4294967291,
261
+ 77,
262
+ 4294967291,
263
+ 77,
264
+ 4294967291,
265
+ 77
266
+ ],
267
+ "counter": 2,
268
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
269
+ "payload_length": 423
270
+ },
271
+ "source": {
272
+ "accepted": 8,
273
+ "attempted": 8,
274
+ "buffer_index": 1,
275
+ "cached": [
276
+ 4294967291,
277
+ 77,
278
+ 4294967291,
279
+ 77,
280
+ 4294967291,
281
+ 77,
282
+ 4294967291,
283
+ 77
284
+ ],
285
+ "counter": 2,
286
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
287
+ "payload_length": 423
288
+ }
289
+ },
290
+ {
291
+ "rust": {
292
+ "accepted": 8,
293
+ "attempted": 8,
294
+ "buffer_index": 1,
295
+ "cached": [
296
+ 4294967291,
297
+ 77,
298
+ 4294967291,
299
+ 77,
300
+ 4294967291,
301
+ 77,
302
+ 4294967291,
303
+ 77
304
+ ],
305
+ "counter": 0,
306
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
307
+ "payload_length": 423
308
+ },
309
+ "source": {
310
+ "accepted": 8,
311
+ "attempted": 8,
312
+ "buffer_index": 1,
313
+ "cached": [
314
+ 4294967291,
315
+ 77,
316
+ 4294967291,
317
+ 77,
318
+ 4294967291,
319
+ 77,
320
+ 4294967291,
321
+ 77
322
+ ],
323
+ "counter": 0,
324
+ "cstring_hex": "73636f72657320382032203120372037203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d2036202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe20352035202d31203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f72647320342034202d35203320302033203920323535202d383338383630372031372034202d3120787878787878787878787878787878787878787878787878787878787878782033202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787820322032202d35203320302033203920323535202d383338383630372031372034202d3120414220312031203737203320312033203920323535202d383338383630372031372034203231202d2d2d2030202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d31202d2d2d00",
325
+ "payload_length": 423
326
+ }
327
+ },
328
+ {
329
+ "rust": {
330
+ "accepted": 19,
331
+ "attempted": 20,
332
+ "buffer_index": 0,
333
+ "cached": [
334
+ 77,
335
+ 77,
336
+ 77,
337
+ 77,
338
+ 77,
339
+ 77,
340
+ 77,
341
+ 77,
342
+ 77,
343
+ 77,
344
+ 77,
345
+ 77,
346
+ 4294967291,
347
+ 77,
348
+ 4294967291,
349
+ 77,
350
+ 4294967291,
351
+ 77,
352
+ 4294967291,
353
+ 77,
354
+ 4294967291,
355
+ 77,
356
+ 4294967291,
357
+ 77,
358
+ 4294967291,
359
+ 77,
360
+ 4294967291,
361
+ 77,
362
+ 4294967291,
363
+ 77,
364
+ 4294967291,
365
+ 77
366
+ ],
367
+ "counter": 1,
368
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
369
+ "payload_length": 1024
370
+ },
371
+ "source": {
372
+ "accepted": 19,
373
+ "attempted": 20,
374
+ "buffer_index": 0,
375
+ "cached": [
376
+ 77,
377
+ 77,
378
+ 77,
379
+ 77,
380
+ 77,
381
+ 77,
382
+ 77,
383
+ 77,
384
+ 77,
385
+ 77,
386
+ 77,
387
+ 77,
388
+ 4294967291,
389
+ 77,
390
+ 4294967291,
391
+ 77,
392
+ 4294967291,
393
+ 77,
394
+ 4294967291,
395
+ 77,
396
+ 4294967291,
397
+ 77,
398
+ 4294967291,
399
+ 77,
400
+ 4294967291,
401
+ 77,
402
+ 4294967291,
403
+ 77,
404
+ 4294967291,
405
+ 77,
406
+ 4294967291,
407
+ 77
408
+ ],
409
+ "counter": 1,
410
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
411
+ "payload_length": 1024
412
+ }
413
+ },
414
+ {
415
+ "rust": {
416
+ "accepted": 19,
417
+ "attempted": 20,
418
+ "buffer_index": 1,
419
+ "cached": [
420
+ 77,
421
+ 77,
422
+ 77,
423
+ 77,
424
+ 77,
425
+ 77,
426
+ 77,
427
+ 77,
428
+ 77,
429
+ 77,
430
+ 77,
431
+ 77,
432
+ 4294967291,
433
+ 77,
434
+ 4294967291,
435
+ 77,
436
+ 4294967291,
437
+ 77,
438
+ 4294967291,
439
+ 77,
440
+ 4294967291,
441
+ 77,
442
+ 4294967291,
443
+ 77,
444
+ 4294967291,
445
+ 77,
446
+ 4294967291,
447
+ 77,
448
+ 4294967291,
449
+ 77,
450
+ 4294967291,
451
+ 77
452
+ ],
453
+ "counter": 2,
454
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
455
+ "payload_length": 1024
456
+ },
457
+ "source": {
458
+ "accepted": 19,
459
+ "attempted": 20,
460
+ "buffer_index": 1,
461
+ "cached": [
462
+ 77,
463
+ 77,
464
+ 77,
465
+ 77,
466
+ 77,
467
+ 77,
468
+ 77,
469
+ 77,
470
+ 77,
471
+ 77,
472
+ 77,
473
+ 77,
474
+ 4294967291,
475
+ 77,
476
+ 4294967291,
477
+ 77,
478
+ 4294967291,
479
+ 77,
480
+ 4294967291,
481
+ 77,
482
+ 4294967291,
483
+ 77,
484
+ 4294967291,
485
+ 77,
486
+ 4294967291,
487
+ 77,
488
+ 4294967291,
489
+ 77,
490
+ 4294967291,
491
+ 77,
492
+ 4294967291,
493
+ 77
494
+ ],
495
+ "counter": 2,
496
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
497
+ "payload_length": 1024
498
+ }
499
+ },
500
+ {
501
+ "rust": {
502
+ "accepted": 19,
503
+ "attempted": 20,
504
+ "buffer_index": 1,
505
+ "cached": [
506
+ 77,
507
+ 77,
508
+ 77,
509
+ 77,
510
+ 77,
511
+ 77,
512
+ 77,
513
+ 77,
514
+ 77,
515
+ 77,
516
+ 77,
517
+ 77,
518
+ 4294967291,
519
+ 77,
520
+ 4294967291,
521
+ 77,
522
+ 4294967291,
523
+ 77,
524
+ 4294967291,
525
+ 77,
526
+ 4294967291,
527
+ 77,
528
+ 4294967291,
529
+ 77,
530
+ 4294967291,
531
+ 77,
532
+ 4294967291,
533
+ 77,
534
+ 4294967291,
535
+ 77,
536
+ 4294967291,
537
+ 77
538
+ ],
539
+ "counter": 0,
540
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
541
+ "payload_length": 1024
542
+ },
543
+ "source": {
544
+ "accepted": 19,
545
+ "attempted": 20,
546
+ "buffer_index": 1,
547
+ "cached": [
548
+ 77,
549
+ 77,
550
+ 77,
551
+ 77,
552
+ 77,
553
+ 77,
554
+ 77,
555
+ 77,
556
+ 77,
557
+ 77,
558
+ 77,
559
+ 77,
560
+ 4294967291,
561
+ 77,
562
+ 4294967291,
563
+ 77,
564
+ 4294967291,
565
+ 77,
566
+ 4294967291,
567
+ 77,
568
+ 4294967291,
569
+ 77,
570
+ 4294967291,
571
+ 77,
572
+ 4294967291,
573
+ 77,
574
+ 4294967291,
575
+ 77,
576
+ 4294967291,
577
+ 77,
578
+ 4294967291,
579
+ 77
580
+ ],
581
+ "counter": 0,
582
+ "cstring_hex": "73636f72657320313920322031203331203331203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203330202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203239203239203737203320312033203920323535202d383338383630372031372034203231204142203238203238202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203237202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203236203236202d35203320302033203920323535202d383338383630372031372034202d31204142203235203235202d31203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203234202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d3120fffe203233203233203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203232203232202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203231202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203230203230202d31203320302033203920323535202d383338383630372031372034202d31204142203139203139203737203320312033203920323535202d383338383630372031372034203231202d2d2d203138202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203137203137203737203320312033203920323535202d383338383630372031372034203231204142203136203136202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203135202d32313437343833363438202d31203320312033203920323535202d38333838363037203137203420323120fffe203134203134202d35203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203133203133203737203320312033203920323535202d383338383630372031372034203231207878787878787878787878787878787878787878787878787878787878787800",
583
+ "payload_length": 1024
584
+ }
585
+ },
586
+ {
587
+ "rust": {
588
+ "accepted": 19,
589
+ "attempted": 20,
590
+ "buffer_index": 0,
591
+ "cached": [
592
+ 77,
593
+ 77,
594
+ 77,
595
+ 77,
596
+ 77,
597
+ 77,
598
+ 77,
599
+ 77,
600
+ 77,
601
+ 77,
602
+ 77,
603
+ 77,
604
+ 77,
605
+ 77,
606
+ 77,
607
+ 77,
608
+ 77,
609
+ 77,
610
+ 77,
611
+ 77,
612
+ 77,
613
+ 77,
614
+ 77,
615
+ 77,
616
+ 77,
617
+ 77,
618
+ 77,
619
+ 77,
620
+ 77,
621
+ 77,
622
+ 77,
623
+ 77,
624
+ 77,
625
+ 77,
626
+ 77,
627
+ 77,
628
+ 77,
629
+ 77,
630
+ 77,
631
+ 77,
632
+ 77,
633
+ 77,
634
+ 77,
635
+ 77,
636
+ 4294967291,
637
+ 77,
638
+ 4294967291,
639
+ 77,
640
+ 4294967291,
641
+ 77,
642
+ 4294967291,
643
+ 77,
644
+ 4294967291,
645
+ 77,
646
+ 4294967291,
647
+ 77,
648
+ 4294967291,
649
+ 77,
650
+ 4294967291,
651
+ 77,
652
+ 4294967291,
653
+ 77,
654
+ 4294967291,
655
+ 77
656
+ ],
657
+ "counter": 1,
658
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
659
+ "payload_length": 1005
660
+ },
661
+ "source": {
662
+ "accepted": 19,
663
+ "attempted": 20,
664
+ "buffer_index": 0,
665
+ "cached": [
666
+ 77,
667
+ 77,
668
+ 77,
669
+ 77,
670
+ 77,
671
+ 77,
672
+ 77,
673
+ 77,
674
+ 77,
675
+ 77,
676
+ 77,
677
+ 77,
678
+ 77,
679
+ 77,
680
+ 77,
681
+ 77,
682
+ 77,
683
+ 77,
684
+ 77,
685
+ 77,
686
+ 77,
687
+ 77,
688
+ 77,
689
+ 77,
690
+ 77,
691
+ 77,
692
+ 77,
693
+ 77,
694
+ 77,
695
+ 77,
696
+ 77,
697
+ 77,
698
+ 77,
699
+ 77,
700
+ 77,
701
+ 77,
702
+ 77,
703
+ 77,
704
+ 77,
705
+ 77,
706
+ 77,
707
+ 77,
708
+ 77,
709
+ 77,
710
+ 4294967291,
711
+ 77,
712
+ 4294967291,
713
+ 77,
714
+ 4294967291,
715
+ 77,
716
+ 4294967291,
717
+ 77,
718
+ 4294967291,
719
+ 77,
720
+ 4294967291,
721
+ 77,
722
+ 4294967291,
723
+ 77,
724
+ 4294967291,
725
+ 77,
726
+ 4294967291,
727
+ 77,
728
+ 4294967291,
729
+ 77
730
+ ],
731
+ "counter": 1,
732
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
733
+ "payload_length": 1005
734
+ }
735
+ },
736
+ {
737
+ "rust": {
738
+ "accepted": 19,
739
+ "attempted": 20,
740
+ "buffer_index": 1,
741
+ "cached": [
742
+ 77,
743
+ 77,
744
+ 77,
745
+ 77,
746
+ 77,
747
+ 77,
748
+ 77,
749
+ 77,
750
+ 77,
751
+ 77,
752
+ 77,
753
+ 77,
754
+ 77,
755
+ 77,
756
+ 77,
757
+ 77,
758
+ 77,
759
+ 77,
760
+ 77,
761
+ 77,
762
+ 77,
763
+ 77,
764
+ 77,
765
+ 77,
766
+ 77,
767
+ 77,
768
+ 77,
769
+ 77,
770
+ 77,
771
+ 77,
772
+ 77,
773
+ 77,
774
+ 77,
775
+ 77,
776
+ 77,
777
+ 77,
778
+ 77,
779
+ 77,
780
+ 77,
781
+ 77,
782
+ 77,
783
+ 77,
784
+ 77,
785
+ 77,
786
+ 4294967291,
787
+ 77,
788
+ 4294967291,
789
+ 77,
790
+ 4294967291,
791
+ 77,
792
+ 4294967291,
793
+ 77,
794
+ 4294967291,
795
+ 77,
796
+ 4294967291,
797
+ 77,
798
+ 4294967291,
799
+ 77,
800
+ 4294967291,
801
+ 77,
802
+ 4294967291,
803
+ 77,
804
+ 4294967291,
805
+ 77
806
+ ],
807
+ "counter": 2,
808
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
809
+ "payload_length": 1005
810
+ },
811
+ "source": {
812
+ "accepted": 19,
813
+ "attempted": 20,
814
+ "buffer_index": 1,
815
+ "cached": [
816
+ 77,
817
+ 77,
818
+ 77,
819
+ 77,
820
+ 77,
821
+ 77,
822
+ 77,
823
+ 77,
824
+ 77,
825
+ 77,
826
+ 77,
827
+ 77,
828
+ 77,
829
+ 77,
830
+ 77,
831
+ 77,
832
+ 77,
833
+ 77,
834
+ 77,
835
+ 77,
836
+ 77,
837
+ 77,
838
+ 77,
839
+ 77,
840
+ 77,
841
+ 77,
842
+ 77,
843
+ 77,
844
+ 77,
845
+ 77,
846
+ 77,
847
+ 77,
848
+ 77,
849
+ 77,
850
+ 77,
851
+ 77,
852
+ 77,
853
+ 77,
854
+ 77,
855
+ 77,
856
+ 77,
857
+ 77,
858
+ 77,
859
+ 77,
860
+ 4294967291,
861
+ 77,
862
+ 4294967291,
863
+ 77,
864
+ 4294967291,
865
+ 77,
866
+ 4294967291,
867
+ 77,
868
+ 4294967291,
869
+ 77,
870
+ 4294967291,
871
+ 77,
872
+ 4294967291,
873
+ 77,
874
+ 4294967291,
875
+ 77,
876
+ 4294967291,
877
+ 77,
878
+ 4294967291,
879
+ 77
880
+ ],
881
+ "counter": 2,
882
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
883
+ "payload_length": 1005
884
+ }
885
+ },
886
+ {
887
+ "rust": {
888
+ "accepted": 19,
889
+ "attempted": 20,
890
+ "buffer_index": 1,
891
+ "cached": [
892
+ 77,
893
+ 77,
894
+ 77,
895
+ 77,
896
+ 77,
897
+ 77,
898
+ 77,
899
+ 77,
900
+ 77,
901
+ 77,
902
+ 77,
903
+ 77,
904
+ 77,
905
+ 77,
906
+ 77,
907
+ 77,
908
+ 77,
909
+ 77,
910
+ 77,
911
+ 77,
912
+ 77,
913
+ 77,
914
+ 77,
915
+ 77,
916
+ 77,
917
+ 77,
918
+ 77,
919
+ 77,
920
+ 77,
921
+ 77,
922
+ 77,
923
+ 77,
924
+ 77,
925
+ 77,
926
+ 77,
927
+ 77,
928
+ 77,
929
+ 77,
930
+ 77,
931
+ 77,
932
+ 77,
933
+ 77,
934
+ 77,
935
+ 77,
936
+ 4294967291,
937
+ 77,
938
+ 4294967291,
939
+ 77,
940
+ 4294967291,
941
+ 77,
942
+ 4294967291,
943
+ 77,
944
+ 4294967291,
945
+ 77,
946
+ 4294967291,
947
+ 77,
948
+ 4294967291,
949
+ 77,
950
+ 4294967291,
951
+ 77,
952
+ 4294967291,
953
+ 77,
954
+ 4294967291,
955
+ 77
956
+ ],
957
+ "counter": 0,
958
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
959
+ "payload_length": 1005
960
+ },
961
+ "source": {
962
+ "accepted": 19,
963
+ "attempted": 20,
964
+ "buffer_index": 1,
965
+ "cached": [
966
+ 77,
967
+ 77,
968
+ 77,
969
+ 77,
970
+ 77,
971
+ 77,
972
+ 77,
973
+ 77,
974
+ 77,
975
+ 77,
976
+ 77,
977
+ 77,
978
+ 77,
979
+ 77,
980
+ 77,
981
+ 77,
982
+ 77,
983
+ 77,
984
+ 77,
985
+ 77,
986
+ 77,
987
+ 77,
988
+ 77,
989
+ 77,
990
+ 77,
991
+ 77,
992
+ 77,
993
+ 77,
994
+ 77,
995
+ 77,
996
+ 77,
997
+ 77,
998
+ 77,
999
+ 77,
1000
+ 77,
1001
+ 77,
1002
+ 77,
1003
+ 77,
1004
+ 77,
1005
+ 77,
1006
+ 77,
1007
+ 77,
1008
+ 77,
1009
+ 77,
1010
+ 4294967291,
1011
+ 77,
1012
+ 4294967291,
1013
+ 77,
1014
+ 4294967291,
1015
+ 77,
1016
+ 4294967291,
1017
+ 77,
1018
+ 4294967291,
1019
+ 77,
1020
+ 4294967291,
1021
+ 77,
1022
+ 4294967291,
1023
+ 77,
1024
+ 4294967291,
1025
+ 77,
1026
+ 4294967291,
1027
+ 77,
1028
+ 4294967291,
1029
+ 77
1030
+ ],
1031
+ "counter": 0,
1032
+ "cstring_hex": "73636f72657320313920322031203633202d32313437343833363438203737203320312033203920323535202d383338383630372031372034203231202d2d2d203632203632202d35203320302033203920323535202d383338383630372031372034202d31204142203631203631203737203320312033203920323535202d38333838363037203137203420323120c3a9c3a9202f20e5908d203630202d32313437343833363438202d31203320302033203920323535202d383338383630372031372034202d3120fffe203539203539203737203320312033203920323535202d383338383630372031372034203231205e312074776f20257320776f726473203538203538202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203537202d32313437343833363438203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203536203536202d35203320302033203920323535202d383338383630372031372034202d31204142203535203535202d31203320312033203920323535202d383338383630372031372034203231202d2d2d203534202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203533203533203737203320312033203920323535202d383338383630372031372034203231204142203532203532202d35203320302033203920323535202d383338383630372031372034202d3120c3a9c3a9202f20e5908d203531202d32313437343833363438203737203320312033203920323535202d38333838363037203137203420323120fffe203530203530202d31203320302033203920323535202d383338383630372031372034202d31205e312074776f20257320776f726473203439203439203737203320312033203920323535202d3833383836303720313720342032312078787878787878787878787878787878787878787878787878787878787878203438202d32313437343833363438202d35203320302033203920323535202d383338383630372031372034202d312078787878787878787878787878787878787878787878787878787878787878203437203437203737203320312033203920323535202d383338383630372031372034203231204142203436203436202d35203320302033203920323535202d383338383630372031372034202d31202d2d2d203435202d32313437343833363438202d31203320312033203920323535202d383338383630372031372034203231202d2d2d00",
1033
+ "payload_length": 1005
1034
+ }
1035
+ }
1036
+ ],
1037
+ "source_report": "docs/research/qvm-scoreboard-wire.json",
1038
+ "source_report_sha256": "ad4efa42d46418074ac85a7f02b6e15a82339a099aa36e41318017608187d02a"
1039
+ }
scripts/analyze_rust_scoreboard_packet.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import hashlib,json
3
+ from pathlib import Path
4
+ from analyze_rust_scoreboard_rows import words
5
+ from rust_lifecycle_support import binary,result
6
+ from analyze_qvm import write_json
7
+
8
+ def client_words(clients):
9
+ out=[]
10
+ for c in clients:
11
+ name=bytes.fromhex(c.get('name_hex','4142'));out += [*words(c),c.get('flags',0),len(name),*name]
12
+ return out
13
+
14
+ def main():
15
+ b=binary();p=Path('docs/research/qvm-scoreboard-wire.json');data=p.read_bytes();rows=[]
16
+ for s in json.loads(data)['probes']:
17
+ c=s['clients'];r=result(b,'scoreboard-packet',[s['now'],*s['scores'],s['ring_before'],len(c),len(s['order']),*s['order'],*client_words(c)]);expected={'accepted':s['accepted'],'attempted':len(s['rows']),'payload_length':s['payload_length'],'cstring_hex':s['sends'][0]['cstring_hex'],'buffer_index':s['ring_before']&1,'counter':s['ring_counter'],'cached':s['final_cache']};rows.append({'source':expected,'rust':r})
18
+ write_json(Path('docs/research/rust-scoreboard-packet.json'),{'source_report':str(p),'source_report_sha256':hashlib.sha256(data).hexdigest(),'probes':rows,'limits':'Rust179363 projection/admission plus modeled byte formatter/name copy matches18 original-control-flow cases, including rejected-candidate cache mutations and ring wrap. Actual37914/native strncpy/server send parity remains unverified.'})
19
+ if __name__=='__main__':main()
scripts/test_rust_scoreboard_packet.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import hashlib,json,unittest
2
+ from pathlib import Path
3
+ class RustScoreboardPacketTests(unittest.TestCase):
4
+ def test_all_source_contract_outputs(self):
5
+ r=json.loads(Path('docs/research/rust-scoreboard-packet.json').read_text());self.assertEqual(len(r['probes']),18)
6
+ for p in r['probes']:self.assertEqual(p['rust'],p['source'])
7
+ def test_source_identity_and_overflow_coverage(self):
8
+ r=json.loads(Path('docs/research/rust-scoreboard-packet.json').read_text());self.assertEqual(hashlib.sha256(Path(r['source_report']).read_bytes()).hexdigest(),r['source_report_sha256']);self.assertTrue(any(p['rust']['attempted']>p['rust']['accepted'] for p in r['probes']))
9
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -1930,3 +1930,17 @@ report scripts/analyze_rust_scoreboard_rows.py docs/research/rust-scoreboard-row
1930
  edge docs/research/rust-scoreboard-rows.json scripts/test_rust_scoreboard_rows.py
1931
  group rust-scoreboard-rows scripts/analyze_rust_scoreboard_rows.py
1932
  edge scripts/analyze_rust_scoreboard_rows.py scripts/analyze_qvm_resumer_audit.py
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1930
  edge docs/research/rust-scoreboard-rows.json scripts/test_rust_scoreboard_rows.py
1931
  group rust-scoreboard-rows scripts/analyze_rust_scoreboard_rows.py
1932
  edge scripts/analyze_rust_scoreboard_rows.py scripts/analyze_qvm_resumer_audit.py
1933
+ edge Cargo.toml scripts/analyze_rust_scoreboard_packet.py
1934
+ edge Cargo.lock scripts/analyze_rust_scoreboard_packet.py
1935
+ edge crates/urt-gameplay/Cargo.toml scripts/analyze_rust_scoreboard_packet.py
1936
+ edge crates/urt-gameplay/src/lib.rs scripts/analyze_rust_scoreboard_packet.py
1937
+ edge crates/urt-gameplay/src/bin/urt-lifecycle.rs scripts/analyze_rust_scoreboard_packet.py
1938
+ edge crates/urt-gameplay/src/scoreboard_wire.rs scripts/analyze_rust_scoreboard_packet.py
1939
+ edge crates/urt-gameplay/src/recipient_wire.rs scripts/analyze_rust_scoreboard_packet.py
1940
+ edge crates/urt-gameplay/src/recipient_payload.rs scripts/analyze_rust_scoreboard_packet.py
1941
+ group gameplay scripts/analyze_rust_scoreboard_packet.py
1942
+ group rust-scoreboard-packet scripts/analyze_rust_health_impulse.py
1943
+ report scripts/analyze_rust_scoreboard_packet.py docs/research/rust-scoreboard-packet.json
1944
+ edge docs/research/rust-scoreboard-packet.json scripts/test_rust_scoreboard_packet.py
1945
+ group rust-scoreboard-packet scripts/analyze_rust_scoreboard_packet.py
1946
+ edge scripts/analyze_rust_scoreboard_packet.py scripts/analyze_qvm_resumer_audit.py