blog-contributions/graphs/lantern.drawio
2025-03-29 09:16:20 +01:00

380 lines
45 KiB
Text

<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/25.0.2 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="25.0.2">
<diagram name="Page-1" id="AROqC8fMQaNWye3_sZ_R">
<mxGraphModel dx="3970" dy="1683" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="LnSmRKnKzvJv8pziYg2E-1" value="Darknet Lantern&lt;div&gt;Project Architecture&lt;/div&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;" parent="1" vertex="1">
<mxGeometry x="-789" y="430" width="120" height="44" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-2" value="nginx web server&lt;br&gt;(listening&amp;nbsp;for lantern.nowherejez...onion &lt;br&gt;requests on 127.0.0.1:4443)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="-643" y="356" width="219" height="45" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-3" value="www" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="-565" y="439" width="63" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-4" value="Tor hidden service&lt;br&gt;lantern.nowherejez...onion:80&lt;br&gt;127.0.0.1:4443" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="-625" y="306" width="183" height="44" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-5" value="Tor" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="-562.5" y="275" width="58" height="24" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.502;entryY=-0.025;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-2" target="LnSmRKnKzvJv8pziYg2E-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-8" value="index.php" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="-442" y="439" width="63" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-9" value="?query=yoursearchquery" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="-372" y="439" width="137" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-10" value="&amp;amp;sensitive=1" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="-232" y="439" width="77" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-11" value="static.php" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="-442" y="471" width="63" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-12" value="participants/" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="-442" y="505" width="71" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-13" value="lantern.nowherejez...onion" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="-321" y="505" width="147" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-14" value="lantern.nowhevi57f...onion" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="-321" y="536" width="147" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-15" value="verified.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#d80073;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="-125" y="505" width="87" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-16" value="unverified.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#d80073;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="-125" y="536" width="87" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.004;entryY=0.502;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-15" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.006;entryY=0.472;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-19" value="sensitive.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#d80073;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="-125" y="598" width="87" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-20" value="blacklist.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#d80073;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="-125" y="629" width="87" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-21" value="webring-participants.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#d80073;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="-125" y="567" width="139" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.007;entryY=0.469;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-21" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.009;entryY=0.535;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.006;entryY=0.444;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-20" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.035;entryY=0.508;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-3" target="LnSmRKnKzvJv8pziYg2E-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.457;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-3" target="LnSmRKnKzvJv8pziYg2E-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.015;entryY=0.425;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-3" target="LnSmRKnKzvJv8pziYg2E-12" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-472" y="452" />
<mxPoint x="-472" y="516" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.001;entryY=0.509;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-12" target="LnSmRKnKzvJv8pziYg2E-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.003;entryY=0.528;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-12" target="LnSmRKnKzvJv8pziYg2E-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-31" value="&lt;div&gt;&lt;b&gt;&lt;u&gt;lantern.py&lt;/u&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;1) Add a new Website entry (into unverified.csv)&lt;/div&gt;&lt;div&gt;&amp;nbsp;2) Trust a Website entry (move an entry from unverified to verified.csv)&lt;/div&gt;&lt;div&gt;&amp;nbsp;3) Untrust a Website entry (move an entry from unverified to verified.csv)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;4) Synchronize new links from existing webring participants, into your unverified.csv file&lt;/div&gt;&lt;div&gt;&amp;nbsp;5) Add a new webring participant (and download their files into their directory (without trusting them yet!))&lt;/div&gt;&lt;div&gt;&amp;nbsp;6) Trust/UnTrust/Blacklist a webring participant (Potentially dangerous)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;7) Add/Remove Words/URLs in the sensitive list (ex: drug)&lt;/div&gt;&lt;div&gt;&amp;nbsp;8) Add/Remove Words/URLs or links in the blacklist (ex: porn)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;9) Remove the duplicate URLs for your own instance&lt;/div&gt;&lt;div&gt;&amp;nbsp;10) Perform sanity checks on all csv files for all instances &lt;br&gt;(to mark them as sensitive / or remove the ones that are blacklisted)&lt;/div&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=left;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="-462" y="811" width="618" height="217" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-33" value="&lt;b&gt;&lt;u&gt;uptimechecker.py&lt;/u&gt;&lt;/b&gt;&lt;br&gt;(used to check the listed websites&#39;&lt;br&gt;uptime, by going through Tor)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=left;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="-462" y="694" width="197" height="48" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-36" value="scripts" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="-565" y="690" width="63" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.001;entryY=0.038;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-36" target="LnSmRKnKzvJv8pziYg2E-31" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.002;entryY=0.188;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-36" target="LnSmRKnKzvJv8pziYg2E-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-42" value="&lt;pre&gt;Instance,Category,Name,URL,Sensitive,Description,Status,Score&lt;br/&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="-31" y="505" width="462" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.022;entryY=0.515;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-1" target="LnSmRKnKzvJv8pziYg2E-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.445;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-1" target="LnSmRKnKzvJv8pziYg2E-36" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-46" value="templates" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;" parent="1" vertex="1">
<mxGeometry x="-565" y="647" width="63" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.009;entryY=0.533;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-1" target="LnSmRKnKzvJv8pziYg2E-46" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-48" value="&lt;pre&gt;Instance,Category,Name,URL,Sensitive,Description,Status,Score&lt;br/&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="-31" y="536" width="462" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-49" value="&lt;pre&gt;Name,URL,Description,Trusted,Status,Score&lt;br/&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="24" y="567" width="325" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-50" value="&lt;pre&gt;sensitive-words&lt;br&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="-31" y="598" width="118" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-51" value="&lt;pre&gt;blacklisted-words&lt;br&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="-31" y="629" width="135" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-52" value="banner.png" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#f0a30a;fontColor=#000000;strokeColor=#BD7000;" parent="1" vertex="1">
<mxGeometry x="-125" y="662" width="87" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.007;entryY=0.492;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-13" target="LnSmRKnKzvJv8pziYg2E-52" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.016;entryY=0.477;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-46" target="LnSmRKnKzvJv8pziYg2E-52" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-149" y="660" />
<mxPoint x="-149" y="674" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-55" value="&lt;pre&gt;png, 240x60&lt;br&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#f0a30a;fontColor=#000000;strokeColor=#BD7000;" parent="1" vertex="1">
<mxGeometry x="-31" y="662" width="105" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-56" value="&lt;b&gt;~/.darknet_participant_url&lt;/b&gt;&lt;br&gt;(contains your instance&#39;s url)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;fontStyle=0;" parent="1" vertex="1">
<mxGeometry x="-230.5" y="1048" width="155" height="41" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.498;entryY=-0.022;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-31" target="LnSmRKnKzvJv8pziYg2E-56" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-59" value="via the local Tor daemon&lt;br&gt;(127.0.0.1:9050)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="-61" y="698" width="137" height="40" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.002;entryY=0.511;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-33" target="LnSmRKnKzvJv8pziYg2E-59" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-62" value="destination .onion websites&lt;br&gt;and clearnet websites" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="108.5" y="698" width="169" height="40" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.001;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-59" target="LnSmRKnKzvJv8pziYg2E-62" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-64" value="Default main webpage that lists:&lt;br&gt;-verified links categories&lt;br&gt;-both verified and unverified links (with searchbar)&lt;br&gt;-optional sensitive search&amp;nbsp; to list the drug-related websites&lt;br&gt;-webring participants&lt;br&gt;(while filtering any potential malicious php inputs)" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="-372" y="341" width="326" height="98" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-65" value="(your instance and every&lt;br&gt;other webring participant&lt;br&gt;has their own folder in here)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="-331" y="558" width="167" height="55" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-66" value="(every webring participant that this participant knows of)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="349" y="567" width="314" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-67" value="(keywords that automatically flags a link as sensitive (ex: drugs))" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="84" y="598" width="360" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-68" value="(keywords that automatically removes links (ex: porn))" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="102" y="629" width="305" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-69" value="(every link that got verified by the webring participant)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="44" y="477" width="302" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-70" value="(every link that the participant didnt verify yet)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="428" y="536" width="259" height="26" as="geometry" />
</mxCell>
<mxCell id="LnSmRKnKzvJv8pziYg2E-71" value="same as above without the search feature (all links displayed at once)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="-382" y="471" width="388" height="26" as="geometry" />
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-1" value="SimpleX CLI Daemon" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="-230.5" y="755" width="137" height="40" as="geometry" />
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.006;entryY=0.525;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LnSmRKnKzvJv8pziYg2E-33" target="rfcP9EMQE_NkH9Ln3oW4-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-256" y="718" />
<mxPoint x="-256" y="776" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-3" value="destination simplex chatrooms&lt;br&gt;and destination simplex SMP / XFTP servers" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="104" y="755" width="255" height="40" as="geometry" />
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-6" value="via the local Tor daemon&lt;br&gt;(127.0.0.1:9050)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="-61" y="755" width="137" height="40" as="geometry" />
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.012;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="rfcP9EMQE_NkH9Ln3oW4-1" target="rfcP9EMQE_NkH9Ln3oW4-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rfcP9EMQE_NkH9Ln3oW4-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.002;entryY=0.483;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="rfcP9EMQE_NkH9Ln3oW4-6" target="rfcP9EMQE_NkH9Ln3oW4-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-1" value="&lt;pre&gt;Instance,Category,Name,&lt;b&gt;&lt;u&gt;URL&lt;/u&gt;&lt;/b&gt;,Sensitive,Description,Status,Score&lt;br&gt;&lt;/pre&gt;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="978.5" y="534" width="462" height="26" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-2" value="destination .onion &lt;br&gt;and clearnet websites" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="975.5" y="619" width="131" height="35" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-3" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1169" y="683.6129032258063" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-3" value="simplex &lt;br&gt;chatroom links" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1119.5" y="619" width="99" height="34" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-4" value="simplex smp/xftp&lt;br&gt;&amp;nbsp;server links" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1225.5" y="619" width="106" height="32" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.484;entryY=0.04;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-1" target="oifU2B7W5BzXfIYeAPqE-3" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1167.5" y="602" />
<mxPoint x="1167.5" y="602" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.475;entryY=0.02;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-1" target="oifU2B7W5BzXfIYeAPqE-4" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1167.5" y="602" />
<mxPoint x="1275.5" y="602" />
<mxPoint x="1275.5" y="610" />
<mxPoint x="1275.5" y="610" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.499;entryY=-0.02;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-1" target="oifU2B7W5BzXfIYeAPqE-2" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1167.5" y="602" />
<mxPoint x="1040.5" y="602" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-9" value="Lantern.py needs to discern that there are simplex links (from their syntax)&lt;br&gt;and put them in their correct category" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="oifU2B7W5BzXfIYeAPqE-7" vertex="1" connectable="0">
<mxGeometry x="-0.8252" relative="1" as="geometry">
<mxPoint x="2" y="3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-8" target="oifU2B7W5BzXfIYeAPqE-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-8" value="User-Defined category" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="975.5" y="692" width="131" height="23" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.501;entryY=-0.028;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-2" target="oifU2B7W5BzXfIYeAPqE-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-11" target="oifU2B7W5BzXfIYeAPqE-29" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-11" value="SimpleX &lt;br&gt;Chatrooms" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1137" y="685" width="64" height="37" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-13" value="SimpleX Servers" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1229.5" y="690" width="96" height="29" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.498;entryY=-0.063;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-4" target="oifU2B7W5BzXfIYeAPqE-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-15" value="Category name" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="852.5" y="690.5" width="100" height="26" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-16" value="option 1) When adding a&amp;nbsp;&lt;br&gt;website, it needs to first ask&lt;br&gt;for the URL, and depending&lt;br&gt;on the link, it will either&lt;br&gt;assign the simplex category, or&amp;nbsp;&lt;br&gt;prompt the user to &lt;br&gt;mention the category" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="912" y="404" width="186" height="113" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-18" target="oifU2B7W5BzXfIYeAPqE-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-18" value="lantern.py" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="804" y="446.5" width="72" height="28" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-19" value="verified.csv" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="1148.5" y="467.5" width="72" height="28" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-20" value="unverified.csv (if no description)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#a20025;fontColor=#ffffff;strokeColor=#6F0000;" parent="1" vertex="1">
<mxGeometry x="1130" y="430.5" width="184" height="28" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.004;entryY=0.47;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-16" target="oifU2B7W5BzXfIYeAPqE-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.446;entryY=0.011;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-19" target="oifU2B7W5BzXfIYeAPqE-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-24" value="URL" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="881.5" y="623.5" width="42" height="26" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-25" target="oifU2B7W5BzXfIYeAPqE-26" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-25" value="uptime.py" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="804" y="779" width="72" height="28" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-26" value="Depending on the link type,&lt;br&gt;the uptime check needs to be different" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="729.5" y="841" width="221" height="41" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-28" value="run a py request via&lt;br&gt;Tor to check if it responds&lt;br&gt;something" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="927" y="764" width="146" height="45" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-29" value="ASSUME UPTIME&lt;br&gt;IF SYNTAX IS CORRECT&lt;br&gt;(no possibility to test&lt;br&gt;chatrooms without joining them)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
<mxGeometry x="1078" y="744" width="182" height="67" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-34" value="/!\ ASSUME UPTIME IF THE&lt;br&gt;SIMPLEX BOT ISNT REACHABLE /!\&lt;br&gt;SimpleX Bot Daemon -x (routes everything via Tor)&lt;br&gt;(locally controllable via port 3030)" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1330.5" y="742" width="335" height="63" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-45" value="simplex-chatrooms.csv&lt;br&gt;(invite link,&amp;nbsp;" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" parent="1" vertex="1">
<mxGeometry x="1469.5" y="858" width="137" height="28" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="oifU2B7W5BzXfIYeAPqE-47" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1277.5" y="909.2777777777778" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-47" value="Make the Simplex Bot&lt;br&gt;test that smp/xftp&lt;br&gt;server reachable" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" parent="1" vertex="1">
<mxGeometry x="1216.5" y="834" width="122" height="51" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.497;entryY=-0.007;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-13" target="oifU2B7W5BzXfIYeAPqE-47" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1278" y="741" />
<mxPoint x="1277" y="741" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-49" value="if the Simplex Bot &lt;br&gt;is complaining&lt;br&gt;that the server &lt;br&gt;isnt joinable,&lt;br&gt;&amp;nbsp;&lt;u&gt;assume downtime, &lt;/u&gt;&lt;br&gt;else assume uptime" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="1" vertex="1">
<mxGeometry x="1212" y="942" width="131" height="101" as="geometry" />
</mxCell>
<mxCell id="oifU2B7W5BzXfIYeAPqE-52" value="/smp test &amp;lt;srvlink&amp;gt;&lt;br&gt;/xftp test &amp;lt;srvlink&amp;gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1218.5" y="899" width="118" height="41" as="geometry" />
</mxCell>
<mxCell id="xdq3A_qXWXg5RgE1Ps6c-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.014;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oifU2B7W5BzXfIYeAPqE-34" target="oifU2B7W5BzXfIYeAPqE-47" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1321.5" y="773" />
<mxPoint x="1310.5" y="774" />
<mxPoint x="1277.5" y="774" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="W1qvKDymAgoVQLZv2bCV-4" style="rounded=0;hachureGap=4;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;" edge="1" parent="1" source="W1qvKDymAgoVQLZv2bCV-1" target="W1qvKDymAgoVQLZv2bCV-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="W1qvKDymAgoVQLZv2bCV-1" value="lantern.py" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" vertex="1" parent="1">
<mxGeometry x="762" y="259" width="72" height="28" as="geometry" />
</mxCell>
<mxCell id="W1qvKDymAgoVQLZv2bCV-2" value="lantern.py" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;labelPosition=center;align=center;fillColor=#fa6800;fontColor=#000000;strokeColor=#C73500;" vertex="1" parent="1">
<mxGeometry x="852.5" y="314" width="72" height="28" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>