1
0
mirror of https://github.com/craigerl/aprsd.git synced 2024-11-22 08:04:53 -05:00
aprsd/docs/_static/aprsd_overview.svg
2021-08-24 17:41:26 -04:00

4 lines
30 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="652px" viewBox="-0.5 -0.5 701 652" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2021-08-24T21:40:49.879Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 11_5_2) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.9.6 Chrome/89.0.4389.128 Electron/12.0.16 Safari/537.36&quot; etag=&quot;cr5Ceh0ldj0f1lKEIV-A&quot; version=&quot;14.9.6&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;WCGkvdbYsMb_VYvvfK7z&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 110 60 C 30 60 10 120 74 132 C 10 158.4 82 216 134 192 C 170 240 290 240 330 192 C 410 192 410 144 360 120 C 410 72 330 24 260 48 C 210 12 130 12 110 60 Z" fill="#cce5ff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="270" width="700" height="380" fill="#fff8eb" stroke="#000000" pointer-events="all"/><rect x="450" y="580" width="120" height="60" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 610px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 12px">Main<br />Starts all threads<br /></font></div></div></div></foreignObject><text x="510" y="614" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Main...</text></switch></g><rect x="20" y="400" width="120" height="60" fill="#6bff7f" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 430px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SendMessageThread</div></div></div></foreignObject><text x="80" y="434" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SendMessageThread</text></switch></g><rect x="190" y="290" width="140" height="60" fill="#6bff7f" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 320px; margin-left: 191px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">RecieveMessageThread</div></div></div></foreignObject><text x="260" y="324" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RecieveMessageThread</text></switch></g><ellipse cx="635" cy="610" rx="35" ry="25" fill="#94ff9f" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 610px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">aprsd.yml</div></div></div></foreignObject><text x="635" y="614" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">aprsd.yml</text></switch></g><path d="M 600 610 L 576.37 610" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 571.12 610 L 578.12 606.5 L 576.37 610 L 578.12 613.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="610" width="160" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 630px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>APRSD Server</b></font></div></div></div></foreignObject><text x="80" y="634" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APRSD Server</text></switch></g><rect x="290" y="140" width="75" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 73px; height: 1px; padding-top: 155px; margin-left: 291px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IMAP/SMTP</div></div></div></foreignObject><text x="328" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IMAP/SMTP</text></switch></g><ellipse cx="210" cy="90" rx="60" ry="40" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 90px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APRS-IS<br />Server</div></div></div></foreignObject><text x="210" y="94" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APRS-IS...</text></switch></g><path d="M 183.63 320 L 146.37 320" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 188.88 320 L 181.88 323.5 L 183.63 320 L 181.88 316.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 141.12 320 L 148.12 316.5 L 146.37 320 L 148.12 323.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 80 393.63 L 80 356.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 80 398.88 L 76.5 391.88 L 80 393.63 L 83.5 391.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 80 351.12 L 83.5 358.12 L 80 356.37 L 76.5 358.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="20" y="290" width="120" height="60" fill="#99ccff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 320px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">aprslib</div></div></div></foreignObject><text x="80" y="324" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">aprslib</text></switch></g><path d="M 84.02 285.06 L 205.98 134.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 80.71 289.13 L 82.4 281.49 L 84.02 285.06 L 87.84 285.91 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 209.29 130.87 L 207.6 138.51 L 205.98 134.94 L 202.16 134.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 374.75 405.76 L 328.75 176.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 375.78 410.9 L 370.97 404.73 L 374.75 405.76 L 377.84 403.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 327.72 171.1 L 332.53 177.27 L 328.75 176.24 L 325.66 178.65 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 258.75 356.24 L 251.25 393.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 259.78 351.1 L 261.84 358.65 L 258.75 356.24 L 254.98 357.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 250.22 398.9 L 248.16 391.35 L 251.25 393.76 L 255.02 392.73 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 276.33 91.53 L 413.63 94.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 271.08 91.41 L 278.16 88.08 L 276.33 91.53 L 278 95.08 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 418.88 94.97 L 411.8 98.3 L 413.63 94.85 L 411.97 91.31 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 470 48.37 L 478.19 40 M 473.01 48.37 L 481.09 40 M 475.9 48.37 L 484.1 40 M 478.92 48.37 L 487.11 40 M 481.81 48.37 L 490 40 M 472.77 43.82 L 487.59 43.82 M 480.36 43.94 L 480.36 56.86 M 480.84 49.73 L 480.84 64 M 481.32 54.77 L 479.64 54.77 L 479.64 51.57 L 481.32 51.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="420" y="80" width="80" height="30" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 95px; margin-left: 421px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">APRS IGATE</div></div></div></foreignObject><text x="460" y="99" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APRS IGATE</text></switch></g><path d="M 480 80 L 480 64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 600 158.37 L 608.19 150 M 603.01 158.37 L 611.09 150 M 605.9 158.37 L 614.1 150 M 608.92 158.37 L 617.11 150 M 611.81 158.37 L 620 150 M 602.77 153.82 L 617.59 153.82 M 610.36 153.94 L 610.36 166.86 M 610.84 159.73 L 610.84 174 M 611.32 164.77 L 609.64 164.77 L 609.64 161.57 L 611.32 161.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="540" y="190" width="80" height="30" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 205px; margin-left: 541px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">HAM Radio</div></div></div></foreignObject><text x="580" y="209" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">HAM Radio</text></switch></g><path d="M 609.79 174 L 609.52 189.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 495.35 61.89 L 561.59 104.58 Q 570 110 570 100 L 570 90 Q 570 80 574.38 88.99 L 601.35 144.28" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 490.94 59.05 L 498.72 59.9 L 495.35 61.89 L 494.93 65.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 603.66 149 L 597.44 144.24 L 601.35 144.28 L 603.73 141.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="515" y="400" width="120" height="60" fill="#6bff7f" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 430px; margin-left: 516px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Admin UI</div></div></div></foreignObject><text x="575" y="434" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Admin UI</text></switch></g><path d="M 510.52 285.48 L 398.48 172.52" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514.21 289.21 L 506.8 286.7 L 510.52 285.48 L 511.77 281.77 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 394.79 168.79 L 402.2 171.3 L 398.48 172.52 L 397.23 176.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="540" y="485" width="70" height="70" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 520px; margin-left: 541px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Stats Collector</div></div></div></foreignObject><text x="575" y="524" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Stats Colle...</text></switch></g><rect x="515" y="290" width="120" height="60" fill="#99ccff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 320px; margin-left: 516px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Flask</div></div></div></foreignObject><text x="575" y="324" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Flask</text></switch></g><path d="M 575 393.63 L 575 356.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575 398.88 L 571.5 391.88 L 575 393.63 L 578.5 391.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575 351.12 L 578.5 358.12 L 575 356.37 L 571.5 358.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575 485 L 575 466.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575 461.12 L 578.5 468.12 L 575 466.37 L 571.5 468.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="190" y="400" width="240" height="190" fill="#ffffcc" stroke="#000000" pointer-events="none"/><rect x="203" y="412" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 424px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Email</div></div></div></foreignObject><text x="250" y="427" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Email</text></switch></g><rect x="203" y="436" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 448px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Fortune</div></div></div></foreignObject><text x="250" y="451" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Fortune</text></switch></g><rect x="203" y="460" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 472px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Location</div></div></div></foreignObject><text x="250" y="475" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Location</text></switch></g><rect x="203" y="483" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 495px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Ping</div></div></div></foreignObject><text x="250" y="498" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Ping</text></switch></g><rect x="203" y="506.75" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 519px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Query</div></div></div></foreignObject><text x="250" y="522" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Query</text></switch></g><rect x="203" y="530.5" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 542px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Time</div></div></div></foreignObject><text x="250" y="546" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Time</text></switch></g><rect x="203" y="553.75" width="93.33" height="23.75" fill="#ffcccc" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 91px; height: 1px; padding-top: 566px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Version</div></div></div></foreignObject><text x="250" y="569" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Version</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 71px; height: 1px; padding-top: 554px; margin-left: 338px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Plugins</div></div></div></foreignObject><text x="374" y="557" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Plugins</text></switch></g><rect x="336" y="412" width="80" height="18" fill="#6bff7f" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 421px; margin-left: 337px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">EmailThread</div></div></div></foreignObject><text x="376" y="425" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">EmailThread</text></switch></g><path d="M 302.68 423.41 L 329.65 421.46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 297.45 423.79 L 304.18 419.8 L 302.68 423.41 L 304.68 426.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 334.88 421.08 L 328.16 425.08 L 329.65 421.46 L 327.65 418.1 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>