{"abstract":"Multiple denied branch roots are incompletely applied produces the wrong hierarchical widget state in a regression fixture.","category":"Tree accessibility","checks":6,"contract":"Denied branches suppress descendants even when descendants grant access. A denied branch itself may remain a nonselectable redacted row if a summary is allowed. Metadata counts exposed siblings only, and active focus never references a redacted row.","evaluation_group":"s3-tree-permission-pruning","failed_approach":"The partial repair `denied=set(d['summaries'])` still violates a boundary or preservation case.","family":"s3-tree_accessibility-permission-pruning-10","id":"FA-38886","implementations":{"attempt":{"sha256":"ac27a44886fa9cf858f5a9e59bd4f42a66fa7a6fc823325d27871144f2e95e94","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    denied=set(d['summaries'])\n    blocked={x for x in d['rows'] if any(a in denied for a in d['ancestors'].get(x,[]))}\n    redacted={x for x in denied if x in d['summaries'] and x not in blocked}\n    exposed=[x for x in d['rows'] if x not in blocked and (x not in denied or x in redacted)]\n    selectable=[x for x in exposed if x not in redacted]\n    selected=[x for x in d['selected'] if x in selectable]\n    expanded=[x for x in d['expanded'] if x in selectable and x in d['branches']]\n    labels={x:('Restricted branch' if x in redacted else d['labels'][x]) for x in exposed}\n    focus=d['focus'] if d['focus'] in selectable else (selectable[0] if selectable else None)\n    counts={x:sum(d['parents'].get(y)==d['parents'].get(x) for y in exposed) for x in exposed}\n    return [exposed,selected,expanded,labels,focus,counts]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 's', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 's', 'v0'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 's': 3, 'v0': 3}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['r', 'q', 's', 'v0'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'a', {'r': 4, 'a': 1, 'b': 1, 'c': 1, 'q': 4, 's': 4, 'v0': 4}])], 2: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 's', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 's': 4, 'v0': 4, 'v1': 4}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['r', 'q', 's', 'v0', 'v1'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'a', {'r': 5, 'a': 1, 'b': 1, 'c': 1, 'q': 5, 's': 5, 'v0': 5, 'v1': 5}])], 3: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 's', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'a', {'r': 6, 'a': 1, 'b': 1, 'c': 1, 'q': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6}])], 4: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 's', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'a', {'r': 7, 'a': 1, 'b': 1, 'c': 1, 'q': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7}])], 5: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 's', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'a', {'r': 8, 'a': 1, 'b': 1, 'c': 1, 'q': 8, 's': 8, 'v0': 8, 'v1': 8, 'v2': 8, 'v3': 8, 'v4': 8}])]}\nfor label, data, expected in cases[N]:\n    check(label, solve(data), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"6ab5def3c224d9d6a9127a150d54999008f641cd38c2809956cda4cb80e698a2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    denied=set(d['denied'][:1])\n    blocked={x for x in d['rows'] if any(a in denied for a in d['ancestors'].get(x,[]))}\n    redacted={x for x in denied if x in d['summaries'] and x not in blocked}\n    exposed=[x for x in d['rows'] if x not in blocked and (x not in denied or x in redacted)]\n    selectable=[x for x in exposed if x not in redacted]\n    selected=[x for x in d['selected'] if x in selectable]\n    expanded=[x for x in d['expanded'] if x in selectable and x in d['branches']]\n    labels={x:('Restricted branch' if x in redacted else d['labels'][x]) for x in exposed}\n    focus=d['focus'] if d['focus'] in selectable else (selectable[0] if selectable else None)\n    counts={x:sum(d['parents'].get(y)==d['parents'].get(x) for y in exposed) for x in exposed}\n    return [exposed,selected,expanded,labels,focus,counts]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 's', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 's', 'v0'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 's': 3, 'v0': 3}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['r', 'q', 's', 'v0'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'a', {'r': 4, 'a': 1, 'b': 1, 'c': 1, 'q': 4, 's': 4, 'v0': 4}])], 2: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 's', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 's': 4, 'v0': 4, 'v1': 4}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['r', 'q', 's', 'v0', 'v1'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'a', {'r': 5, 'a': 1, 'b': 1, 'c': 1, 'q': 5, 's': 5, 'v0': 5, 'v1': 5}])], 3: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 's', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'a', {'r': 6, 'a': 1, 'b': 1, 'c': 1, 'q': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6}])], 4: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 's', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'a', {'r': 7, 'a': 1, 'b': 1, 'c': 1, 'q': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7}])], 5: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 's', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'a', {'r': 8, 'a': 1, 'b': 1, 'c': 1, 'q': 8, 's': 8, 'v0': 8, 'v1': 8, 'v2': 8, 'v3': 8, 'v4': 8}])]}\nfor label, data, expected in cases[N]:\n    check(label, solve(data), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"3920e22ae047620d1a8c26edb1f4d8fc8b3cd430cc06d4d2853f1369d10e4234","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    denied=set(d['denied'])\n    blocked={x for x in d['rows'] if any(a in denied for a in d['ancestors'].get(x,[]))}\n    redacted={x for x in denied if x in d['summaries'] and x not in blocked}\n    exposed=[x for x in d['rows'] if x not in blocked and (x not in denied or x in redacted)]\n    selectable=[x for x in exposed if x not in redacted]\n    selected=[x for x in d['selected'] if x in selectable]\n    expanded=[x for x in d['expanded'] if x in selectable and x in d['branches']]\n    labels={x:('Restricted branch' if x in redacted else d['labels'][x]) for x in exposed}\n    focus=d['focus'] if d['focus'] in selectable else (selectable[0] if selectable else None)\n    counts={x:sum(d['parents'].get(y)==d['parents'].get(x) for y in exposed) for x in exposed}\n    return [exposed,selected,expanded,labels,focus,counts]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 's', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 'a': 1, 's': 3, 'v0': 3}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 's', 'v0'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private'}, 'r', {'r': 3, 's': 3, 'v0': 3}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': ['r', 'q', 's', 'v0'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private'}, 'a', {'r': 4, 'a': 1, 'b': 1, 'c': 1, 'q': 4, 's': 4, 'v0': 4}])], 2: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 's', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 'a': 1, 's': 4, 'v0': 4, 'v1': 4}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'r', {'r': 4, 's': 4, 'v0': 4, 'v1': 4}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': ['r', 'q', 's', 'v0', 'v1'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private'}, 'a', {'r': 5, 'a': 1, 'b': 1, 'c': 1, 'q': 5, 's': 5, 'v0': 5, 'v1': 5}])], 3: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 's', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 'a': 1, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'r', {'r': 5, 's': 5, 'v0': 5, 'v1': 5, 'v2': 5}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private'}, 'a', {'r': 6, 'a': 1, 'b': 1, 'c': 1, 'q': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6}])], 4: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 's', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 'a': 1, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'r', {'r': 6, 's': 6, 'v0': 6, 'v1': 6, 'v2': 6, 'v3': 6}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private'}, 'a', {'r': 7, 'a': 1, 'b': 1, 'c': 1, 'q': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7}])], 5: [('redaction', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('visible focus', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 's'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 's', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('denied descendant', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'b', 'q'], 'summaries': ['a', 'b'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 'a': 'Restricted branch', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 'a': 1, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('no summary', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['a', 'q'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['s'], [], {'r': 'r private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'r', {'r': 7, 's': 7, 'v0': 7, 'v1': 7, 'v2': 7, 'v3': 7, 'v4': 7}]), ('all roots denied', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': ['r', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'summaries': [], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [[], [], [], {}, None, {}]), ('permission restored', {'rows': ['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], 'denied': [], 'summaries': ['a'], 'ancestors': {'a': ['r'], 'b': ['r', 'a'], 'c': ['r', 'a', 'b']}, 'parents': {'r': None, 'a': 'r', 'b': 'a', 'c': 'b', 'q': None, 's': None}, 'selected': ['a', 'c', 's'], 'expanded': ['a', 's'], 'branches': ['r', 'a', 'b'], 'labels': {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'focus': 'a'}, [['r', 'a', 'b', 'c', 'q', 's', 'v0', 'v1', 'v2', 'v3', 'v4'], ['a', 'c', 's'], ['a'], {'r': 'r private', 'a': 'a private', 'b': 'b private', 'c': 'c private', 'q': 'q private', 's': 's private', 'v0': 'v0 private', 'v1': 'v1 private', 'v2': 'v2 private', 'v3': 'v3 private', 'v4': 'v4 private'}, 'a', {'r': 8, 'a': 1, 'b': 1, 'c': 1, 'q': 8, 's': 8, 'v0': 8, 'v1': 8, 'v2': 8, 'v3': 8, 'v4': 8}])]}\nfor label, data, expected in cases[N]:\n    check(label, solve(data), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Synthetic deterministic hierarchical-widget data contract; not an implementation of a browser accessibility tree. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-tree_accessibility-permission-pruning-10","generated_at":"2026-09-29T14:43:15.772787+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline executable model of a hierarchical accessibility interaction; inputs are bounded and valid as stipulated. No browser, assistive technology, or normative ARIA conformance is claimed.","repair":"Restore `denied=set(d['denied'])` at this fault site while retaining the other tree state decisions.","root_cause":"The permission-pruning contract is violated at `denied=set(d['denied'])` by replacing it with `denied=set(d['denied'][:1])`.","sha256":"e218c03e8fc3e89a331be266697345d9efaf17b1b2e844c3c8e658b88778a366","title":"Permission-aware tree branch projection: Multiple denied branch roots are incompletely applied · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.128,"exit_code":1,"observations":[{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"redaction","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"visible focus","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"denied descendant","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"check":"no summary","expected":[["r","s","v0"],["s"],[],{"r":"r private","s":"s private","v0":"v0 private"},"r",{"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"check":"all roots denied","expected":[[],[],[],{},null,{}],"passed":false},{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"permission restored","expected":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"redaction\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"visible focus\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"denied descendant\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"no summary\", \"actual\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"all roots denied\", \"actual\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[], [], [], {}, null, {}], \"passed\": false}, {\"check\": \"permission restored\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.441,"exit_code":1,"observations":[{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"redaction","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"visible focus","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","a","q","s","v0"],["s"],[],{"a":"Restricted branch","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"q":4,"r":4,"s":4,"v0":4}],"check":"denied descendant","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["r","q","s","v0"],["s"],[],{"q":"q private","r":"r private","s":"s private","v0":"v0 private"},"r",{"q":4,"r":4,"s":4,"v0":4}],"check":"no summary","expected":[["r","s","v0"],["s"],[],{"r":"r private","s":"s private","v0":"v0 private"},"r",{"r":3,"s":3,"v0":3}],"passed":false},{"actual":[["q","s","v0"],["s"],[],{"q":"q private","s":"s private","v0":"v0 private"},"q",{"q":3,"s":3,"v0":3}],"check":"all roots denied","expected":[[],[],[],{},null,{}],"passed":false},{"actual":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"check":"permission restored","expected":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"redaction\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"visible focus\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"denied descendant\", \"actual\": [[\"r\", \"a\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"a\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"no summary\", \"actual\": [[\"r\", \"q\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 4, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"s\": 3, \"v0\": 3}], \"passed\": false}, {\"check\": \"all roots denied\", \"actual\": [[\"q\", \"s\", \"v0\"], [\"s\"], [], {\"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"q\", {\"q\": 3, \"s\": 3, \"v0\": 3}], \"expected\": [[], [], [], {}, null, {}], \"passed\": false}, {\"check\": \"permission restored\", \"actual\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":48.35,"exit_code":0,"observations":[{"actual":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"check":"redaction","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":true},{"actual":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"r":3,"s":3,"v0":3}],"check":"visible focus","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"s",{"a":1,"r":3,"s":3,"v0":3}],"passed":true},{"actual":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"check":"denied descendant","expected":[["r","a","s","v0"],["s"],[],{"a":"Restricted branch","r":"r private","s":"s private","v0":"v0 private"},"r",{"a":1,"r":3,"s":3,"v0":3}],"passed":true},{"actual":[["r","s","v0"],["s"],[],{"r":"r private","s":"s private","v0":"v0 private"},"r",{"r":3,"s":3,"v0":3}],"check":"no summary","expected":[["r","s","v0"],["s"],[],{"r":"r private","s":"s private","v0":"v0 private"},"r",{"r":3,"s":3,"v0":3}],"passed":true},{"actual":[[],[],[],{},null,{}],"check":"all roots denied","expected":[[],[],[],{},null,{}],"passed":true},{"actual":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"check":"permission restored","expected":[["r","a","b","c","q","s","v0"],["a","c","s"],["a"],{"a":"a private","b":"b private","c":"c private","q":"q private","r":"r private","s":"s private","v0":"v0 private"},"a",{"a":1,"b":1,"c":1,"q":4,"r":4,"s":4,"v0":4}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"redaction\", \"actual\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": true}, {\"check\": \"visible focus\", \"actual\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"s\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": true}, {\"check\": \"denied descendant\", \"actual\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"expected\": [[\"r\", \"a\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"a\": \"Restricted branch\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"a\": 1, \"s\": 3, \"v0\": 3}], \"passed\": true}, {\"check\": \"no summary\", \"actual\": [[\"r\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"s\": 3, \"v0\": 3}], \"expected\": [[\"r\", \"s\", \"v0\"], [\"s\"], [], {\"r\": \"r private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"r\", {\"r\": 3, \"s\": 3, \"v0\": 3}], \"passed\": true}, {\"check\": \"all roots denied\", \"actual\": [[], [], [], {}, null, {}], \"expected\": [[], [], [], {}, null, {}], \"passed\": true}, {\"check\": \"permission restored\", \"actual\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"expected\": [[\"r\", \"a\", \"b\", \"c\", \"q\", \"s\", \"v0\"], [\"a\", \"c\", \"s\"], [\"a\"], {\"r\": \"r private\", \"a\": \"a private\", \"b\": \"b private\", \"c\": \"c private\", \"q\": \"q private\", \"s\": \"s private\", \"v0\": \"v0 private\"}, \"a\", {\"r\": 4, \"a\": 1, \"b\": 1, \"c\": 1, \"q\": 4, \"s\": 4, \"v0\": 4}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}