# live-conformance/audience — audience decisions and territories The corpus of [`extensions/audience-decision.md`](../../extensions/audience-decision.md) §8, in one file, `vectors.json`. **Provenance.** Generated here by `wai_audience_decision_vectors gen` (`wai-rs`, feature `audience_decision`), from Ed25519 keys on seeds of one byte repeated 32 times and constant instants; no input from outside this repository. Every region is an ISO 3166-1 user-assigned code (`XA`, `XB`, …) or a subdivision of one, and names no place. `keys` names every key by its role, as 64 lowercase hexadecimal digits: the decider and another, the publishers of the territory statements, the servers the placements place (`server_c1`, active with `cache/serve`; `server_c2`, in no log; `server_c3`, revoked; `server_c8`, listed with `delivery-gap` alone), the operator's key log root, and `small_order`, the identity point. - `aggregations` (§4.3) are each `blackouts` and a session's `location` (a region code or `null`); `outcome` is the evidence it aggregates to, `region` and `resolved`. - `decisions` (§4.4 to §4.6) are each a decision's `text`; `outcome` is `read`, with its `digest`, `verdict`, `applied` and `alternate`, or `refuse` and its `reason`. - `classes` (§4.7) are each a `decision`'s text and a session `class` (http-delivery Appendix H); `outcome` is `consistent` with the class's `session_class_hash`, or `refuse` with its `reason` and, for `audience_class_mismatch`, the `member` that differs. - `statements` (§5.2, §5.3) are each a territory statement's `text`; `outcome` is `read`, with its `digest`, `publisher` and `show`, or `refuse` and its `reason`. - `territories` (§5.4, §5.5) are each `texts`, a `publisher`, the receivers' `region` (or `null`) and the instant `at_us`; `outcome.territory` is the territory as §5.5 writes it. - `placements` (§5.6) are each a server `key`, an instant `at_ms`, the `heads` by origin, a `publisher`, a `region` and `texts`; `outcome` is the `placement` as cache-authority §4.4 writes it and the `territory` beside it. Everything is synthetic: keys attest nothing. Each case states the outcome it was written to have, declared in the generator and never copied from a verifier. `wai_audience_decision_vectors verify` and `tests/audience_decision.rs` check that the file regenerates byte for byte and that `wai-rs` reaches every stated outcome. `../audience_decision_verify.py` is the second implementation, written from the extension's text, which also mutates copies of the corpus and drops each of its own checks in turn and requires each to be caught.