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

4 lines
135 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="2409px" height="2840px" viewBox="-0.5 -0.5 2409 2840" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2022-04-16T21:18:27.172Z&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;rGoGycwoXakJpxAojhO1&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;7V1Zc9u4sv41rvI8OMVF1PJoy/ZMTiWZlO2ZM3lKMRIj84wk+lJ0HM+vv9hIgkBzNUFQGlSlHBEEN/TXjUZvOHOXu5+/xv7T48doHWzPHGv988y9PnMcz15Y6D/c8kpbXGfi0ZZNHK5pm5033If/BKyRXbh5DtfBodAxiaJtEj4VG1fRfh+skkKbH8fRS7Hb92hbfOqTvwmkhvuVv5Vb/xuuk0fWOvUm+YnfgnDzmD7ani7omZ2f9mafcnj019EL1+TenLnLOIoS+mv3cxls8fClA0Ovuy05m71ZHOyTJhe8f4i//vPby/THnxfXd5H31+TX9X8u2F1++Ntn9sVnznSL7nd1ePL3+K2TVzYW0/97xq96tYq2UXzmXqKT8eabf46eiv4t0V/w1y/4p3tFBn+fXHz3d+H2lV6+i/YReswqKHY5EBTgDtbTz/y56NeG/u+JiPPQF+NWMpjZUToCHhkD1HKNf+MX8/Bnemik6vraWd90oDvdxslvQ8czOxOsEdyypihOHqNNtPe3N3z7VRw979cBvaFFWvKeH6LoiZywyYn/BUnySvgIt/nPSUSaH5PdluuFviR+/Yu7H2n4QhveOV7edv1T7HX9WmhZX2I2I02rrX84hKv0xG245Z+ZjwH+aHCMD9FzvOJOufmpxI83ATf8bj7+EmmyO2ZU+TWIdgF6d9I9DrZ+Ev6AX8E/5M0b7iruduiD/Vep81MU7pOD9OTPuJl0/pn3ncy4t3/N26cloGp1E3s2h+5CDtNX59sKo1M8wcBcDW6OSFSMZGeW25DSBcb+4SXcbf09hTjm/JwRyBBe+dtws6fIQvcJYtL4I4iTEAnoy+xkQhngavUYbtcf/NfomWLhkPirv/Pjq8coDv9Bj/F5VKJOcZLxizMVet7je3B4jwMsnT7ngLO55g/+IeH6IkG59Z8O4Tf2UbTrDgE53F9FSRLt+BtLLM7mC64hiaO/2TQEsRUemYADSIXwquEQ7ia8oONRxje/ZK9Eb87B2Hqkk2N2cs6da8Bru593aFr39xsyhsU3c0vwP+n4aoT4wKv5W4S9vZ8EV5hGGYtLzPVWRpqUMlIpC8moeXkMk+CeTqqo8QXNkmfABNAJNRmnw6jh0cENZSsScGNQhQ5g7BsNsVc5xGRUkOIW7s8Rk5LHX94ncbjfoJ8ePutd/0Ja6R0icmuYMmhMqdTJhdg2+E6bykUY1obQ4z6wntcTvvUuGyvaHKH7fN8yEfEYrtcBuRkSJYmf+KnUobDIZifyevRbrgghltY7j3wZOSDttthO/uCbxMky2iM55IcMFwESeS8BFXuCDOfhrAJjXs9s3hfGuNuD8+GSLlXCaP+bv19vybTWeoK0BGyZCVLbBFkyC1XAc+JWwNNbNJSB9TOkXTJDuvMjnSFnpax1QRpXGWudMSm9xL0vrU9B8hLFfzOGe8cOl3x3suzFeMkkPllvpgjCozK7+h7uCXPM8knDCP6OLJZh6S3aRCUrqZb0+TqrFI5IIm2piOfhuHz0k/+GeyS9lnwXA7IqkDWYADIl1xoClh6nl48JlosaWF5fPlx+ffjy+ebr8vdPn26WDyk6HSuXfQaKxwRFzuQzKija3LPrsXj7/u6jweKxY9G2OAV2VGDkPq8GjNfv741sPBU88pgbFR45/aEGjx9v7u8vf70xYDx6MHojXcvY5W4cEYw3d3e/3xkoHj0U5yNdv9jVjhBqjvnj/ubu66ffPxmZePRAdKyxrl6auIsIEC8/fDA4PHocumNduJS7lOjc/HwI4k/+LoAwaPA2WrzxrpZR4a3Oz3JAJCyAjR4arI0Xa/OxrjvKnSiliNqGzCcuBLXA/t9GsNsh0LBgS4axBxZWeWGDeHRhPLqluNv634Lt5+gQpu7J6zi9CsRkM6Apho3L2yjawIajqhLUlPs48B+qmdFwi5sf6A9z/J734Acu+JiJmKDj6doZIzMvH+n+7z3k1GBOP6EjVu4BzX2mv+QkNjMKEP6jlO8rwjsr+Z6PvVTB+Px7lTA+g98mSIhecs5F7BlFZfSKijtWpdgp9x4JyDsw5JGu5/nPffBCDkwI6THhcayKM68fV+Mxft5TKBrgHRHwJl1Vb+XAK/cUCcAjocN3wSoIfyAIGPgdFfzckRrlK9JkLnLoPcXRKjgcrhE1z7mFyBodGxgeEwynI7XJN0glytTB/VrEIW6jC166HOZOxURelpxMXp8C8MST/7qN/LXB9jFhezHWpU65v0nANjOGman9mHDn2WNd0pT7nQTcrcODgd4xQm8y1kVNtRuKg94OqZX+JjhvOmWz/gamxwTT6VgXP5zfayyVZLgCMN+2EU0GLpR/sVhLXnLmHVdg5kvhZvUVZ/IBaF5GhqOYVEeGW18MXEempK6LN+fAx8dr8r4P/vb0k7J7leDrjUVeyv0u1M36x/tSZJo0dv7GI01j96wS1FXksTt8BqQoCm27BK7t89g9/h1OodKLW+1LArlo4FIv2ei9JTu7EiCqa7249Q4Sh5qoz5/iELHrKxICm2JYm9Hbeg8+aoGsrqJHtRbm1uXKrLLoFgOtcUJr1lVoqYZWuXcD/0lj0/jf/jc8iiui+/GRaoWoNVOK73RVtIpYrUosm1J85WxY7d0Zg4KWCYrjVdDq3QxGQTvrL2iUn1qUAK2zvqY4aNTl/ArHZjX7GSaC0Qy1fBF6FE1muOGNFjOOMyWDGTcJDWUw60z4aqs+pE2FWLv5TkV2uTp197zfM4buaPPqQUNyLaFnKw2JNn/0f0oXvEV34sZ7wGKLVcWIJxVqRlMNqDP+qtNUxqBGZBxSHwnbcZBVS3f+2aVqRPy8b+8pplr+kux3gM/uo5ShkZAGmjtmmr1NuRjIQydrMKrxVlXftwpvrmq8lRtv6Sr7I/X4fggPnRbcxicy+gX3vNw97MwqFF3XbWg+ql9yn1xtXz4ypDyuFwdAMsbiC6qmvJZqcYwFH1i4pCnkO65IjEkNDzY0XlSxmmpD7aTaB8DF/gZxA8CaotMngNWKgsB6sVruVOCwmkaxGbT+O9BaUTNYL1rLbe8cWncFJduA9cTBWlVUWC9aq2tzpcUInsMUpRW1LwwkjwqSFQYxvZCsTqMAIWVKKr0t9KQNbipKAFfiRnFNpUnjFAjJzHVeKtKQ4DN1fEYuxypSbPXKsfoiXwyQ/nrN0HguWH7KM2aFFNxx1/AyyUanzIAVecCVDMh7SJTsllnvWWP4fInDJLgNsak4SFnxwKfIfSfnDC6PCZdORfSe1onBq06fmPo7Cgg+vENou9k/74LYz2o+pqc3wCW81UB0LLDbfSPiOLUvXBQu33870B/vP93+3vqifOePdtelmzT0HGQAMKRyGE476ssz1eKRe7boCC7Rh0FiGF8wf+OR+oInvF+VQ+d0Vi4kXX5iF9G5mDVcz/0LfcFeI+caU3Y/+wl+K9yFswLnrcauNgK1I5eVb/H4VjIUb91SIu4bedFWwO7eha1fW+4BbjA5BkxOyn1l1ZhUrQm38ZUdQCg2iVYzIBwDCGfldjq9IKzbnuaFasLb6BDAQvG/UAczbx8XPG2royasHJ/V29mk4S9RlHxmq7CCHkmaDPBGDLzOGqNq4JV71AoxgjEal8v1Gi2eD7dhsF0LEHxAKEvbDQ5HjMOK+D+9OCx3pEk4/IyG3YDwiEFYEdanFYS8vakchOlOQQaCxwtBpyJWTy8Ey/1G8mrZIPCIEVgRmqcXgZyGUIvAyzjwAQCyZoO/EeOvIsRPL/4aOVaYDfvqOUki0a+SNRr8jRh/85GuRPhQw+qsOQO+YwWfa411BdLIWUIj1f5Mzxvt7/gAyBdRHBUAqwuegZAyiRlvS8xog5uKrUcrcaM4MWPaeFuUcI9GHGHgn8Bsi3JcIqtiwwm9IquRC8N/etoioGBuJ05cg77jQt9irBNmI8dFEm022yAPqTLoOyr0TSqq92lFHx/ZW2ssMaA7LtBNRmqhmzXyUZj9744Vd3zCyqhw18gzYXB3rLhbjHSBMWuT6mFAd1Sg8/gdBEYFukZuCLyqfaVJzeekq0HfUaGvooCwXvQ18kMg1O1CnGsn5QoZKXhcOKzYa0ovDhtv835IMA4f/f0mWJ/f4wNy0T54IQcGj8eEx6k11iVIYz/HIUj+YIGifJGRNHjU4PGo8OiMdWnSuCAawuM9n8XBg7KQ3mGQeVTI5FO+R4XMxpXRMmTivI7zdLfxPNXDAPKoAFlR0EMrIPn3alyqr7wYn6l3d8oonlkjXRDNq+uKFVH8fv89OjdQPHIo8pvEjwqK5e4YGYo3cRzFBovHjkVvpOugebmLRsDiahv48cc8e8lYKo8LgfORrnf496rawGYd+y98WXIDv2OC39we6+qmejd4WhmWlEA2M/FJANEd6wKl3mPDgGhWJ6eAQz5dfFQ4rPfUMBy2tvWEgbH1nBKEK7bK1QvhaudOkxryy61/OBRO1FWPh+scwnXdc0Z6JF3P6cU3PwJmxA/wr6bcoL3gewvMLOyOyxA+u/xNmCGNuCCg1O9XNEyPH6N1kPbGxMNDcotkBBonTD18iB7DSIDfgQojNrZ4ZNNxzSq6izIpy9JkNdWJNMGkyyQJui+SIkgwoHs9JxGuu85uzW9bz3an57esz5roWzIakte0aROjXd6EPrRIMItdsMDkwJe8st6LCWugdCONDmti5Cq0+Qd6nJMItd7SB55lhGHPp0TCbEyuef8Qf/3nt5fpjz8vru8i76/Jr+v/XDjS2AfrTXDPDpH8fIw20d7f3uStmdik45v3+RChWYGO6f+CJHm9p2OMh7tITDRa8etf7Hpy8AUfvHO89Pj6J3/2+jU7Wl+iJcMLfrUnNHuQltsQfzI5Tz8Gf0E1gdAHR8/xKqgYGJf2S/x4EyRV/SyY4nGw9ZPwR/FFIPKRS9FX+a9ch3T6y+78OSIzWAqkybQIpBk7vm3Yf46d9QXo0DfIgZR9SndssSGk0wXpRksoS5DLdnTg93Nwr50mfI81keIeDsUdHAr7N6QMn+7dQHZukPdtoGAq7NlAr+T2a6B9+L0aaJfCPg3sRgV+YSoGO+DS0un1PUgZxxbA4chCxp4CUmZeIWXY07hNFbLHuYJQA2Qa+Diss/CPk7ZLEGRbD5CcSJCUwFikFjfts0m/IMkaUaucOWQSvhaHpnYIJ4rmBQ8YKPS11g5p0ucI4uh5l2yxQabVX86wWsWUKng2T1mZKEZljMwvKPC6QVhM0KZsIZEtI/hFBDTt46UDWSDglcHyjCwZ0mOiEwhLBW6hUJRJE1UU9zoyTW8Un5ZIa2DvhWbi2zLiu5P4nltFeerYADYmLoCN2cTpIsBtQYC78/EKcFuG6cWZI+5t416mv9KC+LPrkxNLFbhkM5TVFJDlAqHNDAViUpm8cixHhkIa0oxnp3D3tA3oHPU5RsuFOHk1GOgVA56jGQP2DJQGJP8ig8Dv3/6HZF4OAWqCYGkZ1QYIg4tOuGCLS52yQVb0uWkCK6/Abj4GAz1iwE5JoBEEsgGCSAc+w8BMFIOAwW2owSoEg7yizcGAQ/szJLxHS5UNajNQUAIFT7fiaM8lJEg0JmUkC5YeealXA4DMIcEVjSQlI0VUuDIqXAABxSKRaYlIyL9RRXxlZJ031AXnyhhcXhlSk1WJGeO8Shn45eS4vmiZUYWCRUM5P6mwNL8RBvKSAMGAq/QpTf8sZGJZmAqI92TJLydJN2zmPHkbpzJ4OE3VAHXwcEB4bISE1HTuP//l36IfDkP/mX76Q5N/Tn/M/QDxT10lHIT6rq2f+osy6mNrEEB40XZk6N6B7k3dF+ronj5Nojsui7FHE7wR+GpIr18ftMFVwdI5o8n+1ApspVV6uBo9p+vP1msAmOi3BcmOowwT8fMew8GQXxn5tdt/HNksnIsEHFtwR0ooICIZGKiDQVN7kUIYVE0NiG4GBgN4kC3trkLIU0gw8BRHq+BwuEYjn+XjWGt0ZOCgDA6udqehKysHFyv/gMuKfg/j3TlLxzp5g6AyEk+1q38uwPKYxGnynUBiNGhZoh3Xlrw+Bfzxk/+6jfy1QUZnZMz1a4ZAxABGxjVfx9+QtRVZp7Z+TQ/w/WOy0vIDhqJtKepqV9pgXy9R23hGNVqaEvpPtWtpoBeP0n9dlNUGAkog0NSwqw4CoCOPQmAnVFHgimKih2VFEvISCQYmamAys7WrdAuJpIMkOGd5yt+2EU5JEhKV8wzod1nO85czLju6JAGafkw/Cc6MDPUZzhOYxu0ynKWUZC+NEk9TksUcd/pi7CoBBn1kJ8s+QRoG9sd7CTImw63XDDeyuxZPesBDnCWX8GLCtiv8hOUJbl56/yPIUAat0gIch0pRLiltUJ4BBhJNWY4yYKqjEZ+Ef86f4hBh/RVxDJaWl2TiP/HZXhmtmzKosnkcssygw9Wjn9BCP4bcPZJ71pS1lZEbKtSQ1g6i//vf8JiskjyHL/3fMmVGdMziUJkREDWnX2YEMDhqm8RLtPfRTOJlaRv/2km8r3Ij1YRvPKOrisxzZxLlRrEy/xkm3MIcHX3hzuTLcnygYFXOuKF+UT6Hqau27JhtTYpCOKtNoraQGGTrK2oDIZ63v5PqjJI6cPe839Pyos2X9Z1netdqP9PTpo/+z0LHtvN/D1P6YibMsQsgWDObeJvO6W8TE1DIvqaptITn0mDnhkOlTKJOZIsWnUrj530TX0jTQpgtE1/bT6692r+L87Qy6kP1uyDqu8qoLxuO6mtcGMNmr0siV1yjQEIhS4ooCoVOi6JjKt01gSow8P46nI1LGyhW6czO4MvN56aoV3cpNikBcPlyEIarulgduMDbiu6mnWVnXUXRNvD3J5uepRkHQGWvYXEwgSI8BBqbIh1tyQoU5gLJqqpIxwTMv6Uyn9vplM0HiNk/mggNxZwOBN2CkHCVVRouW7VsguQ2xGpJkALjcP6dNCA0HLIY6zSax8CiT1jYgDF/aE0ADvJz6LaJpxu2q5vyE/06IBzbR0TCkiqCQMK+UQnV4mKmWydMlVLewpH5/9GoIeVva+qTD769hL0A5orJHFIrJxWK5WkYOTwoToU3cuQlymlzemzMGm+RXVQ0tDFrgABNF5n9i67mti9TmFgxGCZA9hIIBmXzGGziepF3u0sxAW2EZ+SFOojMgASnYSECFbanBWqiKPlMlJlsAtnLnm1D/zfR37YaajTqACAvgS7SqlVcocrbMNiuMyg8IKrTFoOHfvHQWIFQhgfZclrAAy5cacAwDBigbU8GBYMzLYmGl7bqKiqV9Vt5GWi8DRrQzieDQmMqW9OZnEhrWRspMcySE9r/ZFgoyAFBxTWnQcIwSIAKXg6LBNlwWkTCZRz4BSCQBoODfnEAVb4cFgelxkmmOVw9J0mU2ybZocFBvziASl8Oi4PSmoe49JkBwQAgcKHCl8OCoNQkTYMs/qTtRjtQDASo5OWwQIAy8AQim1C71nSF6lyCTlFFZLUXZfEzhyDJAqqqN8EyUXfK0KFb/NuLsiAbBA95szTItFRiVDKwUQebhfbJotQv4T89bRERMRCIo9JU31Powm4acaMOB6X+iCTabLZBLhUMDhTiAIjVHBYHs1J7synCqZ78QEjmwOQvtTGbMqyDIGChW4+c1QU8GvKrI7/n6NYHZ6WmRKwPvtIEnnPUwaBAHQqgDRYHXkxC6iCr4SQvJg0clMIBqN43sFAoq+kVB9/j4PCYI4LstWg2XxwOHFNLu8pYUbj9IOzDnVdwL0Q9Gnyow4ejXaGsyBE/8Pt0n9PSZHn8o4GFOlh42hXNii0/DnQjZxzdlkuMNN7NoEIdKoBEvGFRkYZSlBSUoBs8mf0+hkucsXTrnlkhrUZLEezmDPZmSaIaFmmpfo2wACyVu9zXTUBgSkooIr+nW6mcgxVk/R0mWFpHljtabv3DIWvaFDqkVeignExase5bnBerwz0fyelzesHND1Ka3grw/1Uip1VRUwGZ6ig5b6gHTlWVC5pDywM67ojP9oUxnP7fc4RPrGj9UjzU8eabf47e16JbgYG/fsE/CY1xuYiL7/4u3L7Sy3fRPjoQKhS6HEi1B9zBevqZPzeHgUeGE5Ht8WO0Dra44Ya04nTO/CgdAo8MAmq5xr/xi3n4Mz00cnV97axvSuxOt3Hy29CRzs58CpKXKP47w3zajQ571i0ruoFauLIb+LxD2ihk8TErvoEbiyIVn8RCFZ/hS3Dgdr4IBz7PleHAp23SmJfiIM+dCj1pOQ58yiJnCiU58rtwZTnyvnxpjrxroTwHd2PGy3kLk8FcAxdPl9+PowJl5iZ0zk5lJM4Z2cNVNbKesxwS1mve7HJQYZyenZtY3DnG8Tlq8H5v6UnE+tmJDfcChTfjyn0UX41kTQDvRorqlrwbKQJS+m4lryYVBZF5hBwWRrF4gnFQNUe5pRyF/1xd39xe/vHh4evl9fXdzf09Pnv5fh8kzOSFjtN0f/Qrv05kO6KpFNmLzAnVzMXrLLh9wrfeZeNImzPdBTcx7YWCPNVfclSnBeXp63lX5A8hEtFd0BF57SVpt8V28kfSbPDNMt1Gli6TTjyTyTuYZzgA8jhqxRsNWQMAXiN88d9dga/Pv989EHDRoTSgKgFVA5FN9K/8cFgYetwMPSYYepUwBOFFgssLA5rO3tCU2AiDLNicA9wDRSUOOIfA6cLgdEtBWAw/x+1xehUI0GaoUwwa7HvpAhruMhWY4SAJia5VHKDpmRr+z/EInjH59Qv5wRRSeh5fgFcDeDAfyMFGHFkj3FTDbD7SKXLWAGcMZgZa44SWbY903uNEJISt6CnYczHRfqbVi1q+syyVcPn1BnEDIs7tOGmqRtyiFeIeo0Oy93ekV1Yz26BtdGibcguHMaHN5p7dAG4GSvqhtOhqxVMNJe7zYONyrnC1tS1bAoiMbVmXbdnjDbUNjctOJSx5a/XbjMskYhp4t6M1LvNascBSFzRA7j5a/R3Qmf6+2GBMgArtynYNwzQzLFfzhWpxXe25MCY9BbN8C9hUGIIrYaPYpmeX+yMuCrO8ZNEzAmgo6Ey7zsSqJU65E0HAjsHLkHipsOvqxUuNA+HFD5PbKDbL01GhqcqUqxdONX6C8HD5ww+3mCYMSN/o1lMGPkPCp8Iuqxc+Na6A8ECCRtcGO/qwU2Fl1YudGqP+Jkh+iw4JSX8z8NEGnwrLqlb48Ka1Cvik2bUUQbkzyABoIAAVNNZRAajcNE8AtGKV3TBuaNaCQc1wqJmMVGHmDYGwQ6fBEss4dfgbj9SpU5j5eCPk3Dh1enfqVKQMXBw4d45x5AyRIJDJuKN15NSkCBhHjopwjeawGakjpyKi/0Ka3c8luWQs9ENiaKwenboQf7zvyPka0YQg58EsMLSgZ6z+nbrA/ThYBeGPdF36YDAzIGZG68Wpi8g3XpxRwGesXpy68HrjxdGPnbF6cfjSBSVm+LtgFyUB58ehI2jAMxh4xurDcWtM8Bl4sCfHuHB04We0Lhy33BhP8GNcODpRo92FQxqLVadYP6k81ZRVRrulhbXSWlYOWBsPKEbG3DQVWwESR0lpyTtc1c5/TiJaXYvbdXBJ63ld7yOyK+H3cLsVmhoVQLPhUmfpBW66b3O2j7Nc2zLdh6lQxM5SVPpsYUmlz8RiXAJtMp8abwPHBbgaEIlWM+S9aEUfWsGDllIn9Z4R35nsOaNULnjN6JWcx4z24b1ltEvBU8ZuVF7WUN6esg9IZKXu0lL7QLVTC4KEXVHYkD2O82ulz3MEBBJPlvA8ewo9T3ic5LESkJh96hvAKdfXPJOrWhWz3VOH1ez65Cpu8uw26V6OkbK8DMjXIp1r8aeqrubCqaI6qTVFlzYnTOpmxVWHAYTn6AaEvB2URHCzmXBbsqZ7ZtSRVdVewum2o0U2l+sysRwuqXAO1SQf6nTIoxUBygg/1y7g5V3iz8RKSYbcfZGbOFP00hvcuqmkepFQu2gJygA+9M/goCEO3IYCXx0OwO1WymoK5RZIg4HeMJCWUNeHAXCnLqnQj6HyW6i8kJf0A1NZLqgvTOfNjEqWMSp1MyrNrKKVxwX2b3RASKSbb7ezKmXbhR6BVcmGdvMpFLQRytmcsJ2hLwvColIgASYlGHzK9pIFduqRaGlMCG3pCliGQLqqMiHY6cajPCcDhWDSMjAnxrzK6DqVhffQ/ArsAC9VaTHkbEZOwOAzNDlBWx9UQsUo/m8gNGTqGZrSoG2vGBfLRTYayjakLGC8GZqyoBWPC1k1ZG1PVsAeMzRZQaNcsSaIoWx7ygI2mKEpC5rapHIduZ3V0LbhctbWr1DJBrazPAzzRHecVUfQiXa9yS6Nw6tQhI3VtOdQvIWxmpYjVDahpRUjsnoRxlJaJ4kYo4/YVJquIY2ptFfCareV2uUmNbnWAldp4cT4WB2F9VtNbdDMltdBIFUQjHLYkq76zac2aFTLKxSQ+gSGng3pOQIrqV1iSzNW0jeSVr+Z1AbtacZM+ja66reT2mXWtELWPcu5N4RtSlj9ZlIbNKWJGfHGStp+KavfTJqmzRozaT8U1W8nTY0RHEXbhZSaPOVuxtHcxpmK7iyTmEODOwHQkAn5081Utp1y6wpLpH8HJjSls0qa1WTtC714gyr6Kte2zkzukywP2phTQYgqFFiyTebio/8k0n9JCZ5b4rLyCxkyVtm5k85yb5b6rA4ygKF2aMhA5h5jgX8rYYGEZ5CwyizwDmj12aExOEfz+yFfY5BxMvppawoDltqhWRe0/rCQZZpj8tlEpHcgLWS0HZq2sgXogmj9ZinZgZ6ApXZoesqGnwu0UNiFeKlgaNqBpoCVdmCaurLBp1SxbmYvMMFU3ewF9kyoa+ZYc3n9PoWsRxO7k73gqKKpXCCaKl/gLdGDCdIuLxEFw9V7dLQRzAEnJpb6iq9yW8dXgRhUKKJkCyZH+fdrU9zszSv8GgwAK/yhMQAYhXIM3AWb8EDky2UXS5FBjjLkACaEgZEzAaTHM1pYfiqWzDldW3H7yoiWOjxkia0aAQE4HpBumVA04P8NAlQiAHCCDY0AKOrTmIvfTFmgEDNIWWX24gkY9slN/3t+/j/PFQg4i34Zd9IrjJWyBWYAC8jQ0gB0MmyC5A+mJZhgpk6UBQLVBqYsWAYZU5ZM84yspzjhq6MqFKI2NL+CHiNiHbwjAf5o7I0xugNpgVi1oUkLhgwfEDUMZd9C2an+VTjgOnqKo1VwOFyjAU2zregsa0jcnsQL7XpU6kwomOj8Q8D043OcVUcs9IbIHYnsOvpVKsgOi4h8HR7YasoI6A6EnWjXqoAtBghhPyIJ7W8CkXvJ4ngVBj+KbcnrE29UXT75r9vIXxumfwM2ZtrVstT9U2UvQ/C4jGMy3rg2edF0VjRAovGIX//CB2hw2eEX/tz1z8LR61nqdUcqfvqQdejvov364THcp6duw236QPQ27IjcZr0JUssmouFjtIn2/vYmb70KfoYJfaPJYsGOv6T3Qr/zN8IHr9zB5yAO0TBjNuBcKfiJpTBgTYfoOV4FFeOeVn5H37YJKiFUloXCQcYDEJO2xcHWT8IfxTeuCCX4HJGcvSxwYSoGLswEKNJPZZflaJTvNBe3dhO3bKNjId0JocJ/5bql21Q2fmWXPaj0zTyx0k3xAvSDvkO/QQ9eg42cjpvzmvNLLRuU1awaigsWIhc4HblAvNPEFu7UGxdUgxrgT7FK/jBcAJn1031R6f/+Nzwtr5I8+yPLAukcyGYS3yo5sjyQzRUS32YWoN5CrOik3oATznvzgKDoOkcUmPlmola669xUorSKeYPxWg7XN6rckFNKoHJxlF4ewyS4R6TDZ19i/6moCKgbLCg4DBosZV5fD3QIoAY0R2Lj4gNalC454wQ6c6LevL5CQmsoDtTtgtmjIir5bSSfg3W7ZJJ/D+OdoXkfNIdC0QemORjcUaS5YIY0VH8j1bOdnzSSHQzPKJI9NVIamvdBc8jLMDDNG8zoN3EcxYbivVAcWC8NTXHQ808pLmx3gxqbLpEMHrrhQb+ClxqmCnhwMTUNHobHg37lbwFtR+jyESSHlY+oT7yR7JezFJyWV8/hdk1OSL7L/FTBhZk3i55Mdub0Yn0HwpSjX7NcOBCmMGYooIzHeww40a+NTqF6l0X3Q7B/3gWxz6Ye0QNx/3D5cCMBwHgd+vU6TFMt1pTbA0A8g4SdgEiT81TG/G08BcOWyJrJ5pFPN/89udlGHQVd7SVYZrK1Y/n7p9v3dx+/ov8/3SzNXgXNyQksXYcmp2zKYGS8uTaEbExI/aXpZrLel/Ll9ft7w5ptKTqCinRz2ayUk9KwZxti6i9HN5dtQjd3d7/fGSo2p6L+AnTzBguTMYe40pftJYC1lFoDRbDO7eKCdiFu0tk4gtUT4kRta9IskLuv9a7jypM38xJL6DJ1DHs1xMxFswhoh1kAOHYtpxazgB3GFh7oAu6KsdhhnImsgVxg2UDNyNeXD5dfH758lq2Fxz6HqQ7pZAzfylADYVDZROdMgAKWmMaim8EQvlfCQ7sTDEx42b5zQWZryZtkSN8r6aH9CwYmPRDsj6U9IawhuxqyQzUGh6a78bYooWxTTVKVu8UBikfSOLU0BFWMB2gYRcALhNOLKdEuESBjFbgCqcg/eyNwyjIWdn6yegwOtyGuSPg93CZCjZRT3ftWOyaAugpDzxIVGQ04xJmENzLBgo8NBvrGwEK/hggFFzEM3JO545TLT+oGgONoVxWBslkZAO6YqmAgoBACXkOdUiEEoODmdB5A5DXkV0j+mXbD4LRnDxirZZTWLiLeL+oMK69klHnNznifWe5CK/GadXWF1dY+mjLVqNZn5tDFvi6f2UxwmeU1+tr6zGZT4U6O6H1T7TKbNqg50AGHFo9DNSisr++lCqdZbZp6566jt0jXRHDJLjxBoDV27k6EbcMWVjPfbuvyRBOBJdI6MuVvJlwwZZuGKS1PlFXXbcg337YRdvI2YJxMaDdgnQYswJjLHomIz4x59axDYwG1sY4jZhZM5h2FPFpwioER3tBSHlpwlqN1H4lW6j61jXYxOkUoFiJ22GTEh+o0Y4s+AW3NGs8Fjt65QAzRyHix/WQgAVrkDdWAnkEL6J7VluaAnrVDtEbNJd3Ntx6tZRVqB0KrK1QptCXNuDlapRwxUV1XjtZ24rcOrWv/8EgObB6675x+NQdFEEwjYmoR6LpaASholZPO8MtKq2TCUsw8VA0/IAC+XS5reYSayWftN5/VmYqyqnE+qwjQ08tndYDgfwmRJsKiTAC0CpMcMp/VAdIBMpHz9ePN/f3lr6cXHNvT1pt1xNWe6urM5fCZnLomo64tQbUnuzpAIc4CQXG2pCFoY4JqT3p1gCqbOUFN2msHmupPe3WAeoo5UU3OZEt6as98dYBduCQCdjF5tbIbKPYL6Fvti+uuiWiib27tl1ZUA5ubXKvBMunN5qYWmDk6B2+aPlRvo3J0onYhgtabdgStI9ioFvbQkJVXgBqEWx/xMIN6nxoD1aHzl7aIGRGps0lHpIrp6vl2Rj0HIrhiNvuC8UjZm0kXTOxJ9QXSRFG8QE3kgmv1vL1Y9wmhbVCCvglhehxsZlsid8y6zgi2JbHs4HOCGoV3iBDJosqkCpWO2xiXkxK/w0C4tEUX7LSzem2LjuFsX9TBcAll8PStXrOYgn+9hs3i5PUhVxSD884S1RGF83xwidpvsG8PcQh5DA3ejJpDr/3O8uw6/OIjcS9e/TqAbsSKamV3xNpinNfwiIU2hekLsV310PYar8aIr8YBt7pxK0UizLtmVdiOiNtZw7SK1tHqM/FJnr2oeTcxHMgrritVrfraxat3FP22y/HEhfXOsmo2Uy+LoawV/Y12dx9sbmjBZWWOhqGigMVt262ulhjbE1JC8myTvrnMsz3hpedD8Ew62fVulDxt3b6posRquY5mUepYnQPipUXpomFAfPvd28XcQ9urNktKV6DPng3BPP06oYbig8LE1pwpasG+0JzN5Iqw6Sz2pcSogXM/3DS0Qq0qM/UkXWZaLalBhePoTN3NVZmFVlu3VAHWdrraFB1pnesMbVO0+3XKwOvc1DTTo5Ktqiq2bjVZkpeuiIjG8nImGawbZn+21g3ciQe/tOKZfkR+GiKn3aKwxftIjsmQ6DROgWKh06PhArs7F3iS335wEduv22a0ew5oQ4tY/7/HnQSk3BPlYFFTFqUg03o1GXdctzR01OkzV4k2pnnndYtYtadxXGZ7o7D4pMUgJl67na+kRUkSazorTMaWXWPWrVoKnaAha6GXSTwpDrSz5JWMRZ4iJhHj+NCT5pWvJu1T4xbqAiniqfTrtZqAazlgmHAjzVOB7NfubK7NQstUey6ktIK6IFLpgplbY96VvkW4QhVjDJFj0MlRckSmtnTM6k1tJfulD7VHmFiTrfP8shCk+Ky33Bh0GEdRwneP/afHj9E6wD3+Hw==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><clipPath id="mx-clip-11-719-152-26-0"><rect x="11" y="719" width="152" height="26"/></clipPath><clipPath id="mx-clip-601-2125-422-26-0"><rect x="601" y="2125" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2151-422-26-0"><rect x="601" y="2151" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2177-422-26-0"><rect x="601" y="2177" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2203-422-26-0"><rect x="601" y="2203" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2229-422-26-0"><rect x="601" y="2229" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2255-422-26-0"><rect x="601" y="2255" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2289-422-40-0"><rect x="601" y="2289" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2329-422-40-0"><rect x="601" y="2329" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2369-422-40-0"><rect x="601" y="2369" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2409-422-40-0"><rect x="601" y="2409" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2449-422-40-0"><rect x="601" y="2449" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2489-422-40-0"><rect x="601" y="2489" width="422" height="40"/></clipPath><clipPath id="mx-clip-601-2529-422-26-0"><rect x="601" y="2529" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2555-422-26-0"><rect x="601" y="2555" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2581-422-26-0"><rect x="601" y="2581" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2607-422-26-0"><rect x="601" y="2607" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2633-422-26-0"><rect x="601" y="2633" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2659-422-26-0"><rect x="601" y="2659" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2685-422-26-0"><rect x="601" y="2685" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2711-422-26-0"><rect x="601" y="2711" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2737-422-26-0"><rect x="601" y="2737" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2763-422-26-0"><rect x="601" y="2763" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2789-422-26-0"><rect x="601" y="2789" width="422" height="26"/></clipPath><clipPath id="mx-clip-601-2815-422-26-0"><rect x="601" y="2815" width="422" height="26"/></clipPath><clipPath id="mx-clip-299-849-244-26-0"><rect x="299" y="849" width="244" height="26"/></clipPath><clipPath id="mx-clip-299-875-244-26-0"><rect x="299" y="875" width="244" height="26"/></clipPath><clipPath id="mx-clip-299-719-244-20-0"><rect x="299" y="719" width="244" height="20"/></clipPath><clipPath id="mx-clip-771-1924-132-30-0"><rect x="771" y="1924" width="132" height="30"/></clipPath><clipPath id="mx-clip-131-1205-382-26-0"><rect x="131" y="1205" width="382" height="26"/></clipPath><clipPath id="mx-clip-131-1231-382-26-0"><rect x="131" y="1231" width="382" height="26"/></clipPath><clipPath id="mx-clip-131-1265-382-34-0"><rect x="131" y="1265" width="382" height="34"/></clipPath><clipPath id="mx-clip-131-1299-382-26-0"><rect x="131" y="1299" width="382" height="26"/></clipPath><clipPath id="mx-clip-131-1325-382-26-0"><rect x="131" y="1325" width="382" height="26"/></clipPath><clipPath id="mx-clip-131-1351-382-26-0"><rect x="131" y="1351" width="382" height="26"/></clipPath><clipPath id="mx-clip-11-1895-472-22-0"><rect x="11" y="1895" width="472" height="22"/></clipPath><clipPath id="mx-clip-11-1917-472-26-0"><rect x="11" y="1917" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-1943-472-26-0"><rect x="11" y="1943" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-1969-472-26-0"><rect x="11" y="1969" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-1995-472-26-0"><rect x="11" y="1995" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2021-472-26-0"><rect x="11" y="2021" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2047-472-26-0"><rect x="11" y="2047" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2073-472-26-0"><rect x="11" y="2073" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2099-472-26-0"><rect x="11" y="2099" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2125-472-26-0"><rect x="11" y="2125" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2151-472-26-0"><rect x="11" y="2151" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2177-472-26-0"><rect x="11" y="2177" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2203-472-26-0"><rect x="11" y="2203" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2237-472-26-0"><rect x="11" y="2237" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2263-472-26-0"><rect x="11" y="2263" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2289-472-26-0"><rect x="11" y="2289" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2315-472-26-0"><rect x="11" y="2315" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2341-472-26-0"><rect x="11" y="2341" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2367-472-26-0"><rect x="11" y="2367" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2393-472-26-0"><rect x="11" y="2393" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2419-472-26-0"><rect x="11" y="2419" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2445-472-26-0"><rect x="11" y="2445" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2471-472-26-0"><rect x="11" y="2471" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2497-472-26-0"><rect x="11" y="2497" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2523-472-26-0"><rect x="11" y="2523" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2549-472-26-0"><rect x="11" y="2549" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2575-472-26-0"><rect x="11" y="2575" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2601-472-26-0"><rect x="11" y="2601" width="472" height="26"/></clipPath><clipPath id="mx-clip-11-2627-472-26-0"><rect x="11" y="2627" width="472" height="26"/></clipPath><clipPath id="mx-clip-1281-31-392-26-0"><rect x="1281" y="31" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-57-392-26-0"><rect x="1281" y="57" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-91-392-26-0"><rect x="1281" y="91" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-117-392-26-0"><rect x="1281" y="117" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-143-392-26-0"><rect x="1281" y="143" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-169-392-26-0"><rect x="1281" y="169" width="392" height="26"/></clipPath><clipPath id="mx-clip-1281-195-392-26-0"><rect x="1281" y="195" width="392" height="26"/></clipPath><clipPath id="mx-clip-1501-351-192-26-0"><rect x="1501" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-385-192-26-0"><rect x="1501" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-411-192-26-0"><rect x="1501" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-437-192-26-0"><rect x="1501" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-463-192-26-0"><rect x="1501" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-489-192-26-0"><rect x="1501" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-515-192-26-0"><rect x="1501" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-541-192-26-0"><rect x="1501" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1501-567-192-26-0"><rect x="1501" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-351-192-26-0"><rect x="1291" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-385-192-26-0"><rect x="1291" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-411-192-26-0"><rect x="1291" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-437-192-26-0"><rect x="1291" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-463-192-26-0"><rect x="1291" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-489-192-26-0"><rect x="1291" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-515-192-26-0"><rect x="1291" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-541-192-26-0"><rect x="1291" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1291-567-192-26-0"><rect x="1291" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-2071-1205-332-26-0"><rect x="2071" y="1205" width="332" height="26"/></clipPath><clipPath id="mx-clip-2071-1231-332-26-0"><rect x="2071" y="1231" width="332" height="26"/></clipPath><clipPath id="mx-clip-2071-1265-332-26-0"><rect x="2071" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-2071-1291-332-26-0"><rect x="2071" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-2071-1317-332-26-0"><rect x="2071" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-2071-1343-332-26-0"><rect x="2071" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-1581-2055-592-26-0"><rect x="1581" y="2055" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2081-592-26-0"><rect x="1581" y="2081" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2107-592-26-0"><rect x="1581" y="2107" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2133-592-26-0"><rect x="1581" y="2133" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2159-592-26-0"><rect x="1581" y="2159" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2193-592-26-0"><rect x="1581" y="2193" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2219-592-26-0"><rect x="1581" y="2219" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2245-592-26-0"><rect x="1581" y="2245" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2271-592-26-0"><rect x="1581" y="2271" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2297-592-26-0"><rect x="1581" y="2297" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2323-592-26-0"><rect x="1581" y="2323" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2349-592-26-0"><rect x="1581" y="2349" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2375-592-26-0"><rect x="1581" y="2375" width="592" height="26"/></clipPath><clipPath id="mx-clip-1581-2401-592-26-0"><rect x="1581" y="2401" width="592" height="26"/></clipPath><clipPath id="mx-clip-1171-681-642-26-0"><rect x="1171" y="681" width="642" height="26"/></clipPath><clipPath id="mx-clip-1171-715-642-20-0"><rect x="1171" y="715" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-735-642-20-0"><rect x="1171" y="735" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-755-642-20-0"><rect x="1171" y="755" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-775-642-20-0"><rect x="1171" y="775" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-795-642-20-0"><rect x="1171" y="795" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-815-642-20-0"><rect x="1171" y="815" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-835-642-20-0"><rect x="1171" y="835" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-855-642-20-0"><rect x="1171" y="855" width="642" height="20"/></clipPath><clipPath id="mx-clip-1171-875-642-20-0"><rect x="1171" y="875" width="642" height="20"/></clipPath><clipPath id="mx-clip-1441-1213-332-26-0"><rect x="1441" y="1213" width="332" height="26"/></clipPath><clipPath id="mx-clip-1441-1239-332-26-0"><rect x="1441" y="1239" width="332" height="26"/></clipPath><clipPath id="mx-clip-1441-1265-332-26-0"><rect x="1441" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-1441-1291-332-26-0"><rect x="1441" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-1441-1317-332-26-0"><rect x="1441" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-1441-1343-332-26-0"><rect x="1441" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-631-1205-382-26-0"><rect x="631" y="1205" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1231-382-26-0"><rect x="631" y="1231" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1257-382-26-0"><rect x="631" y="1257" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1283-382-26-0"><rect x="631" y="1283" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1317-382-34-0"><rect x="631" y="1317" width="382" height="34"/></clipPath><clipPath id="mx-clip-631-1351-382-26-0"><rect x="631" y="1351" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1377-382-26-0"><rect x="631" y="1377" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1403-382-26-0"><rect x="631" y="1403" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1429-382-26-0"><rect x="631" y="1429" width="382" height="26"/></clipPath><clipPath id="mx-clip-631-1455-382-26-0"><rect x="631" y="1455" width="382" height="26"/></clipPath><clipPath id="mx-clip-1061-1213-332-26-0"><rect x="1061" y="1213" width="332" height="26"/></clipPath><clipPath id="mx-clip-1061-1239-332-26-0"><rect x="1061" y="1239" width="332" height="26"/></clipPath><clipPath id="mx-clip-1061-1265-332-26-0"><rect x="1061" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-1061-1291-332-26-0"><rect x="1061" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-1061-1317-332-26-0"><rect x="1061" y="1317" width="332" height="26"/></clipPath></defs><g><rect x="787" y="1884" 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: 1894px; margin-left: 797px;"><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="797" y="1898" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 167 704 L 257 704 L 257 821.5 L 292.76 821.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 286.88 825 L 293.88 821.5 L 286.88 818" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 7 690 L 7 664 L 167 664 L 167 690" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 7 690 L 7 744 L 167 744 L 167 690" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 7 690 L 167 690" 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="86.5" y="681.5">Client</text></g><rect x="7" y="690" 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-11-719-152-26-0)" font-size="12px"><text x="12.5" y="731.5">+ main(args:String[]): void</text></g><path d="M 597 2120 L 597 2094 L 1027 2094 L 1027 2120" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 597 2120 L 597 2836 L 1027 2836 L 1027 2120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 597 2120 L 1027 2120" 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="811.5" y="2111.5">ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2125-422-26-0)" font-size="12px"><text x="602.5" y="2137.5">- messagePattern:Pattern{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2151-422-26-0)" font-size="12px"><text x="602.5" y="2163.5">-userName:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2177-422-26-0)" font-size="12px"><text x="602.5" y="2189.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-601-2203-422-26-0)" font-size="12px"><text x="602.5" y="2215.5">- messages:ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2229-422-26-0)" font-size="12px"><text x="602.5" y="2241.5">- serverAddress:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2255-422-26-0)" font-size="12px"><text x="602.5" y="2267.5">- serverPort:SimpleIntegerProperty</text></g><path d="M 597 2280 L 1027 2280" 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-601-2289-422-40-0)" font-size="12px"><text x="602.5" y="2301.5">+ ClientConnectionHandler(messages:ClientMessageList)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2329-422-40-0)" font-size="12px"><text x="602.5" y="2341.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-601-2369-422-40-0)" font-size="12px"><text x="602.5" y="2381.5">+getServerAddressProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2409-422-40-0)" font-size="12px"><text x="602.5" y="2421.5">+getServerPortProperty():SimpleIntegerProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2449-422-40-0)" font-size="12px"><text x="602.5" y="2461.5">+getStateProperty():SimpleObjectProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2489-422-40-0)" font-size="12px"><text x="602.5" y="2501.5">+getUsernameProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2529-422-26-0)" font-size="12px"><text x="602.5" y="2541.5">+ setState (State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2555-422-26-0)" font-size="12px"><text x="602.5" y="2567.5">+ run (): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2581-422-26-0)" font-size="12px"><text x="602.5" y="2593.5">+ startReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2607-422-26-0)" font-size="12px"><text x="602.5" y="2619.5">+ stopReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2633-422-26-0)" font-size="12px"><text x="602.5" y="2645.5">- processData(String data): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2659-422-26-0)" font-size="12px"><text x="602.5" y="2671.5">-caseConfirm(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2685-422-26-0)" font-size="12px"><text x="602.5" y="2697.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-601-2711-422-26-0)" font-size="12px"><text x="602.5" y="2723.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2737-422-26-0)" font-size="12px"><text x="602.5" y="2749.5">-caseError():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2763-422-26-0)" font-size="12px"><text x="602.5" y="2775.5">+ connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2789-422-26-0)" font-size="12px"><text x="602.5" y="2801.5">+ disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-601-2815-422-26-0)" font-size="12px"><text x="602.5" y="2827.5">+ message(String receiver, String message): void</text></g><path d="M 421 794 L 421 752.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 421 745.12 L 424.5 752.12 L 417.5 752.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 295 820 L 295 794 L 547 794 L 547 820" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 295 820 L 295 904 L 547 904 L 547 820" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 295 820 L 547 820" 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="420.5" y="811.5">ClientUI</text></g><rect x="295" y="820" 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-299-849-244-26-0)" font-size="12px"><text x="300.5" y="861.5">+ start(primaryStage: Stage): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-299-875-244-26-0)" font-size="12px"><text x="300.5" y="887.5">- chatWindow(primaryStage: Stage): void</text></g><path d="M 295 690 L 295 664 L 547 664 L 547 690" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 295 690 L 295 744 L 547 744 L 547 690" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 295 690 L 547 690" 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="420.5" y="681.5">&lt;&lt;abstract&gt;&gt; Client</text></g><rect x="295" y="690" 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-299-719-244-20-0)" font-size="12px"><text x="300.5" y="731.5">+ start(primaryStage: Stage): void</text></g><path d="M 812 2094 L 837 2094 L 837 1962.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 837 1955.12 L 840.5 1962.12 L 833.5 1962.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 767 1904 L 767 1874 L 907 1874 L 907 1904" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 767 1904 L 767 1954 L 907 1954 L 907 1904" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 767 1904 L 907 1904" 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="836.5" y="1893.5">&lt;&lt;interface&gt;&gt; Runnable</text></g><rect x="767" y="1904" 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-771-1924-132-30-0)" font-size="12px"><text x="772.5" y="1943.5">+ run(): void</text></g><path d="M 127 1200 L 127 1174 L 517 1174 L 517 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 127 1200 L 127 1374 L 517 1374 L 517 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 127 1200 L 517 1200" 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="321.5" y="1191.5">ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-131-1205-382-26-0)" font-size="12px"><text x="132.5" y="1217.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-131-1231-382-26-0)" font-size="12px"><text x="132.5" y="1243.5">- changed:SimpleBooleanProperty</text></g><path d="M 127 1256 L 517 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-131-1265-382-34-0)" font-size="12px"><text x="132.5" y="1277.5">+ addMessage(message:Message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-131-1299-382-26-0)" font-size="12px"><text x="132.5" y="1311.5">+ getFilteredMessages(filter:string):String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-131-1325-382-26-0)" font-size="12px"><text x="132.5" y="1337.5">+ clear():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-131-1351-382-26-0)" font-size="12px"><text x="132.5" y="1363.5">+ getChangedProperty():SimpleBooleanProperty</text></g><path d="M 7 1890 L 7 1864 L 487 1864 L 487 1890" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 7 1890 L 7 2712 L 487 2712 L 487 1890" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 7 1890 L 487 1890" 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="246.5" y="1881.5">ChatWindowController</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-1895-472-22-0)" font-size="12px"><text x="12.5" y="1907.5">- messagePattern: Pattern {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-1917-472-26-0)" font-size="12px"><text x="12.5" y="1929.5">- messages: ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-1943-472-26-0)" font-size="12px"><text x="12.5" y="1955.5">- windowCloseHandler: WindowCloseHandler {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-1969-472-26-0)" font-size="12px"><text x="12.5" y="1981.5">- rootPane: Pane</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-1995-472-26-0)" font-size="12px"><text x="12.5" y="2007.5">- serverAddressField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2021-472-26-0)" font-size="12px"><text x="12.5" y="2033.5">- serverPortField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2047-472-26-0)" font-size="12px"><text x="12.5" y="2059.5">- connectionHandler: ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2073-472-26-0)" font-size="12px"><text x="12.5" y="2085.5">- userNameField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2099-472-26-0)" font-size="12px"><text x="12.5" y="2111.5">- messageField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2125-472-26-0)" font-size="12px"><text x="12.5" y="2137.5">- messageArea: TextArea</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2151-472-26-0)" font-size="12px"><text x="12.5" y="2163.5">- connectButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2177-472-26-0)" font-size="12px"><text x="12.5" y="2189.5">- sendButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2203-472-26-0)" font-size="12px"><text x="12.5" y="2215.5">- filterValue: TextField</text></g><path d="M 7 2228 L 487 2228" 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-11-2237-472-26-0)" font-size="12px"><text x="12.5" y="2249.5">+ setMessages(messages:ClientMessageList): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2263-472-26-0)" font-size="12px"><text x="12.5" y="2275.5">+ setConnectionHandler(connectionHandler:ClientConnectionHandler): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2289-472-26-0)" font-size="12px"><text x="12.5" y="2301.5">- applicationClose(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2315-472-26-0)" font-size="12px"><text x="12.5" y="2327.5">- toggleConnection(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2341-472-26-0)" font-size="12px"><text x="12.5" y="2353.5">- connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2367-472-26-0)" font-size="12px"><text x="12.5" y="2379.5">- disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2393-472-26-0)" font-size="12px"><text x="12.5" y="2405.5">- message(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2419-472-26-0)" font-size="12px"><text x="12.5" y="2431.5">- applyFilter( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2445-472-26-0)" font-size="12px"><text x="12.5" y="2457.5">- startConnectionHandler( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2471-472-26-0)" font-size="12px"><text x="12.5" y="2483.5">+ refreshConnectionState(State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2497-472-26-0)" font-size="12px"><text x="12.5" y="2509.5">+ setServerAddress(String serverAddress): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2523-472-26-0)" font-size="12px"><text x="12.5" y="2535.5">+ setServerPort(int serverPort): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2549-472-26-0)" font-size="12px"><text x="12.5" y="2561.5">+ setUserName(String userName): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2575-472-26-0)" font-size="12px"><text x="12.5" y="2587.5">+ addError(String message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2601-472-26-0)" font-size="12px"><text x="12.5" y="2613.5">- startConnectionHandlerListener( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-11-2627-472-26-0)" font-size="12px"><text x="12.5" y="2639.5">-messageListener():void</text></g><rect x="7" y="2648" 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: 2680px; margin-left: 9px;"><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="9" y="2684" 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: 1137px;"><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="1137" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 1277 26 L 1277 0 L 1677 0 L 1677 26" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1277 26 L 1277 216 L 1677 216 L 1677 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1277 26 L 1677 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="1476.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-1281-31-392-26-0)" font-size="12px"><text x="1282.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-1281-57-392-26-0)" font-size="12px"><text x="1282.5" y="69.5">+DEFAULT_PORT:int{final}</text></g><path d="M 1277 82 L 1677 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-1281-91-392-26-0)" font-size="12px"><text x="1282.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-1281-117-392-26-0)" font-size="12px"><text x="1282.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-1281-143-392-26-0)" font-size="12px"><text x="1282.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-1281-169-392-26-0)" font-size="12px"><text x="1282.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-1281-195-392-26-0)" font-size="12px"><text x="1282.5" y="207.5">+openConnection():NetworkConnection</text></g><path d="M 1497 346 L 1497 320 L 1697 320 L 1697 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1497 346 L 1497 590 L 1697 590 L 1697 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1497 346 L 1697 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="1596.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-1501-351-192-26-0)" font-size="12px"><text x="1502.5" y="363.5">-serverSocket:ServerSocket{final}</text></g><path d="M 1497 376 L 1697 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-1501-385-192-26-0)" font-size="12px"><text x="1502.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-1501-411-192-26-0)" font-size="12px"><text x="1502.5" y="423.5">-NetworkServer()</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1501-437-192-26-0)" font-size="12px"><text x="1502.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-1501-463-192-26-0)" font-size="12px"><text x="1502.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-1501-489-192-26-0)" font-size="12px"><text x="1502.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-1501-515-192-26-0)" font-size="12px"><text x="1502.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-1501-541-192-26-0)" font-size="12px"><text x="1502.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-1501-567-192-26-0)" font-size="12px"><text x="1502.5" y="579.5">+close():void</text></g><path d="M 1287 346 L 1287 320 L 1487 320 L 1487 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1287 346 L 1287 590 L 1487 590 L 1487 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1287 346 L 1487 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="1386.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-1291-351-192-26-0)" font-size="12px"><text x="1292.5" y="363.5">-socket:Socket{final}</text></g><path d="M 1287 376 L 1487 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-1291-385-192-26-0)" font-size="12px"><text x="1292.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-1291-411-192-26-0)" font-size="12px"><text x="1292.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-1291-437-192-26-0)" font-size="12px"><text x="1292.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-1291-463-192-26-0)" font-size="12px"><text x="1292.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-1291-489-192-26-0)" font-size="12px"><text x="1292.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-1291-515-192-26-0)" font-size="12px"><text x="1292.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-1291-541-192-26-0)" font-size="12px"><text x="1292.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-1291-567-192-26-0)" font-size="12px"><text x="1292.5" y="579.5">+close():void</text></g><path d="M 2067 1200 L 2067 1174 L 2407 1174 L 2407 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2067 1200 L 2067 1364 L 2407 1364 L 2407 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2067 1200 L 2407 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="2236.5" y="1191.5">Server</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2071-1205-332-26-0)" font-size="12px"><text x="2072.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-2071-1231-332-26-0)" font-size="12px"><text x="2072.5" y="1243.5">-Map&lt;String,ServerConnectionHandler&gt; connections{final}</text></g><path d="M 2067 1256 L 2407 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-2071-1265-332-26-0)" font-size="12px"><text x="2072.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-2071-1291-332-26-0)" font-size="12px"><text x="2072.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-2071-1317-332-26-0)" font-size="12px"><text x="2072.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-2071-1343-332-26-0)" font-size="12px"><text x="2072.5" y="1355.5">-terminate():void</text></g><path d="M 1577 2050 L 1577 2024 L 2177 2024 L 2177 2050" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1577 2050 L 1577 2434 L 2177 2434 L 2177 2050" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1577 2050 L 2177 2050" 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="1876.5" y="2041.5">ServerConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1581-2055-592-26-0)" font-size="12px"><text x="1582.5" y="2067.5">-connectionCounter:AtomicInteger{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2081-592-26-0)" font-size="12px"><text x="1582.5" y="2093.5">-connectionId:int{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2107-592-26-0)" font-size="12px"><text x="1582.5" y="2119.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-1581-2133-592-26-0)" font-size="12px"><text x="1582.5" y="2145.5">-userName:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2159-592-26-0)" font-size="12px"><text x="1582.5" y="2171.5">-state:State</text></g><path d="M 1577 2184 L 2177 2184" 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-1581-2193-592-26-0)" font-size="12px"><text x="1582.5" y="2205.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-1581-2219-592-26-0)" font-size="12px"><text x="1582.5" y="2231.5">+getUserName():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2245-592-26-0)" font-size="12px"><text x="1582.5" y="2257.5">+getState():State</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2271-592-26-0)" font-size="12px"><text x="1582.5" y="2283.5">+startReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2297-592-26-0)" font-size="12px"><text x="1582.5" y="2309.5">+stopReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2323-592-26-0)" font-size="12px"><text x="1582.5" y="2335.5">-processData(data:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2349-592-26-0)" font-size="12px"><text x="1582.5" y="2361.5">-caseConnect(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2375-592-26-0)" font-size="12px"><text x="1582.5" y="2387.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1581-2401-592-26-0)" font-size="12px"><text x="1582.5" y="2413.5">-caseMessage(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1476.58 223.99 L 1476.5 260 L 1387 260 L 1387 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1476.6 216.99 L 1478.65 220.49 L 1476.58 223.99 L 1474.53 220.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1383.5 311.88 L 1387 318.88 L 1390.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1487 223.99 L 1487 260 L 1597 260 L 1597 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1487 216.99 L 1489.06 220.49 L 1487 223.99 L 1484.94 220.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1593.5 311.88 L 1597 318.88 L 1600.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1167 676 L 1167 650 L 1817 650 L 1817 676" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1167 676 L 1167 914 L 1817 914 L 1817 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1167 676 L 1817 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="1491.5" y="667.5">&lt;&lt;abstract&gt;&gt; ConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1171-681-642-26-0)" font-size="12px"><text x="1172.5" y="693.5">-connection:NetworkConnection&lt;String&gt;{final}</text></g><rect x="1167" y="702" 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-1171-715-642-20-0)" font-size="12px"><text x="1172.5" y="727.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-1171-735-642-20-0)" font-size="12px"><text x="1172.5" y="747.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-1171-755-642-20-0)" font-size="12px"><text x="1172.5" y="767.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-1171-775-642-20-0)" font-size="12px"><text x="1172.5" y="787.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-1171-795-642-20-0)" font-size="12px"><text x="1172.5" y="807.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-1171-815-642-20-0)" font-size="12px"><text x="1172.5" y="827.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-1171-835-642-20-0)" font-size="12px"><text x="1172.5" y="847.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-1171-855-642-20-0)" font-size="12px"><text x="1172.5" y="867.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-1171-875-642-20-0)" font-size="12px"><text x="1172.5" y="887.5">#sendData(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1437 1200 L 1437 1174 L 1777 1174 L 1777 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1437 1200 L 1437 1364 L 1777 1364 L 1777 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1437 1200 L 1777 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="1606.5" y="1191.5">&lt;&lt;enumeration&gt;&gt; STATE</text></g><path d="M 1437 1204 L 1777 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-1441-1213-332-26-0)" font-size="12px"><text x="1442.5" y="1225.5">NEW</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1441-1239-332-26-0)" font-size="12px"><text x="1442.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-1441-1265-332-26-0)" font-size="12px"><text x="1442.5" y="1277.5">CONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1441-1291-332-26-0)" font-size="12px"><text x="1442.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-1441-1317-332-26-0)" font-size="12px"><text x="1442.5" y="1329.5">DISCONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1441-1343-332-26-0)" font-size="12px"><text x="1442.5" y="1355.5">ERROR</text></g><path d="M 1607 921.99 L 1607 1171.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1607 914.99 L 1609.06 918.49 L 1607 921.99 L 1604.94 918.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1603.5 1165.88 L 1607 1172.88 L 1610.5 1165.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 627 1200 L 627 1174 L 1017 1174 L 1017 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 627 1200 L 627 1476 L 1017 1476 L 1017 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 627 1200 L 1017 1200" 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="821.5" y="1191.5">Message</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1205-382-26-0)" font-size="12px"><text x="632.5" y="1217.5">- type:DATA_TYPE</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1231-382-26-0)" font-size="12px"><text x="632.5" y="1243.5">- sender:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1257-382-26-0)" font-size="12px"><text x="632.5" y="1269.5">- reciever:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1283-382-26-0)" font-size="12px"><text x="632.5" y="1295.5">- text:String</text></g><path d="M 627 1308 L 1017 1308" 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-631-1317-382-34-0)" font-size="12px"><text x="632.5" y="1329.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-631-1351-382-26-0)" font-size="12px"><text x="632.5" y="1363.5">+ matchesFiler(filter:String):boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1377-382-26-0)" font-size="12px"><text x="632.5" y="1389.5">+ getType():MessageType</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1403-382-26-0)" font-size="12px"><text x="632.5" y="1415.5">+ getSender():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1429-382-26-0)" font-size="12px"><text x="632.5" y="1441.5">+ getReciever():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-631-1455-382-26-0)" font-size="12px"><text x="632.5" y="1467.5">+ getText():String</text></g><path d="M 487 2211 L 594.76 2211" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 588.88 2214.5 L 595.88 2211 L 588.88 2207.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1167 650 L 1257 650 L 1257 575 L 1284.76 575" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1278.88 578.5 L 1285.88 575 L 1278.88 571.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1877 2024 L 1877 780 L 1825.12 780" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1818.12 780 L 1825.12 776.5 L 1825.12 783.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1699.24 523 L 2237 523 L 2237 1174" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1705.12 519.5 L 1698.12 523 L 1705.12 526.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2067 1351 L 2027 1351 L 2027 2021.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2023.5 2015.88 L 2027 2022.88 L 2030.5 2015.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 224.5 1174 L 224.5 883 L 292.76 883" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 286.88 886.5 L 293.88 883 L 286.88 879.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1057 1200 L 1057 1174 L 1397 1174 L 1397 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1057 1200 L 1057 1344 L 1397 1344 L 1397 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1057 1200 L 1397 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="1226.5" y="1191.5">&lt;&lt;enumeration&gt;&gt; DATA_TYPE</text></g><path d="M 1057 1204 L 1397 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-1061-1213-332-26-0)" font-size="12px"><text x="1062.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-1061-1239-332-26-0)" font-size="12px"><text x="1062.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-1061-1265-332-26-0)" font-size="12px"><text x="1062.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-1061-1291-332-26-0)" font-size="12px"><text x="1062.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-1061-1317-332-26-0)" font-size="12px"><text x="1062.5" y="1329.5">DATA_TYPE_ERROR</text></g><path d="M 1727 2024 L 1727 1366.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1730.5 1372.12 L 1727 1365.12 L 1723.5 1372.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 7 1864 L 7 857 L 292.76 857" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 286.88 860.5 L 293.88 857 L 286.88 853.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 127 1864 L 97 1864 L 97 1358 L 124.76 1358" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 118.88 1361.5 L 125.88 1358 L 118.88 1354.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 597 2094 L 597 1359 L 519.24 1359" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 525.12 1355.5 L 518.12 1359 L 525.12 1362.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 517 1239 L 624.76 1239" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 618.88 1242.5 L 625.88 1239 L 618.88 1235.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 367 1864 L 367 1463 L 624.76 1463" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 618.88 1466.5 L 625.88 1463 L 618.88 1459.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 704.5 2094 L 703.06 1479.56" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 706.57 1485.44 L 703.05 1478.44 L 699.57 1485.45" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1577 2024 L 1577 1463 L 1019.24 1463" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1025.12 1459.5 L 1018.12 1463 L 1025.12 1466.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1655 2023.59 L 1312 2023.5 L 1312 1346.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1315.5 1352.12 L 1312 1345.12 L 1308.5 1352.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 919.5 2094 L 1407 2094 L 1407 1351 L 1434.76 1351" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1428.88 1354.5 L 1435.88 1351 L 1428.88 1347.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1027 2084 L 1027 151 L 1274.76 151" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1268.88 154.5 L 1275.88 151 L 1268.88 147.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1968.8 2021.54 L 1969 203 L 1679.24 203" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1685.12 199.5 L 1678.12 203 L 1685.12 206.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1027 2244 L 1142 2244 L 1142 1346.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1145.5 1352.12 L 1142 1345.12 L 1138.5 1352.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1017 1239 L 1053.74 1238.97" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1047.87 1242.47 L 1054.86 1238.97 L 1047.86 1235.47" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1297 921.99 L 1297 1169.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1297 914.99 L 1299.06 918.49 L 1297 921.99 L 1294.94 918.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1293.5 1163.88 L 1297 1170.88 L 1300.5 1163.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 487 1864 L 1507 1864 L 1507 1366.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1510.5 1372.12 L 1507 1365.12 L 1503.5 1372.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 625.81 2102.16 L 607 2102 L 607 880 L 1158.88 880" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1165.88 880 L 1158.88 883.5 L 1158.88 876.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 367 1864 L 457 1864 L 457 1674 L 1101 1674 L 1101 1346.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1104.5 1352.12 L 1101 1345.12 L 1097.5 1352.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2322 1174 L 2322 125 L 1679.24 125" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1685.12 121.5 L 1678.12 125 L 1685.12 128.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>