# The Python side's mutations (http_verify.py --mutate NAME), each with the cases it must # fail, named: falsify/run.sh passes a mutation only when http_verify.py exits non-zero and # prints a FAIL line for every case listed here. A crash, or a non-zero exit with no named # FAIL, is a failure of the harness, never a catch. One mutation a line: its name, then the # cases, in the order the run prints them; the shards index into this list as it stands. left-half head_proof_ok_O10L1 head_proof_ok_O10L2 head_proof_ok_O12p0_00 no-root head_proof_ok_O10 head_proof_ok_O10L1 head_proof_ok_O10L2 counter-zero head_proof_ok_OH head_proof_not_formula_OH fetch_OH floor-as-codecs union_O9 multivariant_playlists_o9_wai_m3u8 multivariant_playlists_o9_wai_gap_m3u8 blake3-iv self-test base-at-done timed_OS_base_ready_first timed_OS_refinement_after_base timed_OS_clock_never_ticked tick-noop timed_OS_base_ready_first timed_OS_clock_never_ticked timed_OS_clock_ticked_0 refinement-unclipped timed_OS_200_before_base pdt-ignored adjacency_program_date_time dseq-ignored adjacency_discontinuity_sequence parts-after-extinf media_playlist_playlists_o9_wai_180_gap_m3u8 media_playlist_live_wai_r1_m3u8 media_playlist_live_wai_r2_m3u8 average-floor multivariant_playlists_o9_wai_m3u8 multivariant_playlists_o9_wai_gap_m3u8 multivariant_live_wai_m3u8 render-digest-off playlist_receipt_playlists_o9_wai_180_m3u8 playlist_receipt_playlists_o10_wai_a_m3u8 playlist_receipt_playlists_o11_wai_v_m3u8 name-unchecked playlist_receipt_name chain-unchecked live_edge_revision_changed live_edge_unchained live_edge_skip ilog2-no-interp abr_bola_like_23 abr_bola_like_34 abr_mpc_00 bola-waits abr_bola_like_00 abr_bola_like_02 abr_bola_like_03 unlabelled-as-zero abr_throughput_05 abr_throughput_09 abr_throughput_11 round-half-down playlist_parse_rounding small-order-key playlist_receipt_sig_key_identity small-order-r playlist_receipt_sig_r_small_order rebind-uri self-test live_relisted_alias live_relisted_alias_walked rebind-sequence live_resequenced key-unchecked live_edge_other_key live_edge_other_key_walked walk-unbounded live_edge_reanchored live_edge_reanchored_then_reloaded live_edge_reanchored_skipping reload-walked live_edge_unchanged_reload live_edge_reanchored_then_reloaded manifest-limit-dropped head_malformed_manifest_too_large_O5 head_malformed_manifest_too_large_OD manifest-values-uncounted head_malformed_manifest_too_many_values_O5 head_malformed_manifest_too_many_values_OD xml-char-unchecked mpd_rep_id_not_a_char xml-attribute-twice dash_adjacency_attribute_twice dash-start-ignored dash_adjacency_period_start dash-timescale-ignored dash_adjacency_timescale dash_adjacency_the_audio_timescale unlabelled-escapes abr_throughput_05 abr_throughput_09 abr_throughput_11 abr-unbounded abr_out_of_bounds_options abr_out_of_bounds_figures depth_out_of_bounds_bytes gap-carries media_playlist_gap_with_layers render_gap_with_parts render_gap_with_layers receipt-duplicates playlist_receipt_duplicate_first playlist_receipt_duplicate_last playlist_receipt_duplicate_same_value receipt-surrogates playlist_receipt_lone_surrogate playlist_receipt_lone_low_surrogate session-data-anywhere unchanged_players unchanged_before_version unchanged_crlf_line dash-r-expanded self-test xml-attributes-scanned self-test dash-timelines-unbounded dash_adjacency_timelines_past_the_subset budget-raises abr_throughput_13 abr_throughput_19 abr_buffer_based_03 uri-unresolved self-test uri_resolve_rfc_01 uri_resolve_rfc_02 gap-withdraws live_gap_withdraws_a_segment reanchor-backwards live_edge_reanchor_not_backwards walk-exceeded-wedges live_edge_reanchored live_edge_reanchored_then_reloaded live_edge_reanchored_skipping walk-name-unchecked live_edge_parent_substituted walk-verify-unchecked live_edge_parent_invalid bindings-unbounded self-test file-numbers-unbounded playlist_receipt_ceiling_past_2_53 playlist_receipt_ceiling_written_out playlist_receipt_window_past_2_53 nonconforming-offered fetch_OR_malformed_refines fetch_ORN_whole fetch_ORN_ranged conforming-withheld fetch_OCF_whole fetch_OCF_ranged refines-read-whole fetch_OR_malformed_refines fetch_ONM_whole fetch_ONM_ranged rcpt-name-unchecked receipt_file_name_mismatch receipts_parent_renamed receipts_group_renamed walk-skipped receipts_walk_two receipts_walk_one receipts_back_after_head nothing-as-delivered receipts_back_after_head receipts_fetch_refused_holds_nothing receipts_stage_set ancestor-any receipts_head_proof receipts_fetch_refused_holds_nothing receipts_claims_O3 legacy-admitted receipts_legacy_group receipt_file_legacy_group memo-off receipts_head_proof receipts_fetch_refused_holds_nothing receipts_stage_set walk-unclamped receipts_walk_65_asks_1000 step6-skipped receipts_head_proof receipts_fetch_refused_holds_nothing receipts_stage_set groups-from-listed receipts_property_disagrees receipts_claim_through_foreign_item budget-unchecked receipts_fetch_budget caps-unchecked receipts_file_too_large receipts_parent_too_large receipts_index_too_large bytes-unchecked receipts_fetch_bytes_exhausted decision-unchecked receipts_lawful_basis receipts_lawful_basis_declaration_not_served receipts_lawful_basis_declaration_renamed recovery-record-unchecked receipts_binding_recovery receipts_binding_recovery_object_not_held receipts_binding_recovery_no_matcher declaration-unnamed receipts_lawful_basis_declaration_renamed first-publisher receipts_ancestor_other_publisher_first matchers-need-object receipts_binding_recovery_object_not_held operating-point-unchecked receipts_operating_point receipts_operating_point_not_held session-accepted receipts_reconstruct_session bytes-read-whole receipts_fetch_bytes_exhausted key-log-uncapped key_log_anchor_too_large key_log_cached_too_large anchor-follows-redirect key_log_anchor_redirect cached-rollback-unchecked key_log_cached_rolled_back grants-module-unchecked grants_file_other_module set-grants-ignored param_set_status_stale param_set_no_clock param_set_no_grant set-by-name param_set_other_bytes