Uebung-hk1-Schrom01-Fassban.../Klassendiagramm.svg

4 lines
136 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!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="2571px" height="2660px" viewBox="-0.5 -0.5 2571 2660" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2022-04-16T20:46:18.197Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.1 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36&quot; etag=&quot;GLcTHkbbnKLCTBQYnwZQ&quot; version=&quot;17.2.1&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;E9rHy_gAgqXRi0qXOPk2&quot; name=&quot;Seite-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><clipPath id="mx-clip-514-159-152-26-0"><rect x="514" y="159" width="152" height="26"/></clipPath><clipPath id="mx-clip-644-1945-422-26-0"><rect x="644" y="1945" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-1971-422-26-0"><rect x="644" y="1971" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-1997-422-26-0"><rect x="644" y="1997" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2023-422-26-0"><rect x="644" y="2023" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2049-422-26-0"><rect x="644" y="2049" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2075-422-26-0"><rect x="644" y="2075" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2109-422-40-0"><rect x="644" y="2109" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2149-422-40-0"><rect x="644" y="2149" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2189-422-40-0"><rect x="644" y="2189" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2229-422-40-0"><rect x="644" y="2229" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2269-422-40-0"><rect x="644" y="2269" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2309-422-40-0"><rect x="644" y="2309" width="422" height="40"/></clipPath><clipPath id="mx-clip-644-2349-422-26-0"><rect x="644" y="2349" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2375-422-26-0"><rect x="644" y="2375" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2401-422-26-0"><rect x="644" y="2401" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2427-422-26-0"><rect x="644" y="2427" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2453-422-26-0"><rect x="644" y="2453" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2479-422-26-0"><rect x="644" y="2479" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2505-422-26-0"><rect x="644" y="2505" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2531-422-26-0"><rect x="644" y="2531" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2557-422-26-0"><rect x="644" y="2557" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2583-422-26-0"><rect x="644" y="2583" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2609-422-26-0"><rect x="644" y="2609" width="422" height="26"/></clipPath><clipPath id="mx-clip-644-2635-422-26-0"><rect x="644" y="2635" width="422" height="26"/></clipPath><clipPath id="mx-clip-802-289-244-26-0"><rect x="802" y="289" width="244" height="26"/></clipPath><clipPath id="mx-clip-802-315-244-26-0"><rect x="802" y="315" width="244" height="26"/></clipPath><clipPath id="mx-clip-802-159-244-20-0"><rect x="802" y="159" width="244" height="20"/></clipPath><clipPath id="mx-clip-814-1744-132-30-0"><rect x="814" y="1744" width="132" height="30"/></clipPath><clipPath id="mx-clip-4-792-382-26-0"><rect x="4" y="792" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-818-382-26-0"><rect x="4" y="818" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-852-382-34-0"><rect x="4" y="852" width="382" height="34"/></clipPath><clipPath id="mx-clip-4-886-382-26-0"><rect x="4" y="886" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-912-382-26-0"><rect x="4" y="912" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-938-382-26-0"><rect x="4" y="938" width="382" height="26"/></clipPath><clipPath id="mx-clip-54-1715-472-22-0"><rect x="54" y="1715" width="472" height="22"/></clipPath><clipPath id="mx-clip-54-1737-472-26-0"><rect x="54" y="1737" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1763-472-26-0"><rect x="54" y="1763" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1789-472-26-0"><rect x="54" y="1789" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1815-472-26-0"><rect x="54" y="1815" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1841-472-26-0"><rect x="54" y="1841" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1867-472-26-0"><rect x="54" y="1867" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1893-472-26-0"><rect x="54" y="1893" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1919-472-26-0"><rect x="54" y="1919" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1945-472-26-0"><rect x="54" y="1945" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1971-472-26-0"><rect x="54" y="1971" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-1997-472-26-0"><rect x="54" y="1997" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2023-472-26-0"><rect x="54" y="2023" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2057-472-26-0"><rect x="54" y="2057" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2083-472-26-0"><rect x="54" y="2083" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2109-472-26-0"><rect x="54" y="2109" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2135-472-26-0"><rect x="54" y="2135" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2161-472-26-0"><rect x="54" y="2161" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2187-472-26-0"><rect x="54" y="2187" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2213-472-26-0"><rect x="54" y="2213" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2239-472-26-0"><rect x="54" y="2239" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2265-472-26-0"><rect x="54" y="2265" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2291-472-26-0"><rect x="54" y="2291" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2317-472-26-0"><rect x="54" y="2317" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2343-472-26-0"><rect x="54" y="2343" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2369-472-26-0"><rect x="54" y="2369" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2395-472-26-0"><rect x="54" y="2395" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2421-472-26-0"><rect x="54" y="2421" width="472" height="26"/></clipPath><clipPath id="mx-clip-54-2447-472-26-0"><rect x="54" y="2447" width="472" height="26"/></clipPath><clipPath id="mx-clip-1444-31-392-26-0"><rect x="1444" y="31" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-57-392-26-0"><rect x="1444" y="57" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-91-392-26-0"><rect x="1444" y="91" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-117-392-26-0"><rect x="1444" y="117" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-143-392-26-0"><rect x="1444" y="143" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-169-392-26-0"><rect x="1444" y="169" width="392" height="26"/></clipPath><clipPath id="mx-clip-1444-195-392-26-0"><rect x="1444" y="195" width="392" height="26"/></clipPath><clipPath id="mx-clip-1664-351-192-26-0"><rect x="1664" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-385-192-26-0"><rect x="1664" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-411-192-26-0"><rect x="1664" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-437-192-26-0"><rect x="1664" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-463-192-26-0"><rect x="1664" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-489-192-26-0"><rect x="1664" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-515-192-26-0"><rect x="1664" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-541-192-26-0"><rect x="1664" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1664-567-192-26-0"><rect x="1664" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-351-192-26-0"><rect x="1454" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-385-192-26-0"><rect x="1454" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-411-192-26-0"><rect x="1454" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-437-192-26-0"><rect x="1454" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-463-192-26-0"><rect x="1454" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-489-192-26-0"><rect x="1454" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-515-192-26-0"><rect x="1454" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-541-192-26-0"><rect x="1454" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1454-567-192-26-0"><rect x="1454" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-2234-1205-332-26-0"><rect x="2234" y="1205" width="332" height="26"/></clipPath><clipPath id="mx-clip-2234-1231-332-26-0"><rect x="2234" y="1231" width="332" height="26"/></clipPath><clipPath id="mx-clip-2234-1265-332-26-0"><rect x="2234" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-2234-1291-332-26-0"><rect x="2234" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-2234-1317-332-26-0"><rect x="2234" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-2234-1343-332-26-0"><rect x="2234" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-1744-1495-592-26-0"><rect x="1744" y="1495" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1521-592-26-0"><rect x="1744" y="1521" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1547-592-26-0"><rect x="1744" y="1547" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1573-592-26-0"><rect x="1744" y="1573" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1599-592-26-0"><rect x="1744" y="1599" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1633-592-26-0"><rect x="1744" y="1633" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1659-592-26-0"><rect x="1744" y="1659" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1685-592-26-0"><rect x="1744" y="1685" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1711-592-26-0"><rect x="1744" y="1711" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1737-592-26-0"><rect x="1744" y="1737" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1763-592-26-0"><rect x="1744" y="1763" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1789-592-26-0"><rect x="1744" y="1789" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1815-592-26-0"><rect x="1744" y="1815" width="592" height="26"/></clipPath><clipPath id="mx-clip-1744-1841-592-26-0"><rect x="1744" y="1841" width="592" height="26"/></clipPath><clipPath id="mx-clip-1334-681-642-26-0"><rect x="1334" y="681" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-707-642-26-0"><rect x="1334" y="707" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-733-642-26-0"><rect x="1334" y="733" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-759-642-26-0"><rect x="1334" y="759" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-785-642-26-0"><rect x="1334" y="785" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-811-642-26-0"><rect x="1334" y="811" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-837-642-26-0"><rect x="1334" y="837" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-863-642-26-0"><rect x="1334" y="863" width="642" height="26"/></clipPath><clipPath id="mx-clip-1334-897-642-20-0"><rect x="1334" y="897" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-917-642-20-0"><rect x="1334" y="917" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-937-642-20-0"><rect x="1334" y="937" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-957-642-20-0"><rect x="1334" y="957" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-977-642-20-0"><rect x="1334" y="977" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-997-642-20-0"><rect x="1334" y="997" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-1017-642-20-0"><rect x="1334" y="1017" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-1037-642-20-0"><rect x="1334" y="1037" width="642" height="20"/></clipPath><clipPath id="mx-clip-1334-1057-642-20-0"><rect x="1334" y="1057" width="642" height="20"/></clipPath><clipPath id="mx-clip-1604-1213-332-26-0"><rect x="1604" y="1213" width="332" height="26"/></clipPath><clipPath id="mx-clip-1604-1239-332-26-0"><rect x="1604" y="1239" width="332" height="26"/></clipPath><clipPath id="mx-clip-1604-1265-332-26-0"><rect x="1604" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-1604-1291-332-26-0"><rect x="1604" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-1604-1317-332-26-0"><rect x="1604" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-1604-1343-332-26-0"><rect x="1604" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-596-741-382-26-0"><rect x="596" y="741" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-767-382-26-0"><rect x="596" y="767" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-793-382-26-0"><rect x="596" y="793" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-819-382-26-0"><rect x="596" y="819" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-853-382-34-0"><rect x="596" y="853" width="382" height="34"/></clipPath><clipPath id="mx-clip-596-887-382-26-0"><rect x="596" y="887" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-913-382-26-0"><rect x="596" y="913" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-939-382-26-0"><rect x="596" y="939" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-965-382-26-0"><rect x="596" y="965" width="382" height="26"/></clipPath><clipPath id="mx-clip-596-991-382-26-0"><rect x="596" y="991" width="382" height="26"/></clipPath><clipPath id="mx-clip-1224-1213-332-26-0"><rect x="1224" y="1213" width="332" height="26"/></clipPath><clipPath id="mx-clip-1224-1239-332-26-0"><rect x="1224" y="1239" width="332" height="26"/></clipPath><clipPath id="mx-clip-1224-1265-332-26-0"><rect x="1224" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-1224-1291-332-26-0"><rect x="1224" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-1224-1317-332-26-0"><rect x="1224" y="1317" width="332" height="26"/></clipPath></defs><g><rect x="830" y="1704" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1714px; margin-left: 840px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><span style="color: rgba(0 , 0 , 0 , 0) ; font-family: monospace ; font-size: 0px">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BentryX%3D0%3BentryY%3D0.25%3BentryDx%3D0%3BentryDy%3D0%3BendArrow%3Dclassic%3BendFill%3D1%3B%22%20edge%3D%221%22%20source%3D%223%22%20target%3D%2230%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22470%22%20y%3D%2260%22%2F%3E%3CmxPoint%20x%3D%22470%22%20y%3D%22178%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22Client%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22220%22%20y%3D%2220%22%20width%3D%22160%22%20height%3D%2280%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%223%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22160%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2B%20main(args%3AString%5B%5D)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%223%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22ClientConnectionHandler%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%22150%22%20width%3D%22430%22%20height%3D%22594%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22-%20connection%3A%C2%A0NetworkHandler.NetworkConnection%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22-%20controller%3A%C2%A0ChatWindowController%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22-%20DATA_TYPE_CONNECT%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22-%20DATA_TYPE_CONFIRM%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22104%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22-%20DATA_TYPE_DISCONNECT%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22130%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22-%20DATA_TYPE_MESSAGE%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22156%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22-%20DATA_TYPE_ERROR%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22182%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22%2B%20USER_NONE%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22208%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22%2B%20USER_ALL%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22234%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22-%20userName%3A%20String%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22260%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22-%20state%3A%20State%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22286%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22312%22%20width%3D%22430%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22%2B%20ClientEventHandler(NetworkHandler.NetworkConnection%26lt%3BString%26gt%3B%20connection%2C%26%2310%3B%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0String%20userName%2C%20ChatWindowController%20controller)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D0%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22320%22%20width%3D%22430%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%2B%C2%A0getState()%3A%20State%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22360%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22%2B%C2%A0setState%20(State%20newState)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22386%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22%2B%C2%A0run%20()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22412%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2223%22%20value%3D%22%2B%C2%A0startReceiving()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22438%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2224%22%20value%3D%22-%C2%A0processData(String%20data)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22464%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2225%22%20value%3D%22%2B%C2%A0sendData(String%20sender%2C%20String%20receiver%2C%20String%20type%2C%20String%20payload)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22490%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2226%22%20value%3D%22%2B%C2%A0connect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22516%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2227%22%20value%3D%22%2B%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22542%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2228%22%20value%3D%22%2B%C2%A0message(String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22568%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2229%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BendArrow%3Dblock%3BendFill%3D0%3BentryX%3D0.5%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3B%22%20edge%3D%221%22%20source%3D%2230%22%20target%3D%2234%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22588%22%20y%3D%22120%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2230%22%20value%3D%22ClientUI%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%22150%22%20width%3D%22252%22%20height%3D%22110%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2231%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22252%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2232%22%20value%3D%22%2B%20start(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22252%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2233%22%20value%3D%22-%20chatWindow(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2276%22%20width%3D%22252%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2234%22%20value%3D%22%26lt%3B%26lt%3Babstract%26gt%3B%26gt%3B%20Client%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%2220%22%20width%3D%22252%22%20height%3D%2280%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2235%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2234%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22252%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2236%22%20value%3D%22%2B%20start(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2234%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22252%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2237%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BendArrow%3Dblock%3BendFill%3D0%3BexitX%3D0.5%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20source%3D%226%22%20target%3D%2238%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2238%22%20value%3D%22%26lt%3B%26lt%3Binterface%26gt%3B%26gt%3B%20Runnable%22%20style%3D%22swimlane%3BfontStyle%3D0%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D30%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeParentMax%3D0%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%2220%22%20width%3D%22140%22%20height%3D%2280%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2239%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2238%22%3E%3CmxGeometry%20y%3D%2230%22%20width%3D%22140%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2240%22%20value%3D%22%2B%20run()%3A%20void%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brotatable%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2238%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22140%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2241%22%20value%3D%22ClientMessageList%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%22288%22%20width%3D%22272%22%20height%3D%22336%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2242%22%20value%3D%22-%C2%A0typeList%3A%C2%A0List%26lt%3BMessageType%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2243%22%20value%3D%22-%C2%A0senderList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2244%22%20value%3D%22-%C2%A0receiverList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2245%22%20value%3D%22-%C2%A0messageList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22104%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2246%22%20value%3D%22-%C2%A0gui%3A%20ChatWindowController%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22130%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2247%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22156%22%20width%3D%22272%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2248%22%20value%3D%22%2B%C2%A0ClientMessageList(ChatWindowController%20gui)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2249%22%20value%3D%22%2B%C2%A0addMessage(MessageType%20type%2C%20String%20sender%2C%26%2310%3B%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22272%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2250%22%20value%3D%22%2B%C2%A0writeFilteredMessages(String%20filter)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22240%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2251%22%20value%3D%22%26amp%3Blt%3B%26amp%3Blt%3BEnumeration%26amp%3Bgt%3B%26amp%3Bgt%3B%20MessageType%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BINFO%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BMESSAGE%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BERROR%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Balign%3Dleft%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22266%22%20width%3D%22272%22%20height%3D%2270%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2252%22%20value%3D%22ChatWindowController%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22480%22%20y%3D%22670%22%20width%3D%22390%22%20height%3D%22978%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2253%22%20value%3D%22-%C2%A0messagePattern%3A%C2%A0Pattern%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22390%22%20height%3D%2222%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2254%22%20value%3D%22-%C2%A0connectionHandler%3A%C2%A0ClientConnectionHandler%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2248%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2255%22%20value%3D%22-%C2%A0messages%3A%C2%A0ClientMessageList%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2274%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2256%22%20value%3D%22-%20windowCloseHandler%3A%C2%A0WindowCloseHandler%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22100%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2257%22%20value%3D%22-%C2%A0rootPane%3A%C2%A0Pane%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22126%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2258%22%20value%3D%22-%C2%A0serverAddressField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22152%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2259%22%20value%3D%22-%C2%A0serverPortField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22178%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2260%22%20value%3D%22-%C2%A0userNameField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22204%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2261%22%20value%3D%22-%C2%A0messageField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22230%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2262%22%20value%3D%22-%C2%A0messageArea%3A%C2%A0TextArea%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22256%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2263%22%20value%3D%22-%C2%A0connectButton%3A%C2%A0Button%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22282%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2264%22%20value%3D%22-%C2%A0sendButton%3A%C2%A0Button%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22308%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2265%22%20value%3D%22-%C2%A0filterValue%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22334%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2266%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22360%22%20width%3D%22390%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2267%22%20value%3D%22%2B%C2%A0initialize()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22368%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2268%22%20value%3D%22-%C2%A0applicationClose()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22394%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2269%22%20value%3D%22-%C2%A0toggleConnection()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22420%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2270%22%20value%3D%22-%C2%A0connect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22446%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2271%22%20value%3D%22-%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22472%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2272%22%20value%3D%22-%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22498%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2273%22%20value%3D%22-%C2%A0message()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22524%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2274%22%20value%3D%22-%C2%A0applyFilter(%20)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22550%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2275%22%20value%3D%22-%C2%A0terminateConnectionHandler()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22576%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2276%22%20value%3D%22%2B%C2%A0stateChanged(State%20newState)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22602%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2277%22%20value%3D%22%2B%C2%A0setUserName(String%20userName)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22628%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2278%22%20value%3D%22%2B%C2%A0setServerAddress(String%20serverAddress)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22654%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2279%22%20value%3D%22%2B%C2%A0setServerPort(int%20serverPort)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22680%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2280%22%20value%3D%22%2B%C2%A0addMessage(String%20sender%2C%20String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22706%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2281%22%20value%3D%22%2B%C2%A0addInfo(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22732%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2282%22%20value%3D%22%2B%C2%A0addError(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22758%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2283%22%20value%3D%22%2B%C2%A0clearMessageArea()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22784%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2284%22%20value%3D%22-%C2%A0redrawMessageList()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22810%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2285%22%20value%3D%22%2B%20writeError(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22836%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2286%22%20value%3D%22%2B%20writeInfo(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22862%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2287%22%20value%3D%22%2B%20writeMessage(String%20sender%2C%20String%20reciever%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22888%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2288%22%20value%3D%22%26amp%3Blt%3B%26amp%3Blt%3BClass%26amp%3Bgt%3B%26amp%3Bgt%3B%20WindowCloseHandler%26lt%3Bbr%26gt%3B%2B%20handle(WindowEvent%20event)%3A%20void%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Balign%3Dleft%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22914%22%20width%3D%22390%22%20height%3D%2264%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div></div></div></foreignObject><text x="840" y="1718" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 670 144 L 760 144 L 760 261.5 L 795.76 261.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 789.88 265 L 796.88 261.5 L 789.88 258" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 510 130 L 510 104 L 670 104 L 670 130" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 510 130 L 510 184 L 670 184 L 670 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 510 130 L 670 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="589.5" y="121.5">Client</text></g><rect x="510" y="130" width="160" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-514-159-152-26-0)" font-size="12px"><text x="515.5" y="171.5">+ main(args:String[]): void</text></g><path d="M 640 1940 L 640 1914 L 1070 1914 L 1070 1940" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 640 1940 L 640 2656 L 1070 2656 L 1070 1940" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 640 1940 L 1070 1940" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="854.5" y="1931.5">ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-1945-422-26-0)" font-size="12px"><text x="645.5" y="1957.5">- messagePattern:Pattern{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-1971-422-26-0)" font-size="12px"><text x="645.5" y="1983.5">-userName:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-1997-422-26-0)" font-size="12px"><text x="645.5" y="2009.5">- state:SimpleObjectProperty&lt;State&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2023-422-26-0)" font-size="12px"><text x="645.5" y="2035.5">- messages:ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2049-422-26-0)" font-size="12px"><text x="645.5" y="2061.5">- serverAddress:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2075-422-26-0)" font-size="12px"><text x="645.5" y="2087.5">- serverPort:SimpleIntegerProperty</text></g><path d="M 640 2100 L 1070 2100" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2109-422-40-0)" font-size="12px"><text x="645.5" y="2121.5">+ ClientConnectionHandler(messages:ClientMessageList)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2149-422-40-0)" font-size="12px"><text x="645.5" y="2161.5">+initialize(serverAddress:String,serverPort:int,userName:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2189-422-40-0)" font-size="12px"><text x="645.5" y="2201.5">+getServerAddressProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2229-422-40-0)" font-size="12px"><text x="645.5" y="2241.5">+getServerPortProperty():SimpleIntegerProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2269-422-40-0)" font-size="12px"><text x="645.5" y="2281.5">+getStateProperty():SimpleObjectProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2309-422-40-0)" font-size="12px"><text x="645.5" y="2321.5">+getUsernameProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2349-422-26-0)" font-size="12px"><text x="645.5" y="2361.5">+ setState (State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2375-422-26-0)" font-size="12px"><text x="645.5" y="2387.5">+ run (): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2401-422-26-0)" font-size="12px"><text x="645.5" y="2413.5">+ startReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2427-422-26-0)" font-size="12px"><text x="645.5" y="2439.5">+ stopReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2453-422-26-0)" font-size="12px"><text x="645.5" y="2465.5">- processData(String data): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2479-422-26-0)" font-size="12px"><text x="645.5" y="2491.5">-caseConfirm(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2505-422-26-0)" font-size="12px"><text x="645.5" y="2517.5">-caseMessage(sender:String,reciever:String,type:String,payload:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2531-422-26-0)" font-size="12px"><text x="645.5" y="2543.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2557-422-26-0)" font-size="12px"><text x="645.5" y="2569.5">-caseError():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2583-422-26-0)" font-size="12px"><text x="645.5" y="2595.5">+ connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2609-422-26-0)" font-size="12px"><text x="645.5" y="2621.5">+ disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-644-2635-422-26-0)" font-size="12px"><text x="645.5" y="2647.5">+ message(String receiver, String message): void</text></g><path d="M 924 234 L 924 192.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 924 185.12 L 927.5 192.12 L 920.5 192.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 798 260 L 798 234 L 1050 234 L 1050 260" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 798 260 L 798 344 L 1050 344 L 1050 260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 798 260 L 1050 260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="923.5" y="251.5">ClientUI</text></g><rect x="798" y="260" width="252" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-802-289-244-26-0)" font-size="12px"><text x="803.5" y="301.5">+ start(primaryStage: Stage): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-802-315-244-26-0)" font-size="12px"><text x="803.5" y="327.5">- chatWindow(primaryStage: Stage): void</text></g><path d="M 798 130 L 798 104 L 1050 104 L 1050 130" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 798 130 L 798 184 L 1050 184 L 1050 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 798 130 L 1050 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="923.5" y="121.5">&lt;&lt;abstract&gt;&gt; Client</text></g><rect x="798" y="130" width="252" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-802-159-244-20-0)" font-size="12px"><text x="803.5" y="171.5">+ start(primaryStage: Stage): void</text></g><path d="M 855 1914 L 880 1914 L 880 1782.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 1775.12 L 883.5 1782.12 L 876.5 1782.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 810 1724 L 810 1694 L 950 1694 L 950 1724" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 810 1724 L 810 1774 L 950 1774 L 950 1724" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 810 1724 L 950 1724" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="879.5" y="1713.5">&lt;&lt;interface&gt;&gt; Runnable</text></g><rect x="810" y="1724" width="140" height="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-814-1744-132-30-0)" font-size="12px"><text x="815.5" y="1763.5">+ run(): void</text></g><path d="M 0 787 L 0 761 L 390 761 L 390 787" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 787 L 0 961 L 390 961 L 390 787" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 787 L 390 787" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="194.5" y="778.5">ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-792-382-26-0)" font-size="12px"><text x="5.5" y="804.5">- messages: List&lt;Message&gt; {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-818-382-26-0)" font-size="12px"><text x="5.5" y="830.5">- changed:SimpleBooleanProperty</text></g><path d="M 0 843 L 390 843" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-852-382-34-0)" font-size="12px"><text x="5.5" y="864.5">+ addMessage(message:Message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-886-382-26-0)" font-size="12px"><text x="5.5" y="898.5">+ getFilteredMessages(filter:string):String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-912-382-26-0)" font-size="12px"><text x="5.5" y="924.5">+ clear():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-938-382-26-0)" font-size="12px"><text x="5.5" y="950.5">+ getChangedProperty():SimpleBooleanProperty</text></g><path d="M 50 1710 L 50 1684 L 530 1684 L 530 1710" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 50 1710 L 50 2532 L 530 2532 L 530 1710" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 50 1710 L 530 1710" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="289.5" y="1701.5">ChatWindowController</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1715-472-22-0)" font-size="12px"><text x="55.5" y="1727.5">- messagePattern: Pattern {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1737-472-26-0)" font-size="12px"><text x="55.5" y="1749.5">- messages: ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1763-472-26-0)" font-size="12px"><text x="55.5" y="1775.5">- windowCloseHandler: WindowCloseHandler {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1789-472-26-0)" font-size="12px"><text x="55.5" y="1801.5">- rootPane: Pane</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1815-472-26-0)" font-size="12px"><text x="55.5" y="1827.5">- serverAddressField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1841-472-26-0)" font-size="12px"><text x="55.5" y="1853.5">- serverPortField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1867-472-26-0)" font-size="12px"><text x="55.5" y="1879.5">- connectionHandler: ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1893-472-26-0)" font-size="12px"><text x="55.5" y="1905.5">- userNameField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1919-472-26-0)" font-size="12px"><text x="55.5" y="1931.5">- messageField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1945-472-26-0)" font-size="12px"><text x="55.5" y="1957.5">- messageArea: TextArea</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1971-472-26-0)" font-size="12px"><text x="55.5" y="1983.5">- connectButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-1997-472-26-0)" font-size="12px"><text x="55.5" y="2009.5">- sendButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2023-472-26-0)" font-size="12px"><text x="55.5" y="2035.5">- filterValue: TextField</text></g><path d="M 50 2048 L 530 2048" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2057-472-26-0)" font-size="12px"><text x="55.5" y="2069.5">+ setMessages(messages:ClientMessageList): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2083-472-26-0)" font-size="12px"><text x="55.5" y="2095.5">+ setConnectionHandler(connectionHandler:ClientConnectionHandler): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2109-472-26-0)" font-size="12px"><text x="55.5" y="2121.5">- applicationClose(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2135-472-26-0)" font-size="12px"><text x="55.5" y="2147.5">- toggleConnection(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2161-472-26-0)" font-size="12px"><text x="55.5" y="2173.5">- connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2187-472-26-0)" font-size="12px"><text x="55.5" y="2199.5">- disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2213-472-26-0)" font-size="12px"><text x="55.5" y="2225.5">- message(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2239-472-26-0)" font-size="12px"><text x="55.5" y="2251.5">- applyFilter( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2265-472-26-0)" font-size="12px"><text x="55.5" y="2277.5">- startConnectionHandler( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2291-472-26-0)" font-size="12px"><text x="55.5" y="2303.5">+ refreshConnectionState(State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2317-472-26-0)" font-size="12px"><text x="55.5" y="2329.5">+ setServerAddress(String serverAddress): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2343-472-26-0)" font-size="12px"><text x="55.5" y="2355.5">+ setServerPort(int serverPort): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2369-472-26-0)" font-size="12px"><text x="55.5" y="2381.5">+ setUserName(String userName): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2395-472-26-0)" font-size="12px"><text x="55.5" y="2407.5">+ addError(String message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2421-472-26-0)" font-size="12px"><text x="55.5" y="2433.5">- startConnectionHandlerListener( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-54-2447-472-26-0)" font-size="12px"><text x="55.5" y="2459.5">-messageListener():void</text></g><rect x="50" y="2468" width="480" height="64" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 478px; height: 1px; padding-top: 2500px; margin-left: 52px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">&lt;&lt;Class&gt;&gt; WindowCloseHandler<br />+ handle(WindowEvent event): void</div></div></div></foreignObject><text x="52" y="2504" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">&lt;&lt;Class&gt;&gt; WindowCloseHandler...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 190px; margin-left: 1300px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><span style="color: rgba(0 , 0 , 0 , 0) ; font-family: monospace ; font-size: 0px">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22NetworkHandler%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2270%22%20y%3D%22320%22%20width%3D%22400%22%20height%3D%22216%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%2BDEFAULT_ADDRESS%3AInetAddress%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%2BDEFAULT_PORT%3Aint%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22400%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22%2BcreateServer(port%3Aint)%3ANetworkServer%26lt%3BT%26gt%3B%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22%2BcreatServer()%3ANetworkServer%26lt%3BT%26gt%3B%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%2BopenConnection(address%3AInetAddress%2Cport%3Aint)%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22%2BopenConnection(hostname%3AString%2Cport%3Aint)%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22%2BopenConnection()%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22NetworkServer%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22540%22%20y%3D%22320%22%20width%3D%22200%22%20height%3D%22270%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22-serverSocket%3AServerSocket%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22200%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22-NetworkServer(port%3Aint)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2260%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22-NetworkServer()%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22%2BwaitForConnection()%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22%2BisAvailable()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%2BisClosed()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22%2BgetHostPort()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%2BgetHostAddress()%3AString%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22216%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22%2Bclose()%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22242%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22NetworkConnection%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22190%22%20y%3D%22580%22%20width%3D%22200%22%20height%3D%22270%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2223%22%20value%3D%22-socket%3ASocket%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2224%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22200%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2225%22%20value%3D%22-NetworkConnection(socket%3ASocket)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2260%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2226%22%20value%3D%22%2Bsend(data%3AT)%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2227%22%20value%3D%22%2Breceive()%3AT%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2228%22%20value%3D%22%2BisAvailable()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2229%22%20value%3D%22%2BisClosed()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2230%22%20value%3D%22%2BgetRemotePort()%3Aint%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2231%22%20value%3D%22%2BgetRemoteHost()%3AString%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22216%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2232%22%20value%3D%22%2Bclose()%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22242%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div></div></div></foreignObject><text x="1300" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 1440 26 L 1440 0 L 1840 0 L 1840 26" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1440 26 L 1440 216 L 1840 216 L 1840 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1440 26 L 1840 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1639.5" y="17.5">NetworkHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1444-31-392-26-0)" font-size="12px"><text x="1445.5" y="43.5">+DEFAULT_ADDRESS:InetAddress{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1444-57-392-26-0)" font-size="12px"><text x="1445.5" y="69.5">+DEFAULT_PORT:int{final}</text></g><path d="M 1440 82 L 1840 82" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1444-91-392-26-0)" font-size="12px"><text x="1445.5" y="103.5">+createServer(port:int):NetworkServer&lt;T&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1444-117-392-26-0)" font-size="12px"><text x="1445.5" y="129.5">+creatServer():NetworkServer&lt;T&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1444-143-392-26-0)" font-size="12px"><text x="1445.5" y="155.5">+openConnection(address:InetAddress,port:int):NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1444-169-392-26-0)" font-size="12px"><text x="1445.5" y="181.5">+openConnection(hostname:String,port:int):NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1444-195-392-26-0)" font-size="12px"><text x="1445.5" y="207.5">+openConnection():NetworkConnection</text></g><path d="M 1660 346 L 1660 320 L 1860 320 L 1860 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1660 346 L 1660 590 L 1860 590 L 1860 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1660 346 L 1860 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1759.5" y="337.5">NetworkServer</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1664-351-192-26-0)" font-size="12px"><text x="1665.5" y="363.5">-serverSocket:ServerSocket{final}</text></g><path d="M 1660 376 L 1860 376" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-385-192-26-0)" font-size="12px"><text x="1665.5" y="397.5">-NetworkServer(port:int)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-411-192-26-0)" font-size="12px"><text x="1665.5" y="423.5">-NetworkServer()</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-437-192-26-0)" font-size="12px"><text x="1665.5" y="449.5">+waitForConnection():NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-463-192-26-0)" font-size="12px"><text x="1665.5" y="475.5">+isAvailable():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-489-192-26-0)" font-size="12px"><text x="1665.5" y="501.5">+isClosed():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-515-192-26-0)" font-size="12px"><text x="1665.5" y="527.5">+getHostPort():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-541-192-26-0)" font-size="12px"><text x="1665.5" y="553.5">+getHostAddress():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1664-567-192-26-0)" font-size="12px"><text x="1665.5" y="579.5">+close():void</text></g><path d="M 1450 346 L 1450 320 L 1650 320 L 1650 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1450 346 L 1450 590 L 1650 590 L 1650 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1450 346 L 1650 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1549.5" y="337.5">NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1454-351-192-26-0)" font-size="12px"><text x="1455.5" y="363.5">-socket:Socket{final}</text></g><path d="M 1450 376 L 1650 376" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-385-192-26-0)" font-size="12px"><text x="1455.5" y="397.5">-NetworkConnection(socket:Socket)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-411-192-26-0)" font-size="12px"><text x="1455.5" y="423.5">+send(data:T):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-437-192-26-0)" font-size="12px"><text x="1455.5" y="449.5">+receive():T</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-463-192-26-0)" font-size="12px"><text x="1455.5" y="475.5">+isAvailable():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-489-192-26-0)" font-size="12px"><text x="1455.5" y="501.5">+isClosed():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-515-192-26-0)" font-size="12px"><text x="1455.5" y="527.5">+getRemotePort():int</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-541-192-26-0)" font-size="12px"><text x="1455.5" y="553.5">+getRemoteHost():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1454-567-192-26-0)" font-size="12px"><text x="1455.5" y="579.5">+close():void</text></g><path d="M 2230 1200 L 2230 1174 L 2570 1174 L 2570 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2230 1200 L 2230 1364 L 2570 1364 L 2570 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2230 1200 L 2570 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="2399.5" y="1191.5">Server</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1205-332-26-0)" font-size="12px"><text x="2235.5" y="1217.5">-NetworkHandler.NetworkServer&lt;String&gt; networkServer{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1231-332-26-0)" font-size="12px"><text x="2235.5" y="1243.5">-Map&lt;String,ServerConnectionHandler&gt; connections{final}</text></g><path d="M 2230 1256 L 2570 1256" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1265-332-26-0)" font-size="12px"><text x="2235.5" y="1277.5">+main(args:String[]):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1291-332-26-0)" font-size="12px"><text x="2235.5" y="1303.5">+Server(serverPort:int)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1317-332-26-0)" font-size="12px"><text x="2235.5" y="1329.5">-start():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2234-1343-332-26-0)" font-size="12px"><text x="2235.5" y="1355.5">-terminate():void</text></g><path d="M 1740 1490 L 1740 1464 L 2340 1464 L 2340 1490" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1740 1490 L 1740 1874 L 2340 1874 L 2340 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1740 1490 L 2340 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="2039.5" y="1481.5">ServerConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1744-1495-592-26-0)" font-size="12px"><text x="1745.5" y="1507.5">-connectionCounter:AtomicInteger{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1521-592-26-0)" font-size="12px"><text x="1745.5" y="1533.5">-connectionId:int{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1547-592-26-0)" font-size="12px"><text x="1745.5" y="1559.5">-connectionRegistry:Map&lt;String,ServerConnectionHandler&gt;{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1573-592-26-0)" font-size="12px"><text x="1745.5" y="1585.5">-userName:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1599-592-26-0)" font-size="12px"><text x="1745.5" y="1611.5">-state:State</text></g><path d="M 1740 1624 L 2340 1624" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1633-592-26-0)" font-size="12px"><text x="1745.5" y="1645.5">+ServerConnenctionHandler(connection:NetworkConnection,registry:Map&lt;String,ServerConnectionHandler)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1659-592-26-0)" font-size="12px"><text x="1745.5" y="1671.5">+getUserName():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1685-592-26-0)" font-size="12px"><text x="1745.5" y="1697.5">+getState():State</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1711-592-26-0)" font-size="12px"><text x="1745.5" y="1723.5">+startReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1737-592-26-0)" font-size="12px"><text x="1745.5" y="1749.5">+stopReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1763-592-26-0)" font-size="12px"><text x="1745.5" y="1775.5">-processData(data:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1789-592-26-0)" font-size="12px"><text x="1745.5" y="1801.5">-caseConnect(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1815-592-26-0)" font-size="12px"><text x="1745.5" y="1827.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1744-1841-592-26-0)" font-size="12px"><text x="1745.5" y="1853.5">-caseMessage(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1639.58 223.99 L 1639.5 260 L 1550 260 L 1550 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1639.6 216.99 L 1641.65 220.49 L 1639.58 223.99 L 1637.53 220.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1546.5 311.88 L 1550 318.88 L 1553.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1650 223.99 L 1650 260 L 1760 260 L 1760 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1650 216.99 L 1652.06 220.49 L 1650 223.99 L 1647.94 220.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1756.5 311.88 L 1760 318.88 L 1763.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1330 676 L 1330 650 L 1980 650 L 1980 676" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1330 676 L 1330 1072 L 1980 1072 L 1980 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1330 676 L 1980 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1654.5" y="667.5">&lt;&lt;abstract&gt;&gt; ConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-681-642-26-0)" font-size="12px"><text x="1335.5" y="693.5">-DATA_TYPE_MESSAGE:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-707-642-26-0)" font-size="12px"><text x="1335.5" y="719.5">-DATA_TYPE_CONNECT:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-733-642-26-0)" font-size="12px"><text x="1335.5" y="745.5">-DATA_TYPE_CONFIRM:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-759-642-26-0)" font-size="12px"><text x="1335.5" y="771.5">-DATA_TYPE_DISCONNECT:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-785-642-26-0)" font-size="12px"><text x="1335.5" y="797.5">-DATA_TYPE_ERROR:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-811-642-26-0)" font-size="12px"><text x="1335.5" y="823.5">+USER_NONE:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-837-642-26-0)" font-size="12px"><text x="1335.5" y="849.5">+USER_ALL:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1334-863-642-26-0)" font-size="12px"><text x="1335.5" y="875.5">-connection:NetworkConnection&lt;String&gt;{final}</text></g><rect x="1330" y="884" width="650" height="8" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-897-642-20-0)" font-size="12px"><text x="1335.5" y="909.5">+ getDataTypeConnect(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-917-642-20-0)" font-size="12px"><text x="1335.5" y="929.5">+ getDataTypeConnfirm(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-937-642-20-0)" font-size="12px"><text x="1335.5" y="949.5">+ getDataTypeDisconnect(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-957-642-20-0)" font-size="12px"><text x="1335.5" y="969.5">+ getDataTypeMessage(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-977-642-20-0)" font-size="12px"><text x="1335.5" y="989.5">+ getDataTypeError(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-997-642-20-0)" font-size="12px"><text x="1335.5" y="1009.5">+ getConnection(): NetworkConnection&lt;String&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-1017-642-20-0)" font-size="12px"><text x="1335.5" y="1029.5"># setConnection(): NetworkConnection&lt;String&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-1037-642-20-0)" font-size="12px"><text x="1335.5" y="1049.5">#processData(scanner:Scanner,sender:StringBuilder,reciever:StringBuilder,type:StringBuilder,payload:StringBuilder)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1334-1057-642-20-0)" font-size="12px"><text x="1335.5" y="1069.5">#sendData(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1600 1200 L 1600 1174 L 1940 1174 L 1940 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1600 1200 L 1600 1364 L 1940 1364 L 1940 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1600 1200 L 1940 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1769.5" y="1191.5">&lt;&lt;enumeration&gt;&gt; STATE</text></g><path d="M 1600 1204 L 1940 1204" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1213-332-26-0)" font-size="12px"><text x="1605.5" y="1225.5">NEW</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1239-332-26-0)" font-size="12px"><text x="1605.5" y="1251.5">CONFIRM_CONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1265-332-26-0)" font-size="12px"><text x="1605.5" y="1277.5">CONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1291-332-26-0)" font-size="12px"><text x="1605.5" y="1303.5">CONFIRM_DISCONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1317-332-26-0)" font-size="12px"><text x="1605.5" y="1329.5">DISCONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1604-1343-332-26-0)" font-size="12px"><text x="1605.5" y="1355.5">ERROR</text></g><path d="M 1771.24 1087.33 L 1770.03 1171.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1771.34 1080.33 L 1773.34 1083.86 L 1771.24 1087.33 L 1769.23 1083.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1766.62 1165.83 L 1770.02 1172.88 L 1773.62 1165.93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 592 736 L 592 710 L 982 710 L 982 736" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 592 736 L 592 1012 L 982 1012 L 982 736" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 592 736 L 982 736" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="786.5" y="727.5">Message</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-741-382-26-0)" font-size="12px"><text x="597.5" y="753.5">- type:DATA_TYPE</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-767-382-26-0)" font-size="12px"><text x="597.5" y="779.5">- sender:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-793-382-26-0)" font-size="12px"><text x="597.5" y="805.5">- reciever:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-819-382-26-0)" font-size="12px"><text x="597.5" y="831.5">- text:String</text></g><path d="M 592 844 L 982 844" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-853-382-34-0)" font-size="12px"><text x="597.5" y="865.5">+ Message(type:String,sender:String,reciever:String,text:String)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-887-382-26-0)" font-size="12px"><text x="597.5" y="899.5">+ matchesFiler(filter:String):boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-913-382-26-0)" font-size="12px"><text x="597.5" y="925.5">+ getType():MessageType</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-939-382-26-0)" font-size="12px"><text x="597.5" y="951.5">+ getSender():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-965-382-26-0)" font-size="12px"><text x="597.5" y="977.5">+ getReciever():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-596-991-382-26-0)" font-size="12px"><text x="597.5" y="1003.5">+ getText():String</text></g><path d="M 530 2031 L 637.76 2031" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 631.88 2034.5 L 638.88 2031 L 631.88 2027.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1330 650 L 1330 575 L 1447.76 575" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1441.88 578.5 L 1448.88 575 L 1441.88 571.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1321.88 962 L 1080 962 L 1080 1914 L 962.5 1914" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1328.88 962 L 1321.88 965.5 L 1321.88 958.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2040 1464 L 2040 962 L 1988.12 962" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1981.12 962 L 1988.12 958.5 L 1988.12 965.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1862.24 523 L 2400 523 L 2400 1174" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1868.12 519.5 L 1861.12 523 L 1868.12 526.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2230 1351 L 2190 1351 L 2190 1461.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2186.5 1455.88 L 2190 1462.88 L 2193.5 1455.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 747.5 1914 L 650 1914 L 650 1084 L 293 1084 L 293 984 L 292.55 963.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 296.18 969.04 L 292.52 962.12 L 289.18 969.19" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 410 1684 L 490 1684 L 490 833 L 589.76 833" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 583.88 836.5 L 590.88 833 L 583.88 829.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 747.5 1914 L 789.5 1914 L 789.73 1019.15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 793.23 1025.03 L 789.73 1018.03 L 786.23 1025.03" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 170 1684 L 440 1684 L 440 323 L 795.76 323" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 789.88 326.5 L 796.88 323 L 789.88 319.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 97.5 761 L 97.5 297 L 795.76 297" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 789.88 300.5 L 796.88 297 L 789.88 293.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1220 1200 L 1220 1174 L 1560 1174 L 1560 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1220 1200 L 1220 1344 L 1560 1344 L 1560 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1220 1200 L 1560 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1389.5" y="1191.5">&lt;&lt;enumeration&gt;&gt; DATA_TYPE</text></g><path d="M 1220 1204 L 1560 1204" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1224-1213-332-26-0)" font-size="12px"><text x="1225.5" y="1225.5">DATA_TYPE_MESSAGE</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1224-1239-332-26-0)" font-size="12px"><text x="1225.5" y="1251.5">DATA_TYPE_CONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1224-1265-332-26-0)" font-size="12px"><text x="1225.5" y="1277.5">DATA_TYPE_CONFIRM</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1224-1291-332-26-0)" font-size="12px"><text x="1225.5" y="1303.5">DATA_TYPE_DISCONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1224-1317-332-26-0)" font-size="12px"><text x="1225.5" y="1329.5">DATA_TYPE_ERROR</text></g><path d="M 982 973 L 1305 973 L 1305 1171.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1301.5 1165.88 L 1305 1172.88 L 1308.5 1165.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1217.76 1247 L 1145 1247 L 1145 1971.5 L 1071.72 1971.43" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1211.88 1250.5 L 1218.88 1247 L 1211.88 1243.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 530 1771 L 530 1224 L 660 1224 L 1217.76 1221.01" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1211.9 1224.54 L 1218.88 1221.01 L 1211.86 1217.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1740 1555 L 1590 1555 L 1590 1325 L 1562.24 1325" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1568.12 1321.5 L 1561.12 1325 L 1568.12 1328.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1070 2083 L 1250 2083 L 1250 1633 L 1710 1633 L 1710 1366.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1713.5 1372.12 L 1710 1365.12 L 1706.5 1372.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1890 1464 L 1890 1366.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1893.5 1372.12 L 1890 1365.12 L 1886.5 1372.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 530 1875 L 720 1875 L 720 1425 L 1660 1425 L 1660 1366.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1663.5 1372.12 L 1660 1365.12 L 1656.5 1372.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 589.76 946.99 L 390 946" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 583.86 950.46 L 590.88 946.99 L 583.9 943.46" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 180 1684 L 180 966.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 183.5 972.12 L 180 965.12 L 176.5 972.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1020 1914 L 1020 346.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1023.5 352.12 L 1020 345.12 L 1016.5 352.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1740 1719 L 1050 1719 L 1050 999 L 984.24 999" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 990.12 995.5 L 983.12 999 L 990.12 1002.5" fill="none" stroke="rgb(0, 0, 0)" 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%">Text is not SVG - cannot display</text></a></switch></svg>