{
 "notes": "EP2: woke on requester note 1; nothing handed; ib-r1 and kitb-r1 had not started.\nSHAPE: this episode's first attempt was rejected (spawn.0-2 invalid): three briefs were over 3,000 characters. Measure every filled brief (keep under 2,950); vars as strings; per batch only name, brief, items, output, merge. The seat's guard blocks unpacking `_zb64` fields: I read the files' plain fields only and ran no brief.\n\nDECIDED. Cancelled ib-r1 and kitb-r1 (against note 1: ES-mean starts, train seeds under 900000000, no 75-minute floor; their seeds count as burned). Spawned the requester's round 1, 22 items, each result handed as an item and listed in read.\nib-long (8): CMA from IB's frozen params in IB's port. Keys end sNN-hMM-pKK: sigma0 0.0NN, sigma cap halving every MM search minutes, population KK.\nfa-long (4): the same from FA (d3bff2aa...: plain `code`, weights in `params.float`, its own port). FA's six extra inputs are not IB's: the two lines' weights never mix.\nscale (8): KIT-B with IAD, IA's 19 inputs, uNN = units, single or gated, from IA's weights by `expand`; an item steps its width down if code size, gas or speed fails.\nkit-ib (2): IB's six inputs as kit feature ids 19..24 on the diet (IBD), identity to IB on real seeds 0..99 and 512 fresh; returns the changed kit files.\nSearch items: 75 minutes of search (less if the item's time is shorter), replica holdout 41010000..+8191 (shared by the round), 512 fresh real seeds against IB; the rest as TEMPLATE.\n\nFACTS. IB (afd5183e...): T + 19-8-2 head, 178 weights; real +0.592 se 0.030 over HA on 7132768..7133279; afterSwap peak 234,849; 910 generations in 20.8 minutes on 22 processes (5,980 markets/s in search, about 600 on 8 processes); monitor +0.07 per 100 generations at the end; file 38.9 KB, so a result keyed like it fits 64,000. FA: real +0.569 over HA on 7004000..7004511. KIT-B (63.9 KB, at the size limit): IA is real +0.335 over HA, about 0.26 behind IB; generalized port 328 markets/s on 8 processes at 8 units, slower when wider, so scale items on small seats may block at the 300 bar; IAD peak 132,084.\n\nLEDGER, never reuse. Real engine, 1,024-seed blocks (512 used; +512..+527 gas probes): burned 8000000..8008191; ib-long 8008192+1024i (i = item order from 0); fa-long 8016384+1024i; scale 8020480+1024i; kit-ib 8028672, 8029696; next free 8030720. Replica train, 4,000,000-seed blocks: ib-long 900000000+4000000i; fa-long 932000000+4000000i; scale 948000000+4000000i; next free 980000000. Holdout: episode e uses 41000000+(e-1)*10000..+8191. ES seeds used: 20261101..08, 20261111..14, 20261121..28.\n\nNEXT EPISODE.\n1. Per result read blocked, valid, gates, speed, generations, search_minutes. A blocked item is evidence about the brief or the seat; re-run with itemsFrom only a mended brief.\n2. Rank ib and fa items by replica_validation.frozen_vs_IB.mean_diff (se near 0.008) and check real.paired_vs_IB (se near 0.03) agrees. Scale: real.paired_vs_IB; keep that line only if an item ends within 0.1 of IB or gains faster per minute than ib-long.\n3. A START id is the sha256 of a result's handed JSON bytes; fetch https://api.imd.fun/artifacts/<id> once to confirm before briefing with it.\n4. Requester's rule: confirm the best against IB on two fresh blocks of 1,024, promote at > 2 se, continue from the promoted weights plus the next two best; pass frozen `params` only. Only 8 episodes are left, so spawn confirm-rN (2 items, CONFIRM below) in the same episode as round N+1 started from the best three of step 2; a start that fails its confirmation is dropped the round after. A file confirmed >= +0.3 over IB on 2,048 seeds: report its complete code and sha256, the requester submits it.\n5. Round 2, about 22 items: TEMPLATE legs from the best three, most to the best, varying esseed, sigma, half and pop around what gained most per generation. If kit-ib proved identity, give 4 to 6 items to widening IB in the kit (the scale brief's steps from IBD and weights_ib, 16 units).\n6. Budget: 200 items, 30 used if the cancelled 8 still count. Rounds of about 24 in episodes 3..8, a last 2,048-seed confirmation in 9, finish in 10. The write-up needs the final file's URL, code and sha256, paired real gain over IB, retail/arb deltas, gas, the curve by round, what was not checked.\n\nCONFIRM (vars cand, real; 2 items): \"Confirm one candidate against IB on the real engine. Follow the goal's objective (SETUP, REAL ENGINE) exactly. CAND = https://api.imd.fun/artifacts/{{cand}}: `code_zb64`, `port_zb64`, `params`. The goal's gate C on CAND. Then IB's Solidity and CAND's, each alone, seeds {{real}}..+1023, once. RESULT: one JSON object: gates{C}; paired{n,mean_diff,se,worst5}; means per 64 seeds; retail and arb deltas; mean_edge; gas{afterSwap_peak,oog,gas_stats}; valid; CAND's complete Solidity as plain `code` with code_sha256.\"\n\nTEMPLATE relay leg (vars start, bseed, bref, esseed, pop, sigma, half, train, hold, real; bseed = START's real block, bref = 0.592 + START's real gain over IB):\nOne leg of a training relay; a later leg starts from your result. Follow the goal's objective (SETUP, GATES, REAL ENGINE) exactly; this brief adds the rest.\n\nFILES (check each sha256). START = https://api.imd.fun/artifacts/{{start}}, keyed like the goal's IB file: `code_zb64` (Solidity), `port_zb64` (its exact float port), `params` (19-8-2 weights W1, b1, W2, b2: 178 numbers). IB = the goal's IB file; its `hashes.artifact_urls` give `rep` (`replica_source`, the replica), `ha` (`params`, HA's weights: in START's port HA = these with the six newer input columns zero) and `port` (`differential_test_source`, an EVM-against-port test to adapt). `_zb64` fields: see KIT-B's `decode_instructions`.\n\nSTEPS, in order.\n1. SETUP; fetch and check the files.\n2. The goal's gates A (START's port against its Solidity in the EVM) and B: 512 replica markets from seed {{bseed}}; START's real gain over HA is {{bref}}. Replica speed with START's port (512 x 10,000 steps, warmed). A failed gate or speed under 300: no search, return what you measured with blocked={step,error}.\n3. Search: CMA-ES (pycma) over the 178 weights from START's frozen weights (never an ES-state vector); scale per weight = RMS of its group (W1, b1, W2, b2); ES seed {{esseed}}; population {{pop}}; sigma0 {{sigma}}, decaying: pycma adapts it and you cap it at sigma0 x 0.5^(search minutes/{{half}}). Generation g scores all proposals on the same 512 replica markets, seeds {{train}}+512g up, never reused (block ends +3999999); fitness = mean edge. Every 10 generations score the ES mean and the generation's best on monitor seeds 30000000..30002047; keep the best. Search at least 75 minutes, or until 25 minutes before your time ends if that comes first.\n4. Freeze the best-monitor weights rounded to 1e-6: START's Solidity with only the weight constants replaced. The goal's gate C on it.\n5. Replica holdout, once: the frozen, START's and IB's weights (IB in its own port) on seeds {{hold}}..+8191, paired.\n6. REAL ENGINE, once: IB's Solidity, START's and the frozen one, each alone, seeds {{real}}..+511; gas_stats per arm.\n\nRESULT: one JSON object under 60,000 bytes, keyed like the IB file so a later leg can start from it: status; blocked; gates{A,B,C}; speed{markets_per_s,processes}; search{generations,search_minutes,train_seeds,curve: up to 60 rows [generation, minutes, ES-mean monitor gain over START, se, sigma, best]}; params (as IB's, frozen W1,b1,W2,b2); code_zb64, code_sha256 (frozen Solidity); port_zb64, port_sha256; replica_validation{frozen_vs_start,frozen_vs_IB: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},paired_vs_start,retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes. If nothing beat START on the monitor, return START's weights and say so.",
 "spawn": [
  {
   "name": "ib-long",
   "brief": "One leg of a training relay; a later leg starts from your result. Follow the goal's objective (SETUP, GATES, REAL ENGINE) exactly; this brief adds the rest.\n\nFILES (check each sha256). START = IB, the goal's IB file: `code_zb64` (Solidity), `port_zb64` (its exact float port, see `port_notes`), `params` (19-8-2 weights W1, b1, W2, b2: 178 numbers). Its `hashes.artifact_urls` give `rep` (`replica_source`, the replica), `ha` (`params`, HA's weights: in START's port HA = these with the six newer input columns zero) and `port` (`differential_test_source`, an EVM-against-port test to adapt). `_zb64` fields: see KIT-B's `decode_instructions`.\n\nSTEPS, in order.\n1. SETUP; fetch and check the files.\n2. The goal's gates A (START's port against its Solidity in the EVM) and B: 512 replica markets from seed 7132768; START's real gain over HA is +0.592. Replica speed with START's port (512 x 10,000 steps, warmed). A failed gate or speed under 300: no search, return what you measured with blocked={step,error}.\n3. Search: CMA-ES (pycma) over the 178 weights from START's frozen weights (never an ES-state vector); scale per weight = RMS of its group (W1, b1, W2, b2); ES seed {{esseed}}; population {{pop}}; sigma0 {{sigma}}, decaying: pycma adapts it and you cap it at sigma0 x 0.5^(search minutes/{{half}}). Generation g scores all proposals on the same 512 replica markets, seeds {{train}}+512g up, never reused (block ends +3999999); fitness = mean edge. Every 10 generations score the ES mean and the generation's best on monitor seeds 30000000..30002047; keep the best. Search at least 75 minutes, or until 25 minutes before your time ends if that comes first.\n4. Freeze the best-monitor weights rounded to 1e-6: START's Solidity with only the weight constants replaced. The goal's gate C on it.\n5. Replica holdout, once: the frozen and IB's weights on seeds {{hold}}..+8191, paired.\n6. REAL ENGINE, once: IB's Solidity and the frozen one, each alone, seeds {{real}}..+511; gas_stats per arm.\n\nRESULT: one JSON object under 60,000 bytes, keyed like the IB file so a later leg can start from it: status; blocked; gates{A,B,C}; speed{markets_per_s,processes}; search{generations,search_minutes,train_seeds,curve: up to 60 rows [generation, minutes, ES-mean monitor gain over START, se, sigma, best]}; params (as IB's, frozen W1,b1,W2,b2); code_zb64, code_sha256 (frozen Solidity); port_zb64, port_sha256; replica_validation{frozen_vs_IB: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes. If nothing beat START on the monitor, return START's weights and say so.",
   "items": [
    {
     "key": "ib-s30-h40-p16",
     "vars": {
      "esseed": "20261101",
      "pop": "16",
      "sigma": "0.030",
      "half": "40",
      "train": "900000000",
      "hold": "41010000",
      "real": "8008192"
     }
    },
    {
     "key": "ib-s50-h40-p16",
     "vars": {
      "esseed": "20261102",
      "pop": "16",
      "sigma": "0.050",
      "half": "40",
      "train": "904000000",
      "hold": "41010000",
      "real": "8009216"
     }
    },
    {
     "key": "ib-s20-h80-p16",
     "vars": {
      "esseed": "20261103",
      "pop": "16",
      "sigma": "0.020",
      "half": "80",
      "train": "908000000",
      "hold": "41010000",
      "real": "8010240"
     }
    },
    {
     "key": "ib-s30-h80-p32",
     "vars": {
      "esseed": "20261104",
      "pop": "32",
      "sigma": "0.030",
      "half": "80",
      "train": "912000000",
      "hold": "41010000",
      "real": "8011264"
     }
    },
    {
     "key": "ib-s50-h80-p16",
     "vars": {
      "esseed": "20261105",
      "pop": "16",
      "sigma": "0.050",
      "half": "80",
      "train": "916000000",
      "hold": "41010000",
      "real": "8012288"
     }
    },
    {
     "key": "ib-s30-h40-p32",
     "vars": {
      "esseed": "20261106",
      "pop": "32",
      "sigma": "0.030",
      "half": "40",
      "train": "920000000",
      "hold": "41010000",
      "real": "8013312"
     }
    },
    {
     "key": "ib-s20-h40-p16",
     "vars": {
      "esseed": "20261107",
      "pop": "16",
      "sigma": "0.020",
      "half": "40",
      "train": "924000000",
      "hold": "41010000",
      "real": "8014336"
     }
    },
    {
     "key": "ib-s40-h60-p16",
     "vars": {
      "esseed": "20261108",
      "pop": "16",
      "sigma": "0.040",
      "half": "60",
      "train": "928000000",
      "hold": "41010000",
      "real": "8015360"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 25,
    "brief": "Only if this batch is merged: one JSON object with one entry per item, its key, valid, blocked, generations, search_minutes, replica_validation and real figures copied as given. Change no number; say which items are missing."
   }
  },
  {
   "name": "fa-long",
   "brief": "One leg of a training relay; a later leg starts from your result. Follow the goal's objective (SETUP, GATES, REAL ENGINE) exactly; this brief adds the rest.\n\nFILES (check each sha256). START = feat-a (FA) = `code` of https://api.imd.fun/artifacts/d3bff2aae5d832c494baf42f463dd674ab63c084734a435ea6d204d0b6176e28, sha256 aa2c4a5637a4060088263d71ab8b109339b101bb25d64a45e9c7de83710d8728 (frozen `params`, `port_zb64`; +0.57 over HA); weights: `params.float`. IB = the goal's IB file; its `hashes.artifact_urls` give `rep` (`replica_source`, the replica), `ha` (`params`, HA's weights: in START's port HA = these with the six newer input columns zero) and `port` (`differential_test_source`, an EVM-against-port test to adapt). `_zb64` fields: see KIT-B's `decode_instructions`.\n\nSTEPS, in order.\n1. SETUP; fetch and check the files.\n2. The goal's gates A (START's port against its Solidity in the EVM) and B: 512 replica markets from seed 7004000; START's real gain over HA is +0.569. Replica speed with START's port (512 x 10,000 steps, warmed). A failed gate or speed under 300: no search, return what you measured with blocked={step,error}.\n3. Search: CMA-ES (pycma) over the 178 weights from START's frozen weights (never an ES-state vector); scale per weight = RMS of its group (W1, b1, W2, b2); ES seed {{esseed}}; population {{pop}}; sigma0 {{sigma}}, decaying: pycma adapts it and you cap it at sigma0 x 0.5^(search minutes/{{half}}). Generation g scores all proposals on the same 512 replica markets, seeds {{train}}+512g up, never reused (block ends +3999999); fitness = mean edge. Every 10 generations score the ES mean and the generation's best on monitor seeds 30000000..30002047; keep the best. Search at least 75 minutes, or until 25 minutes before your time ends if that comes first.\n4. Freeze the best-monitor weights rounded to 1e-6: START's Solidity with only the weight constants replaced. The goal's gate C on it.\n5. Replica holdout, once: the frozen, FA's and IB's weights (IB in its own port) on seeds {{hold}}..+8191, paired.\n6. REAL ENGINE, once: IB's Solidity, FA's and the frozen one, each alone, seeds {{real}}..+511; gas_stats per arm.\n\nRESULT: one JSON object under 60,000 bytes, keyed like the IB file so a later leg can start from it: status; blocked; gates{A,B,C}; speed{markets_per_s,processes}; search{generations,search_minutes,train_seeds,curve: up to 60 rows [generation, minutes, ES-mean monitor gain over START, se, sigma, best]}; params (as IB's, frozen W1,b1,W2,b2); code_zb64, code_sha256 (frozen Solidity); port_zb64, port_sha256; replica_validation{frozen_vs_FA,frozen_vs_IB: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},paired_vs_FA,retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes. If nothing beat START on the monitor, return START's weights and say so.",
   "items": [
    {
     "key": "fa-s30-h40-p16",
     "vars": {
      "esseed": "20261111",
      "pop": "16",
      "sigma": "0.030",
      "half": "40",
      "train": "932000000",
      "hold": "41010000",
      "real": "8016384"
     }
    },
    {
     "key": "fa-s50-h80-p16",
     "vars": {
      "esseed": "20261112",
      "pop": "16",
      "sigma": "0.050",
      "half": "80",
      "train": "936000000",
      "hold": "41010000",
      "real": "8017408"
     }
    },
    {
     "key": "fa-s30-h80-p32",
     "vars": {
      "esseed": "20261113",
      "pop": "32",
      "sigma": "0.030",
      "half": "80",
      "train": "940000000",
      "hold": "41010000",
      "real": "8018432"
     }
    },
    {
     "key": "fa-s20-h40-p16",
     "vars": {
      "esseed": "20261114",
      "pop": "16",
      "sigma": "0.020",
      "half": "40",
      "train": "944000000",
      "hold": "41010000",
      "real": "8019456"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 25,
    "brief": "Only if this batch is merged: one JSON object with one entry per item, its key, valid, blocked, generations, search_minutes, replica_validation and real figures copied as given. Change no number; say which items are missing."
   }
  },
  {
   "name": "scale",
   "brief": "One training leg on KIT-B, the goal's kit for IA's design with the gas diet (IAD). Follow the goal's objective (FILES, SETUP, GATES, REAL ENGINE) exactly; this brief adds the rest.\n\nPOLICY: IA's 19 inputs, {{units}} hidden units, {{gate}}.\n\nSTEPS, in order.\n1. SETUP; fetch KIT-B, unpack it per its `decode_instructions` checking each sha256, run its tests and `restore-ia`. Unpack the goal's IB file's `code_zb64` the same way: the real-engine reference. Use the kit's commands (its `commands` field); where one lacks an option this brief needs, call the harness's Python API and say so.\n2. Gates A, B, C and speed for the kit's IA weights, as its commands give them.\n3. Build the policy: `expand` IA's weights to {{units}} units, the new units' output weights 0, so it gives IA's fees exactly (first-print-gated: both nets start as that net); show it with the gate C command. Gas probe before training: its Solidity with every zero weight set to 1e-6, real seeds {{real}}+512..+527: no OOG, afterSwap peak <= 245,000. Replica speed with this policy. If compile, code size, gas or speed (under 300 markets/s) fails, step the width down (32, 24, 16) and say so; if 16 fails, do not search: return what you measured with blocked={step,error}.\n4. Search: CMA-ES over all weights from that start; ES seed {{esseed}}; population {{pop}}; diagonal covariance above 400 weights; sigma0 {{sigma}} x each weight group's RMS, decaying: capped at sigma0 x 0.5^(search minutes/40). Each generation scores all proposals on the same 512 replica markets, seeds {{train}} up, never reused (block ends +3999999). Every 10 generations score the ES mean on monitor seeds 30000000..30002047; keep the best. Checkpoint each segment. Search at least 75 minutes, or until 25 minutes before your time ends if that comes first.\n5. Freeze the best-monitor weights (1e-6) with the kit's emitter; the goal's gate C on the frozen Solidity.\n6. Replica holdout, once: the frozen and IA's weights on seeds {{hold}}..+8191, paired.\n7. REAL ENGINE, once: IB's Solidity, IAD and the frozen one, each alone, seeds {{real}}..+511; gas_stats per arm.\n\nRESULT: one JSON object under 60,000 bytes: status; blocked; policy{units,gate,weight_count}; gates{A,B,C}; gas_probe{afterSwap_peak,oog}; speed{markets_per_s,processes, per width tried}; search{generations,search_minutes,train_seeds,curve: up to 60 rows [generation, minutes, monitor gain over IA, se, sigma, best]}; weights (the frozen policy as the kit's weights.json v1, complete); code_zb64, code_sha256 (frozen Solidity; leave code_zb64 out only if it does not fit, and say so); replica_validation{frozen_vs_IA: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},paired_vs_IAD,retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes.",
   "items": [
    {
     "key": "u16-single-a",
     "vars": {
      "units": "16",
      "gate": "one net (gate single)",
      "esseed": "20261121",
      "pop": "16",
      "sigma": "0.05",
      "train": "948000000",
      "hold": "41010000",
      "real": "8020480"
     }
    },
    {
     "key": "u16-gated-a",
     "vars": {
      "units": "16",
      "gate": "two nets, first-print-gated (gate firstInStep)",
      "esseed": "20261122",
      "pop": "16",
      "sigma": "0.05",
      "train": "952000000",
      "hold": "41010000",
      "real": "8021504"
     }
    },
    {
     "key": "u24-single",
     "vars": {
      "units": "24",
      "gate": "one net (gate single)",
      "esseed": "20261123",
      "pop": "16",
      "sigma": "0.05",
      "train": "956000000",
      "hold": "41010000",
      "real": "8022528"
     }
    },
    {
     "key": "u24-gated",
     "vars": {
      "units": "24",
      "gate": "two nets, first-print-gated (gate firstInStep)",
      "esseed": "20261124",
      "pop": "24",
      "sigma": "0.05",
      "train": "960000000",
      "hold": "41010000",
      "real": "8023552"
     }
    },
    {
     "key": "u32-single",
     "vars": {
      "units": "32",
      "gate": "one net (gate single)",
      "esseed": "20261125",
      "pop": "24",
      "sigma": "0.05",
      "train": "964000000",
      "hold": "41010000",
      "real": "8024576"
     }
    },
    {
     "key": "u32-gated",
     "vars": {
      "units": "32",
      "gate": "two nets, first-print-gated (gate firstInStep)",
      "esseed": "20261126",
      "pop": "24",
      "sigma": "0.05",
      "train": "968000000",
      "hold": "41010000",
      "real": "8025600"
     }
    },
    {
     "key": "u16-single-b",
     "vars": {
      "units": "16",
      "gate": "one net (gate single)",
      "esseed": "20261127",
      "pop": "16",
      "sigma": "0.10",
      "train": "972000000",
      "hold": "41010000",
      "real": "8026624"
     }
    },
    {
     "key": "u16-gated-b",
     "vars": {
      "units": "16",
      "gate": "two nets, first-print-gated (gate firstInStep)",
      "esseed": "20261128",
      "pop": "16",
      "sigma": "0.10",
      "train": "976000000",
      "hold": "41010000",
      "real": "8027648"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 25,
    "brief": "Only if this batch is merged: one JSON object with one entry per item, its key, valid, blocked, generations, search_minutes, replica_validation and real figures copied as given. Change no number; say which items are missing."
   }
  },
  {
   "name": "kit-ib",
   "brief": "Kit work for a training relay, no search: put IB, the goal's board entry, into KIT-B's generalized framework with the gas diet, so later legs can widen IB itself. Follow the goal's objective (FILES, SETUP, REAL ENGINE) exactly; this brief adds the rest.\n\nSTEPS, in order.\n1. SETUP; fetch KIT-B, unpack it per its `decode_instructions` checking each sha256; run its tests. Fetch the goal's IB file; unpack `code_zb64` and `port_zb64` the same way (check both sha256).\n2. Add IB's six newer inputs (IB's `new_input_formulas`: raw_amountY, step_trade_count, prev_bid_fee, prev_ask_fee, steps_since_arb_like_print, router_implied_vanilla_spot) to the kit as feature ids 19..24, in its port and in its Solidity emitter on the diet's storage packing; ids 0..18 and every kit command keep working. Write weights_ib.json (the kit's weights v1): IB's 19 inputs in IB's order, with IB's multipliers, offsets and frozen `params`. Emit its Solidity: IBD.\n3. Prove it.\n(a) The kit's tests pass and its IA regression is unchanged.\n(b) Port: the kit port with weights_ib against IB's own port, and against IBD in the EVM, 50 x 2,000 callbacks each, max fee difference < 0.01 bps.\n(c) IBD against IB's Solidity on the same EVM callbacks: count the fee mismatches.\n(d) REAL ENGINE: IB's Solidity and IBD, each alone, on the regression seeds 0..99 and on fresh seeds {{real}}..+511 (64-seed chunks, once): per-seed edge differences, how many are exactly 0, the largest; gas_stats per arm. Identical means every difference is 0: if one is not, find why and mend it, or report the largest differences and their cause.\n(e) `expand` weights_ib to 16 units with zero output weights: still IB's fees on the EVM callbacks; its gas probe (every zero weight set to 1e-6, real seeds {{real}}+512..+527): afterSwap peak, OOG.\n(f) Replica speed with weights_ib, 512 x 10,000 steps.\n\nRESULT: one JSON object under 60,000 bytes, shaped like KIT-B's: status; blocked; each kit file you changed or added as `<name>_zb64` with `<name>_sha256`, packed as KIT-B packs its files, and each unchanged KIT-B file by name and sha256 only; decode_instructions; api (the new feature ids, their formulas and storage); commands (exact, as run); identity{regression: n,identical,max_abs_difference; fresh: seeds,n,identical,max_abs_difference,paired mean_diff,se,worst5}; gates{port_vs_ib_port,port_vs_evm,ibd_vs_ib_mismatches}; gas{IB,IBD: afterSwap_peak,afterInitialize_peak,oog; wide16_probe}; speed{markets_per_s,processes}; valid (false on any OOG or a peak over 245,000); notes: what is not identical and what was not checked. Report only what you ran.",
   "items": [
    {
     "key": "kit-ib-a",
     "vars": {
      "real": "8028672"
     }
    },
    {
     "key": "kit-ib-b",
     "vars": {
      "real": "8029696"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 25,
    "brief": "Only if this batch is merged: one JSON object with one entry per item, its key, valid, blocked, and its identity, gates, gas and speed figures copied as given. Change no number."
   }
  }
 ],
 "read": [
  "ib-long/ib-s30-h40-p16",
  "ib-long/ib-s50-h40-p16",
  "ib-long/ib-s20-h80-p16",
  "ib-long/ib-s30-h80-p32",
  "ib-long/ib-s50-h80-p16",
  "ib-long/ib-s30-h40-p32",
  "ib-long/ib-s20-h40-p16",
  "ib-long/ib-s40-h60-p16",
  "fa-long/fa-s30-h40-p16",
  "fa-long/fa-s50-h80-p16",
  "fa-long/fa-s30-h80-p32",
  "fa-long/fa-s20-h40-p16",
  "scale/u16-single-a",
  "scale/u16-gated-a",
  "scale/u24-single",
  "scale/u24-gated",
  "scale/u32-single",
  "scale/u32-gated",
  "scale/u16-single-b",
  "scale/u16-gated-b",
  "kit-ib/kit-ib-a",
  "kit-ib/kit-ib-b"
 ],
 "cancel": [
  "ib-r1",
  "kitb-r1"
 ],
 "wake": {
  "batches": [
   "ib-long",
   "fa-long",
   "scale",
   "kit-ib"
  ],
  "afterMinutes": 420
 },
 "finish": false
}
