<mxfile host="Electron" agent="tepp-omega-visual" version="29.3.0">
  <diagram name="Output evaluation: may the subject sign this?" id="12-output">
    <mxGraphModel dx="1600" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1860" pageHeight="1100" background="#ffffff" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="12-2" value='&lt;font style="font-size:30px"&gt;&lt;b&gt;Output evaluation: may the subject sign this?&lt;/b&gt;&lt;/font&gt;' style="text;html=1;align=left;verticalAlign=middle;fontColor=#1f2933;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="24" width="1780" height="44" as="geometry" /></mxCell>
        <mxCell id="12-3" value="&lt;font style=&quot;font-size:17px&quot; color=&quot;#52606d&quot;&gt;At the subject's signer, in a fixed order; the first failure decides. What the subject names must resolve and be covered, and nothing denied that the sweep reaches may be amplified.&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="68" width="1780" height="30" as="geometry" /></mxCell>
        <mxCell id="12-4" value='&lt;font style="font-size:12px" color="#52606d"&gt;Inputs: the construct snapshot · the unsigned request · the instant · the destination set the client supplies · for encrypted requests, optionally a disclosure of the counterparty&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="118" width="1780" height="26" as="geometry" /></mxCell>
        <mxCell id="12-5" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;Sanity&lt;/b&gt;&lt;/font&gt;&lt;br&gt;The request is under the subject's own key — or it is refused outright, with no verdict." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="54" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-6" value="&lt;b&gt;1&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-7" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Reduction&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Encrypted? Establish the counterparty, recover the surface. It must reduce.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="308" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-8" value="&lt;b&gt;2&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="294" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-9" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;The gate&lt;/b&gt;&lt;/font&gt;&lt;br&gt;The global set for output, at every kind; the layer-0 deny check, relay tags included.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="562" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-10" value="&lt;b&gt;3&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="548" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-11" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;The deny sweep&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Fetch what it references, then what those reference — any deny reached denies.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="816" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-12" value="&lt;b&gt;4&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="802" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-13" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;Coverage&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Every element covered by a non-void interact entry — or by the subject's own authorship." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="1070" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-14" value="&lt;b&gt;5&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="1056" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-15" value="&lt;font style=&quot;font-size:16px&quot;&gt;&lt;b&gt;The one edit&lt;/b&gt;&lt;/font&gt;&lt;br&gt;If a demanding allow entry matched: append NIP-70's [&quot;-&quot;] tag. Never denies." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="1324" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-16" value="&lt;b&gt;6&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="1310" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-17" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Destinations&lt;/b&gt;&lt;/font&gt;&lt;br&gt;No denied relay; within the relay whitelist where one is active.' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;fontSize=13.5;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=10;arcSize=8;absoluteArcSize=1;spacingLeft=30;" vertex="1" parent="1"><mxGeometry x="1578" y="158" width="222" height="140" as="geometry" /></mxCell>
        <mxCell id="12-18" value="&lt;b&gt;7&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d79b00;strokeColor=none;fontColor=#ffffff;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="1564" y="144" width="34" height="34" as="geometry" /></mxCell>
        <mxCell id="12-19" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-5" target="12-7"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-7" target="12-9"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-9" target="12-11"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-11" target="12-13"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-23" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-13" target="12-15"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-24" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-15" target="12-17"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-25" value='&lt;b&gt;REFUSED&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;no verdict · transport error&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="62" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-26" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#4d4d4d;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-5" target="12-25"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-27" value='&lt;b&gt;DENY&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;opaque · unverifiable&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="316" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-28" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-7" target="12-27"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-29" value='&lt;b&gt;DENY&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;global · blocklist&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="570" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-30" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-9" target="12-29"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-31" value='&lt;b&gt;DENY&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;blocklist · global · unresolved&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="824" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-32" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-11" target="12-31"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-33" value='&lt;b&gt;DENY&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;unmatched — names the element&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="1078" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-34" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-13" target="12-33"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-35" value='&lt;b&gt;DENY&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;destination&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="1586" y="344" width="206" height="56" as="geometry" /></mxCell>
        <mxCell id="12-36" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#b85450;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-17" target="12-35"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="12-37" value='&lt;b&gt;PERMIT&lt;/b&gt;&lt;br&gt;&lt;font style="font-size:12px"&gt;signed · trace layer covered&lt;/font&gt;' style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;" vertex="1" parent="1"><mxGeometry x="1324" y="344" width="222" height="56" as="geometry" /></mxCell>
        <mxCell id="12-38" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;strokeWidth=2;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;endSize=7;startArrow=none;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12-17" target="12-37"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1633.5" y="372" /></Array></mxGeometry></mxCell>
        <mxCell id="12-39" value='&lt;font style="font-size:12px" color="#52606d"&gt;A kind-17710 request is checked, right after sanity, for being a ratification of an offer; one that is not is deny · unmatched · no-offer.&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="54" y="406" width="470" height="50" as="geometry" /></mxCell>
        <mxCell id="12-40" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;What must be covered&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="40" y="490" width="600" height="320" as="geometry" /></mxCell>
        <mxCell id="12-41" value="&lt;b&gt;A person it names&lt;/b&gt; — a &lt;font face=&quot;Courier New&quot;&gt;p&lt;/font&gt; or &lt;font face=&quot;Courier New&quot;&gt;P&lt;/font&gt; tag, an npub in the text, the counterparty of a private message: an interact grant on that npub.&lt;br&gt;&lt;b&gt;An event it references&lt;/b&gt; — &lt;font face=&quot;Courier New&quot;&gt;e&lt;/font&gt;, &lt;font face=&quot;Courier New&quot;&gt;q&lt;/font&gt;, &lt;font face=&quot;Courier New&quot;&gt;a&lt;/font&gt;, a note or address in the text: an interact grant on that exact event, or on its author, or the event is the subject's own.&lt;br&gt;&lt;br&gt;• A view grant never covers anything on output.&lt;br&gt;• Every guardian is covered by being a guardian.&lt;br&gt;• A ratified offer covers the guardians it names, for that one act.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;The subject's own key is never an element; a request that names nothing is covered vacuously.&lt;/font&gt;" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="12-40"><mxGeometry x="10" y="40" width="580" height="274" as="geometry" /></mxCell>
        <mxCell id="12-42" value='&lt;font style="font-size:17px"&gt;&lt;b&gt;Example: the subject replies in a thread&lt;/b&gt;&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=15;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="670" y="490" width="700" height="30" as="geometry" /></mxCell>
        <mxCell id="12-43" value="element of a reply" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=14;fontStyle=1;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="670" y="530" width="330" height="36" as="geometry" /></mxCell>
        <mxCell id="12-44" value="covered by" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=14;fontStyle=1;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1000" y="530" width="330" height="36" as="geometry" /></mxCell>
        <mxCell id="12-45" value="here" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=14;fontStyle=1;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1330" y="530" width="60" height="36" as="geometry" /></mxCell>
        <mxCell id="12-46" value="F's note (e tag)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="670" y="566" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-47" value="interact/npub on its author F" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1000" y="566" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-48" value="✓" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1330" y="566" width="60" height="40" as="geometry" /></mxCell>
        <mxCell id="12-49" value="F (p tag)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="670" y="606" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-50" value="interact/npub on F" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1000" y="606" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-51" value="✓" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1330" y="606" width="60" height="40" as="geometry" /></mxCell>
        <mxCell id="12-52" value="X (p tag, a stranger in the thread)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="670" y="646" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-53" value="nothing" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1000" y="646" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-54" value="✗" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1330" y="646" width="60" height="40" as="geometry" /></mxCell>
        <mxCell id="12-55" value="npub1…Y in the text" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="670" y="686" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-56" value="interact/npub on Y" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1000" y="686" width="330" height="40" as="geometry" /></mxCell>
        <mxCell id="12-57" value="✓" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d1d9;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;align=left;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1330" y="686" width="60" height="40" as="geometry" /></mxCell>
        <mxCell id="12-58" value="&lt;b&gt;deny · unmatched&lt;/b&gt; — naming X. The subject can ask a guardian for a grant on X, or send a reply that does not name X." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="670" y="740" width="720" height="70" as="geometry" /></mxCell>
        <mxCell id="12-59" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Why so strict?&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#ffffff;strokeColor=#4d4d4d;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="1410" y="490" width="410" height="320" as="geometry" /></mxCell>
        <mxCell id="12-60" value="A tag in a signed event is an act: clients notify everyone tagged, and relays index it.&lt;br&gt;&lt;br&gt;So the subject answers for every element under its signature — and never amplifies denied material the sweep reaches, by default up to 16 references deep.&lt;br&gt;&lt;br&gt;Encrypted or not makes no difference: a private message needs exactly what a public mention needs — a household can only narrow that, by restriction." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="12-59"><mxGeometry x="10" y="40" width="390" height="274" as="geometry" /></mxCell>
        <mxCell id="12-61" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;The deny sweep&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="40" y="840" width="590" height="200" as="geometry" /></mxCell>
        <mxCell id="12-62" value="Follows references recursively — by default up to depth 16 — deny-checking every event it reaches.&lt;br&gt;&lt;b&gt;Layer 0 is fatal: &lt;/b&gt;what the subject itself names must resolve and verify in time — or nothing is signed (unresolved).&lt;br&gt;&lt;b&gt;Beyond layer 0: &lt;/b&gt;a branch that cannot be followed is pruned and reported as sweep-incomplete. A deny hiding there goes unseen — a stated limit." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="12-61"><mxGeometry x="10" y="40" width="570" height="154" as="geometry" /></mxCell>
        <mxCell id="12-63" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;The one edit: ["-"]&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="650" y="840" width="590" height="200" as="geometry" /></mxCell>
        <mxCell id="12-64" value="If a matching allow entry carries &lt;font face=&quot;Courier New&quot;&gt;rebroadcast: &quot;deny&quot;&lt;/font&gt;, the signer appends NIP-70's &lt;font face=&quot;Courier New&quot;&gt;[&quot;-&quot;]&lt;/font&gt; and signs that — the only change it ever makes, and it is traced.&lt;br&gt;Never on an envelope such as a seal, never on TEPP's own kinds.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;The returned event is authoritative: a client publishes it verbatim. Protection holds only on relays that implement NIP-70; everywhere the post stays public.&lt;/font&gt;" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="12-63"><mxGeometry x="10" y="40" width="570" height="154" as="geometry" /></mxCell>
        <mxCell id="12-65" value='&lt;font style="font-size:16px"&gt;&lt;b&gt;Destinations and monitor copies&lt;/b&gt;&lt;/font&gt;' style="swimlane;html=1;startSize=34;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1.5;swimlaneFillColor=#ffffff;rounded=1;arcSize=8;absoluteArcSize=1;fontFamily=Helvetica;fontColor=#1f2933;align=center;verticalAlign=middle;collapsible=0;" vertex="1" parent="1"><mxGeometry x="1260" y="840" width="560" height="200" as="geometry" /></mxCell>
        <mxCell id="12-66" value="Never a denied relay, whatever the label.&lt;br&gt;Once any direct interact/relay grant exists, every destination the client supplies must be a member relay — a covered recipient's declared inbox still passes. With no destination set at all, the check is reported as unenforced.&lt;br&gt;On permit, the covering entries' &lt;font face=&quot;Courier New&quot;&gt;interactionRelays&lt;/font&gt; join the destinations and their &lt;font face=&quot;Courier New&quot;&gt;monitorRelays&lt;/font&gt; receive a copy of the signed event." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=14;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="12-65"><mxGeometry x="10" y="40" width="540" height="154" as="geometry" /></mxCell>
        <mxCell id="12-67" value="" style="endArrow=none;html=1;strokeColor=#d9dee4;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="1052" as="sourcePoint" /><mxPoint x="1820" y="1052" as="targetPoint" /></mxGeometry></mxCell>
        <mxCell id="12-68" value='&lt;font color="#52606d"&gt;TEPP Zeta · diagram 12 · statements: OUT-001–OUT-072, SURF-045–SURF-050, CERE-002, CERE-032, OPQ-089–OPQ-099, OPQ-119, RBC-001–RBC-014, ORD-030, CAPS-013, NF-082&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=middle;fontSize=12;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="1060" width="1780" height="26" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
