model_chatclient.svg 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  3. "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  4. <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  5. -->
  6. <!-- Title: state transitions Pages: 1 -->
  7. <svg width="2972pt" height="3275pt"
  8. viewBox="0.00 0.00 2972.00 3275.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  9. <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3271)">
  10. <title>state transitions</title>
  11. <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-3271 2968,-3271 2968,4 -4,4"/>
  12. <g id="clust1" class="cluster">
  13. <title>cluster__P</title>
  14. <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 2944,-8 2944,-8 2950,-8 2956,-14 2956,-20 2956,-20 2956,-3216 2956,-3216 2956,-3222 2950,-3228 2944,-3228 2944,-3228 20,-3228 20,-3228 14,-3228 8,-3222 8,-3216 8,-3216 8,-20 8,-20 8,-14 14,-8 20,-8"/>
  15. <text text-anchor="start" x="1477.9986" y="-3209.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">P</text>
  16. </g>
  17. <g id="clust2" class="cluster">
  18. <title>cluster__P_Receiving</title>
  19. <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2536,-2969.5 2536,-3190 2948,-3190 2948,-2969.5 2536,-2969.5"/>
  20. <text text-anchor="start" x="2715.6642" y="-3171.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Receiving</text>
  21. </g>
  22. <g id="clust3" class="cluster">
  23. <title>cluster__P_Pinging</title>
  24. <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="2158,-2725.5 2158,-3190 2528,-3190 2528,-2725.5 2158,-2725.5"/>
  25. <text text-anchor="start" x="2322.9942" y="-3171.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Pinging</text>
  26. </g>
  27. <g id="clust4" class="cluster">
  28. <title>cluster__P_Main</title>
  29. <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-3190 2150,-3190 2150,-16 24,-16"/>
  30. <text text-anchor="start" x="1074.5004" y="-3171.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Main</text>
  31. </g>
  32. <g id="clust5" class="cluster">
  33. <title>cluster__P_Main_Connected</title>
  34. <path fill="none" stroke="#000000" stroke-width="2" d="M44,-24C44,-24 2130,-24 2130,-24 2136,-24 2142,-30 2142,-36 2142,-36 2142,-2422.5 2142,-2422.5 2142,-2428.5 2136,-2434.5 2130,-2434.5 2130,-2434.5 44,-2434.5 44,-2434.5 38,-2434.5 32,-2428.5 32,-2422.5 32,-2422.5 32,-36 32,-36 32,-30 38,-24 44,-24"/>
  35. <text text-anchor="start" x="1057.9888" y="-2415.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Connected</text>
  36. </g>
  37. <g id="clust6" class="cluster">
  38. <title>cluster__P_Main_Connected_JoiningOrJoined</title>
  39. <path fill="none" stroke="#000000" stroke-width="2" d="M118,-219C118,-219 939,-219 939,-219 945,-219 951,-225 951,-231 951,-231 951,-2384.5 951,-2384.5 951,-2390.5 945,-2396.5 939,-2396.5 939,-2396.5 118,-2396.5 118,-2396.5 112,-2396.5 106,-2390.5 106,-2384.5 106,-2384.5 106,-231 106,-231 106,-225 112,-219 118,-219"/>
  40. <text text-anchor="start" x="485.1578" y="-2377.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">JoiningOrJoined</text>
  41. </g>
  42. <g id="clust7" class="cluster">
  43. <title>cluster__P_Main_Connected_JoiningOrJoined_Joined</title>
  44. <path fill="none" stroke="#000000" stroke-width="2" d="M126,-227C126,-227 931,-227 931,-227 937,-227 943,-233 943,-239 943,-239 943,-1681 943,-1681 943,-1687 937,-1693 931,-1693 931,-1693 126,-1693 126,-1693 120,-1693 114,-1687 114,-1681 114,-1681 114,-239 114,-239 114,-233 120,-227 126,-227"/>
  45. <text text-anchor="start" x="511.327" y="-1674.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Joined</text>
  46. </g>
  47. <g id="clust8" class="cluster">
  48. <title>cluster__P_Main_Connected_LeavingOrLeft</title>
  49. <path fill="none" stroke="#000000" stroke-width="2" d="M971,-32C971,-32 2122,-32 2122,-32 2128,-32 2134,-38 2134,-44 2134,-44 2134,-820 2134,-820 2134,-826 2128,-832 2122,-832 2122,-832 971,-832 971,-832 965,-832 959,-826 959,-820 959,-820 959,-44 959,-44 959,-38 965,-32 971,-32"/>
  50. <text text-anchor="start" x="1509.3212" y="-813.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">LeavingOrLeft</text>
  51. </g>
  52. <g id="clust9" class="cluster">
  53. <title>cluster__P_Main_Connecting</title>
  54. <path fill="none" stroke="#000000" stroke-width="2" d="M44,-2516.5C44,-2516.5 1352,-2516.5 1352,-2516.5 1358,-2516.5 1364,-2522.5 1364,-2528.5 1364,-2528.5 1364,-3047 1364,-3047 1364,-3053 1358,-3059 1352,-3059 1352,-3059 44,-3059 44,-3059 38,-3059 32,-3053 32,-3047 32,-3047 32,-2528.5 32,-2528.5 32,-2522.5 38,-2516.5 44,-2516.5"/>
  55. <text text-anchor="start" x="668.1574" y="-3040.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Connecting</text>
  56. <text text-anchor="start" x="634.8226" y="-3020.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">enter /input_command()</text>
  57. <polygon fill="#000000" stroke="#000000" points="631,-3034 631,-3034 766,-3034 766,-3034 631,-3034"/>
  58. </g>
  59. <!-- __initial -->
  60. <g id="node1" class="node">
  61. <title>__initial</title>
  62. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-3261.5" rx="5.5" ry="5.5"/>
  63. </g>
  64. <!-- _P -->
  65. <!-- __initial&#45;&gt;_P -->
  66. <g id="edge1" class="edge">
  67. <title>__initial&#45;&gt;_P</title>
  68. <path fill="none" stroke="#000000" d="M16,-3255.9533C16,-3251.7779 16,-3245.5043 16,-3238.0332"/>
  69. <polygon fill="#000000" stroke="#000000" points="19.5001,-3237.9971 16,-3227.9971 12.5001,-3237.9972 19.5001,-3237.9971"/>
  70. <text text-anchor="middle" x="17.3895" y="-3239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  71. </g>
  72. <!-- _P_Receiving -->
  73. <!-- _P_Receiving_initial -->
  74. <g id="node4" class="node">
  75. <title>_P_Receiving_initial</title>
  76. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2581" cy="-3146.5" rx="5.5" ry="5.5"/>
  77. </g>
  78. <!-- _P_Receiving_Receiving -->
  79. <g id="node5" class="node">
  80. <title>_P_Receiving_Receiving</title>
  81. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="2618,-3013.5 2544,-3013.5 2544,-2977.5 2618,-2977.5 2618,-3013.5"/>
  82. <text text-anchor="start" x="2554.6642" y="-2991.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Receiving</text>
  83. <path fill="none" stroke="#000000" stroke-width="2" d="M2556.3333,-2978.5C2556.3333,-2978.5 2605.6667,-2978.5 2605.6667,-2978.5 2611.3333,-2978.5 2617,-2984.1667 2617,-2989.8333 2617,-2989.8333 2617,-3001.1667 2617,-3001.1667 2617,-3006.8333 2611.3333,-3012.5 2605.6667,-3012.5 2605.6667,-3012.5 2556.3333,-3012.5 2556.3333,-3012.5 2550.6667,-3012.5 2545,-3006.8333 2545,-3001.1667 2545,-3001.1667 2545,-2989.8333 2545,-2989.8333 2545,-2984.1667 2550.6667,-2978.5 2556.3333,-2978.5"/>
  84. </g>
  85. <!-- _P_Receiving_initial&#45;&gt;_P_Receiving_Receiving -->
  86. <g id="edge2" class="edge">
  87. <title>_P_Receiving_initial&#45;&gt;_P_Receiving_Receiving</title>
  88. <path fill="none" stroke="#000000" d="M2581,-3140.8288C2581,-3136.1736 2581,-3129.4097 2581,-3123.5 2581,-3123.5 2581,-3123.5 2581,-3076.5 2581,-3058.9043 2581,-3039.1585 2581,-3023.568"/>
  89. <polygon fill="#000000" stroke="#000000" points="2584.5001,-3023.5159 2581,-3013.5159 2577.5001,-3023.516 2584.5001,-3023.5159"/>
  90. <text text-anchor="middle" x="2582.3895" y="-3097" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  91. </g>
  92. <!-- _P_Receiving_Receiving&#45;&gt;_P_Receiving_Receiving -->
  93. <g id="edge3" class="edge">
  94. <title>_P_Receiving_Receiving&#45;&gt;_P_Receiving_Receiving</title>
  95. <path fill="none" stroke="#000000" d="M2618.1626,-3001.8746C2630.3197,-3001.8417 2640,-2999.7168 2640,-2995.5 2640,-2992.5351 2635.2142,-2990.6043 2628.1467,-2989.7078"/>
  96. <polygon fill="#000000" stroke="#000000" points="2628.3495,-2986.2138 2618.1626,-2989.1254 2627.9418,-2993.2019 2628.3495,-2986.2138"/>
  97. <text text-anchor="start" x="2640" y="-2992.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">receive_message(msg:str)/add_message(msg,&quot;remote_message&quot;) &#160;&#160;</text>
  98. </g>
  99. <!-- _P_Pinging -->
  100. <!-- _P_Pinging_initial -->
  101. <g id="node7" class="node">
  102. <title>_P_Pinging_initial</title>
  103. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="2213" cy="-3146.5" rx="5.5" ry="5.5"/>
  104. </g>
  105. <!-- _P_Pinging_Initial -->
  106. <g id="node10" class="node">
  107. <title>_P_Pinging_Initial</title>
  108. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="2241,-3013.5 2185,-3013.5 2185,-2977.5 2241,-2977.5 2241,-3013.5"/>
  109. <text text-anchor="start" x="2199.0002" y="-2991.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
  110. <path fill="none" stroke="#000000" stroke-width="2" d="M2197.3333,-2978.5C2197.3333,-2978.5 2228.6667,-2978.5 2228.6667,-2978.5 2234.3333,-2978.5 2240,-2984.1667 2240,-2989.8333 2240,-2989.8333 2240,-3001.1667 2240,-3001.1667 2240,-3006.8333 2234.3333,-3012.5 2228.6667,-3012.5 2228.6667,-3012.5 2197.3333,-3012.5 2197.3333,-3012.5 2191.6667,-3012.5 2186,-3006.8333 2186,-3001.1667 2186,-3001.1667 2186,-2989.8333 2186,-2989.8333 2186,-2984.1667 2191.6667,-2978.5 2197.3333,-2978.5"/>
  111. </g>
  112. <!-- _P_Pinging_initial&#45;&gt;_P_Pinging_Initial -->
  113. <g id="edge4" class="edge">
  114. <title>_P_Pinging_initial&#45;&gt;_P_Pinging_Initial</title>
  115. <path fill="none" stroke="#000000" d="M2213,-3140.8288C2213,-3136.1736 2213,-3129.4097 2213,-3123.5 2213,-3123.5 2213,-3123.5 2213,-3076.5 2213,-3058.9043 2213,-3039.1585 2213,-3023.568"/>
  116. <polygon fill="#000000" stroke="#000000" points="2216.5001,-3023.5159 2213,-3013.5159 2209.5001,-3023.516 2216.5001,-3023.5159"/>
  117. <text text-anchor="middle" x="2214.3895" y="-3097" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  118. </g>
  119. <!-- _P_Pinging_ExpectingAnswer -->
  120. <g id="node8" class="node">
  121. <title>_P_Pinging_ExpectingAnswer</title>
  122. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="2396,-2769.5 2282,-2769.5 2282,-2733.5 2396,-2733.5 2396,-2769.5"/>
  123. <text text-anchor="start" x="2292.6572" y="-2747.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ExpectingAnswer</text>
  124. <path fill="none" stroke="#000000" stroke-width="2" d="M2294.3333,-2734.5C2294.3333,-2734.5 2383.6667,-2734.5 2383.6667,-2734.5 2389.3333,-2734.5 2395,-2740.1667 2395,-2745.8333 2395,-2745.8333 2395,-2757.1667 2395,-2757.1667 2395,-2762.8333 2389.3333,-2768.5 2383.6667,-2768.5 2383.6667,-2768.5 2294.3333,-2768.5 2294.3333,-2768.5 2288.6667,-2768.5 2283,-2762.8333 2283,-2757.1667 2283,-2757.1667 2283,-2745.8333 2283,-2745.8333 2283,-2740.1667 2288.6667,-2734.5 2294.3333,-2734.5"/>
  125. </g>
  126. <!-- _P_Pinging_Pinging -->
  127. <g id="node9" class="node">
  128. <title>_P_Pinging_Pinging</title>
  129. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="2520,-2887.5 2458,-2887.5 2458,-2851.5 2520,-2851.5 2520,-2887.5"/>
  130. <text text-anchor="start" x="2468.9942" y="-2865.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Pinging</text>
  131. <path fill="none" stroke="#000000" stroke-width="2" d="M2470.3333,-2852.5C2470.3333,-2852.5 2507.6667,-2852.5 2507.6667,-2852.5 2513.3333,-2852.5 2519,-2858.1667 2519,-2863.8333 2519,-2863.8333 2519,-2875.1667 2519,-2875.1667 2519,-2880.8333 2513.3333,-2886.5 2507.6667,-2886.5 2507.6667,-2886.5 2470.3333,-2886.5 2470.3333,-2886.5 2464.6667,-2886.5 2459,-2880.8333 2459,-2875.1667 2459,-2875.1667 2459,-2863.8333 2459,-2863.8333 2459,-2858.1667 2464.6667,-2852.5 2470.3333,-2852.5"/>
  132. </g>
  133. <!-- _P_Pinging_ExpectingAnswer&#45;&gt;_P_Pinging_Pinging -->
  134. <g id="edge5" class="edge">
  135. <title>_P_Pinging_ExpectingAnswer&#45;&gt;_P_Pinging_Pinging</title>
  136. <path fill="none" stroke="#000000" d="M2396.1365,-2754.511C2438.5264,-2758.3668 2489,-2767.1299 2489,-2787 2489,-2834 2489,-2834 2489,-2834 2489,-2836.3921 2489,-2838.8748 2489,-2841.3658"/>
  137. <polygon fill="#000000" stroke="#000000" points="2485.5001,-2841.4402 2489,-2851.4402 2492.5001,-2841.4403 2485.5001,-2841.4402"/>
  138. <text text-anchor="start" x="2489" y="-2807.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">alive &#160;&#160;</text>
  139. </g>
  140. <!-- _P_Pinging_ExpectingAnswer&#45;&gt;_P_Pinging_Initial -->
  141. <g id="edge6" class="edge">
  142. <title>_P_Pinging_ExpectingAnswer&#45;&gt;_P_Pinging_Initial</title>
  143. <path fill="none" stroke="#000000" d="M2281.9134,-2754.4062C2239.1528,-2758.2027 2188,-2766.9371 2188,-2787 2188,-2952 2188,-2952 2188,-2952 2188,-2957.6618 2189.6117,-2963.2528 2192.0167,-2968.444"/>
  144. <polygon fill="#000000" stroke="#000000" points="2189.051,-2970.3098 2197.0256,-2977.2853 2195.1415,-2966.8593 2189.051,-2970.3098"/>
  145. <text text-anchor="start" x="2188" y="-2866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">after(2 s)^timeout /print(&quot;polling timeout... disconnect&quot;) &#160;&#160;</text>
  146. </g>
  147. <!-- _P_Pinging_Pinging&#45;&gt;_P_Pinging_ExpectingAnswer -->
  148. <g id="edge7" class="edge">
  149. <title>_P_Pinging_Pinging&#45;&gt;_P_Pinging_ExpectingAnswer</title>
  150. <path fill="none" stroke="#000000" d="M2457.7781,-2856.8239C2452.2472,-2854.8573 2446.4981,-2852.9882 2441,-2851.5 2418.801,-2845.4912 2339,-2856.9979 2339,-2834 2339,-2834 2339,-2834 2339,-2787 2339,-2784.6079 2339,-2782.1252 2339,-2779.6342"/>
  151. <polygon fill="#000000" stroke="#000000" points="2342.5001,-2779.5597 2339,-2769.5598 2335.5001,-2779.5598 2342.5001,-2779.5597"/>
  152. <text text-anchor="start" x="2339" y="-2807.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">after(1 s)^network.poll &#160;&#160;</text>
  153. </g>
  154. <!-- _P_Pinging_Initial&#45;&gt;_P_Pinging_Pinging -->
  155. <g id="edge8" class="edge">
  156. <title>_P_Pinging_Initial&#45;&gt;_P_Pinging_Pinging</title>
  157. <path fill="none" stroke="#000000" d="M2241.1793,-2992.2635C2281.0145,-2986.8906 2349,-2974.4345 2349,-2952 2349,-2952 2349,-2952 2349,-2905 2349,-2884.189 2420.9618,-2893.1185 2441,-2887.5 2443.3138,-2886.8512 2445.6734,-2886.1391 2448.0435,-2885.3842"/>
  158. <polygon fill="#000000" stroke="#000000" points="2449.4079,-2888.6174 2457.7551,-2882.0925 2447.1608,-2881.9879 2449.4079,-2888.6174"/>
  159. <text text-anchor="start" x="2349" y="-2925.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">connected &#160;&#160;</text>
  160. </g>
  161. <!-- _P_Main -->
  162. <!-- _P_Main_initial -->
  163. <g id="node12" class="node">
  164. <title>_P_Main_initial</title>
  165. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="1356" cy="-3146.5" rx="5.5" ry="5.5"/>
  166. </g>
  167. <!-- _P_Main_Connecting -->
  168. <!-- _P_Main_initial&#45;&gt;_P_Main_Connecting -->
  169. <g id="edge9" class="edge">
  170. <title>_P_Main_initial&#45;&gt;_P_Main_Connecting</title>
  171. <path fill="none" stroke="#000000" d="M1356,-3140.8288C1356,-3136.1736 1356,-3129.4097 1356,-3123.5 1356,-3123.5 1356,-3123.5 1356,-3076.5 1356,-3074.1035 1356,-3071.6672 1356,-3069.2069"/>
  172. <polygon fill="#000000" stroke="#000000" points="1359.5001,-3068.9983 1356,-3058.9983 1352.5001,-3068.9984 1359.5001,-3068.9983"/>
  173. <text text-anchor="middle" x="1357.3895" y="-3097" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  174. </g>
  175. <!-- _P_Main_Connected -->
  176. <!-- _P_Main_Connected&#45;&gt;_P_Main_Connecting -->
  177. <g id="edge26" class="edge">
  178. <title>_P_Main_Connected&#45;&gt;_P_Main_Connecting</title>
  179. <path fill="none" stroke="#000000" d="M102,-2434.5C127.5243,-2459.1379 1379,-2416.5244 1379,-2452 1379,-2952 1379,-2952 1379,-2952 1379,-2961.3752 1374.7732,-2970.7065 1369.9435,-2978.3086"/>
  180. <polygon fill="#000000" stroke="#000000" points="1366.9747,-2976.4429 1363.997,-2986.6107 1372.6655,-2980.519 1366.9747,-2976.4429"/>
  181. <text text-anchor="start" x="1379" y="-2681.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">timeout/add_message(&quot;disconnected&quot;,&quot;info&quot;)⁏ reconnecting = true⁏ &#160;&#160;</text>
  182. </g>
  183. <!-- _P_Main_Connected_initial -->
  184. <g id="node14" class="node">
  185. <title>_P_Main_Connected_initial</title>
  186. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="1203" cy="-1004" rx="5.5" ry="5.5"/>
  187. </g>
  188. <!-- _P_Main_Connected_LeavingOrLeft -->
  189. <!-- _P_Main_Connected_initial&#45;&gt;_P_Main_Connected_LeavingOrLeft -->
  190. <g id="edge10" class="edge">
  191. <title>_P_Main_Connected_initial&#45;&gt;_P_Main_Connected_LeavingOrLeft</title>
  192. <path fill="none" stroke="#000000" d="M1203.5047,-998.4713C1204.0972,-991.493 1205,-979.1175 1205,-968.5 1205,-968.5 1205,-968.5 1205,-849.5 1205,-847.1066 1205.0107,-844.6694 1205.0306,-842.2079"/>
  193. <polygon fill="#000000" stroke="#000000" points="1208.5329,-842.0435 1205.1599,-831.9999 1201.5334,-841.9548 1208.5329,-842.0435"/>
  194. <text text-anchor="middle" x="1206.3895" y="-906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  195. </g>
  196. <!-- _P_Main_Connected_H -->
  197. <g id="node15" class="node">
  198. <title>_P_Main_Connected_H</title>
  199. <ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="58" cy="-2353" rx="18" ry="18"/>
  200. <text text-anchor="middle" x="58" y="-2349.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
  201. </g>
  202. <!-- _P_Main_Connected_JoiningOrJoined -->
  203. <!-- _P_Main_Connected_JoiningOrJoined_initial -->
  204. <g id="node17" class="node">
  205. <title>_P_Main_Connected_JoiningOrJoined_initial</title>
  206. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="398" cy="-2353" rx="5.5" ry="5.5"/>
  207. </g>
  208. <!-- _P_Main_Connected_JoiningOrJoined_Joining -->
  209. <g id="node18" class="node">
  210. <title>_P_Main_Connected_JoiningOrJoined_Joining</title>
  211. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="454,-2037 342,-2037 342,-1991 454,-1991 454,-2037"/>
  212. <text text-anchor="start" x="378.9956" y="-2020.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Joining</text>
  213. <text text-anchor="start" x="347.8448" y="-2000.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">enter ^network.join</text>
  214. <polygon fill="#000000" stroke="#000000" points="342,-2014 342,-2014 454,-2014 454,-2014 342,-2014"/>
  215. <path fill="none" stroke="#000000" stroke-width="2" d="M355,-1992C355,-1992 441,-1992 441,-1992 447,-1992 453,-1998 453,-2004 453,-2004 453,-2024 453,-2024 453,-2030 447,-2036 441,-2036 441,-2036 355,-2036 355,-2036 349,-2036 343,-2030 343,-2024 343,-2024 343,-2004 343,-2004 343,-1998 349,-1992 355,-1992"/>
  216. </g>
  217. <!-- _P_Main_Connected_JoiningOrJoined_initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joining -->
  218. <g id="edge11" class="edge">
  219. <title>_P_Main_Connected_JoiningOrJoined_initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joining</title>
  220. <path fill="none" stroke="#000000" d="M398,-2347.4659C398,-2340.482 398,-2328.1007 398,-2317.5 398,-2317.5 398,-2317.5 398,-2054.5 398,-2052.127 398,-2049.6757 398,-2047.2081"/>
  221. <polygon fill="#000000" stroke="#000000" points="401.5001,-2047.1306 398,-2037.1306 394.5001,-2047.1306 401.5001,-2047.1306"/>
  222. <text text-anchor="middle" x="399.3895" y="-2183" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  223. </g>
  224. <!-- _P_Main_Connected_JoiningOrJoined_Joined_H -->
  225. <g id="node23" class="node">
  226. <title>_P_Main_Connected_JoiningOrJoined_Joined_H</title>
  227. <ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="398" cy="-1637" rx="18" ry="18"/>
  228. <text text-anchor="middle" x="398" y="-1633.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
  229. </g>
  230. <!-- _P_Main_Connected_JoiningOrJoined_Joining&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_H -->
  231. <g id="edge18" class="edge">
  232. <title>_P_Main_Connected_JoiningOrJoined_Joining&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_H</title>
  233. <path fill="none" stroke="#000000" d="M398,-1990.8694C398,-1985.1895 398,-1979.125 398,-1973.5 398,-1973.5 398,-1973.5 398,-1710.5 398,-1695.5982 398,-1678.997 398,-1665.3478"/>
  234. <polygon fill="#000000" stroke="#000000" points="401.5001,-1665.1232 398,-1655.1232 394.5001,-1665.1233 401.5001,-1665.1232"/>
  235. <text text-anchor="start" x="398" y="-1839" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">joined/add_message(&quot;joined room &quot; + int_to_str(room_number),&quot;info&quot;) &#160;&#160;</text>
  236. </g>
  237. <!-- _P_Main_Connected_JoiningOrJoined_Joined -->
  238. <!-- _P_Main_Connected_JoiningOrJoined_Joined_initial -->
  239. <g id="node20" class="node">
  240. <title>_P_Main_Connected_JoiningOrJoined_Joined_initial</title>
  241. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="805" cy="-1637" rx="5.5" ry="5.5"/>
  242. </g>
  243. <!-- _P_Main_Connected_JoiningOrJoined_Joined_Initial -->
  244. <g id="node22" class="node">
  245. <title>_P_Main_Connected_JoiningOrJoined_Joined_Initial</title>
  246. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="833,-1022 777,-1022 777,-986 833,-986 833,-1022"/>
  247. <text text-anchor="start" x="791.0002" y="-1000.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
  248. <path fill="none" stroke="#000000" stroke-width="2" d="M789.3333,-987C789.3333,-987 820.6667,-987 820.6667,-987 826.3333,-987 832,-992.6667 832,-998.3333 832,-998.3333 832,-1009.6667 832,-1009.6667 832,-1015.3333 826.3333,-1021 820.6667,-1021 820.6667,-1021 789.3333,-1021 789.3333,-1021 783.6667,-1021 778,-1015.3333 778,-1009.6667 778,-1009.6667 778,-998.3333 778,-998.3333 778,-992.6667 783.6667,-987 789.3333,-987"/>
  249. </g>
  250. <!-- _P_Main_Connected_JoiningOrJoined_Joined_initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_Initial -->
  251. <g id="edge12" class="edge">
  252. <title>_P_Main_Connected_JoiningOrJoined_Joined_initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_Initial</title>
  253. <path fill="none" stroke="#000000" d="M805,-1631.4659C805,-1624.482 805,-1612.1007 805,-1601.5 805,-1601.5 805,-1601.5 805,-1039.5 805,-1037.1079 805,-1034.6252 805,-1032.1342"/>
  254. <polygon fill="#000000" stroke="#000000" points="808.5001,-1032.0597 805,-1022.0598 801.5001,-1032.0598 808.5001,-1032.0597"/>
  255. <text text-anchor="middle" x="806.3895" y="-1323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  256. </g>
  257. <!-- _P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage -->
  258. <g id="node21" class="node">
  259. <title>_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage</title>
  260. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="340.5,-281 231.5,-281 231.5,-235 340.5,-235 340.5,-281"/>
  261. <text text-anchor="start" x="239.8218" y="-264.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">EnteringMessage</text>
  262. <text text-anchor="start" x="237.8262" y="-244.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">enter /input_msg()</text>
  263. <polygon fill="#000000" stroke="#000000" points="232,-258 232,-258 341,-258 341,-258 232,-258"/>
  264. <path fill="none" stroke="#000000" stroke-width="2" d="M244.5,-236C244.5,-236 327.5,-236 327.5,-236 333.5,-236 339.5,-242 339.5,-248 339.5,-248 339.5,-268 339.5,-268 339.5,-274 333.5,-280 327.5,-280 327.5,-280 244.5,-280 244.5,-280 238.5,-280 232.5,-274 232.5,-268 232.5,-268 232.5,-248 232.5,-248 232.5,-242 238.5,-236 244.5,-236"/>
  265. </g>
  266. <!-- _P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage -->
  267. <g id="edge13" class="edge">
  268. <title>_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage</title>
  269. <path fill="none" stroke="#000000" d="M340.6677,-260.7505C353.2542,-260.5135 362.5,-259.5967 362.5,-258 362.5,-256.8773 357.929,-256.0908 350.8398,-255.6403"/>
  270. <polygon fill="#000000" stroke="#000000" points="350.7947,-252.1361 340.6677,-255.2495 350.5259,-259.1309 350.7947,-252.1361"/>
  271. <text text-anchor="start" x="362.5" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [is_backspace(char)]/remove_last_in_buffer() &#160;&#160;</text>
  272. </g>
  273. <!-- _P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage -->
  274. <g id="edge15" class="edge">
  275. <title>_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage</title>
  276. <path fill="none" stroke="#000000" d="M340.5541,-261.7954C440.4251,-265.1538 635.867,-263.8887 635.867,-258 635.867,-252.3069 453.1882,-250.9353 350.8076,-253.8853"/>
  277. <polygon fill="#000000" stroke="#000000" points="350.4403,-250.395 340.5541,-254.2046 350.6582,-257.3916 350.4403,-250.395"/>
  278. <text text-anchor="start" x="635.867" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str)/append_to_buffer(char) &#160;&#160;</text>
  279. </g>
  280. <!-- _P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_Initial -->
  281. <g id="edge14" class="edge">
  282. <title>_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_Initial</title>
  283. <path fill="none" stroke="#000000" d="M231.0991,-263.4698C191.1403,-269.0289 144,-279.5935 144,-298.5 144,-968.5 144,-968.5 144,-968.5 144,-984.1806 624.7051,-998.9339 766.2408,-1002.9379"/>
  284. <polygon fill="#000000" stroke="#000000" points="766.5033,-1006.4466 776.5977,-1003.2288 766.6999,-999.4493 766.5033,-1006.4466"/>
  285. <text text-anchor="start" x="144" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [is_enter(char)]^network.send_message /add_message(get_buffer(),&quot;local_message&quot;)⁏ clear_input()⁏ input_command()⁏ &#160;&#160;</text>
  286. </g>
  287. <!-- _P_Main_Connected_JoiningOrJoined_Joined_Initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage -->
  288. <g id="edge16" class="edge">
  289. <title>_P_Main_Connected_JoiningOrJoined_Joined_Initial&#45;&gt;_P_Main_Connected_JoiningOrJoined_Joined_EnteringMessage</title>
  290. <path fill="none" stroke="#000000" d="M805,-985.9402C805,-980.3497 805,-974.1701 805,-968.5 805,-968.5 805,-968.5 805,-298.5 805,-275.9611 489.7863,-263.9549 350.667,-259.7535"/>
  291. <polygon fill="#000000" stroke="#000000" points="350.6609,-256.2519 340.5612,-259.4527 350.4526,-263.2488 350.6609,-256.2519"/>
  292. <text text-anchor="start" x="805" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [char == &quot;m&quot;] &#160;&#160;</text>
  293. </g>
  294. <!-- _P_Main_Connected_LeavingOrLeft_Leaving -->
  295. <g id="node26" class="node">
  296. <title>_P_Main_Connected_LeavingOrLeft_Leaving</title>
  297. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="1031,-794 967,-794 967,-758 1031,-758 1031,-794"/>
  298. <text text-anchor="start" x="977.9916" y="-772.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Leaving</text>
  299. <path fill="none" stroke="#000000" stroke-width="2" d="M979.3333,-759C979.3333,-759 1018.6667,-759 1018.6667,-759 1024.3333,-759 1030,-764.6667 1030,-770.3333 1030,-770.3333 1030,-781.6667 1030,-781.6667 1030,-787.3333 1024.3333,-793 1018.6667,-793 1018.6667,-793 979.3333,-793 979.3333,-793 973.6667,-793 968,-787.3333 968,-781.6667 968,-781.6667 968,-770.3333 968,-770.3333 968,-764.6667 973.6667,-759 979.3333,-759"/>
  300. </g>
  301. <!-- _P_Main_Connected_JoiningOrJoined_Joined_Initial&#45;&gt;_P_Main_Connected_LeavingOrLeft_Leaving -->
  302. <g id="edge17" class="edge">
  303. <title>_P_Main_Connected_JoiningOrJoined_Joined_Initial&#45;&gt;_P_Main_Connected_LeavingOrLeft_Leaving</title>
  304. <path fill="none" stroke="#000000" d="M833.2431,-987.9863C848.8052,-979.0487 865,-969.5061 865,-968.5 865,-968.5 865,-968.5 865,-849.5 865,-844.7287 866.0467,-842.6714 870,-840 898.8742,-820.4884 916.8853,-847.6938 948,-832 961.3791,-825.2518 972.9525,-813.4154 981.6768,-802.3577"/>
  305. <polygon fill="#000000" stroke="#000000" points="984.6202,-804.2648 987.7757,-794.1507 979.0017,-800.0895 984.6202,-804.2648"/>
  306. <text text-anchor="start" x="865" y="-906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [char == &quot;l&quot;]^network.leave /input_command() &#160;&#160;</text>
  307. </g>
  308. <!-- _P_Main_Connected_LeavingOrLeft_initial -->
  309. <g id="node25" class="node">
  310. <title>_P_Main_Connected_LeavingOrLeft_initial</title>
  311. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="1179" cy="-776" rx="5.5" ry="5.5"/>
  312. </g>
  313. <!-- _P_Main_Connected_LeavingOrLeft_NotJoined -->
  314. <g id="node28" class="node">
  315. <title>_P_Main_Connected_LeavingOrLeft_NotJoined</title>
  316. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="1070,-460 994,-460 994,-424 1070,-424 1070,-460"/>
  317. <text text-anchor="start" x="1004.9928" y="-438.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">NotJoined</text>
  318. <path fill="none" stroke="#000000" stroke-width="2" d="M1006.3333,-425C1006.3333,-425 1057.6667,-425 1057.6667,-425 1063.3333,-425 1069,-430.6667 1069,-436.3333 1069,-436.3333 1069,-447.6667 1069,-447.6667 1069,-453.3333 1063.3333,-459 1057.6667,-459 1057.6667,-459 1006.3333,-459 1006.3333,-459 1000.6667,-459 995,-453.3333 995,-447.6667 995,-447.6667 995,-436.3333 995,-436.3333 995,-430.6667 1000.6667,-425 1006.3333,-425"/>
  319. </g>
  320. <!-- _P_Main_Connected_LeavingOrLeft_initial&#45;&gt;_P_Main_Connected_LeavingOrLeft_NotJoined -->
  321. <g id="edge19" class="edge">
  322. <title>_P_Main_Connected_LeavingOrLeft_initial&#45;&gt;_P_Main_Connected_LeavingOrLeft_NotJoined</title>
  323. <path fill="none" stroke="#000000" d="M1182.9063,-771.81C1189.9375,-764.087 1204,-747.7366 1204,-740.5 1204,-740.5 1204,-740.5 1204,-477.5 1204,-464.8062 1131.2187,-453.6053 1080.3443,-447.3263"/>
  324. <polygon fill="#000000" stroke="#000000" points="1080.5195,-443.8222 1070.1724,-446.0998 1079.6814,-450.7718 1080.5195,-443.8222"/>
  325. <text text-anchor="middle" x="1205.3895" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  326. </g>
  327. <!-- _P_Main_Connected_LeavingOrLeft_Leaving&#45;&gt;_P_Main_Connected_LeavingOrLeft_NotJoined -->
  328. <g id="edge20" class="edge">
  329. <title>_P_Main_Connected_LeavingOrLeft_Leaving&#45;&gt;_P_Main_Connected_LeavingOrLeft_NotJoined</title>
  330. <path fill="none" stroke="#000000" d="M995.4194,-757.6439C994.618,-752.1523 994,-746.1016 994,-740.5 994,-740.5 994,-740.5 994,-477.5 994,-474.3683 994.6977,-471.4336 995.9039,-468.6999"/>
  331. <polygon fill="#000000" stroke="#000000" points="998.9639,-470.424 1001.6899,-460.1859 993.1743,-466.4895 998.9639,-470.424"/>
  332. <text text-anchor="start" x="994" y="-606" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">left/add_message(&quot;left room&quot;,&quot;info&quot;) &#160;&#160;</text>
  333. </g>
  334. <!-- _P_Main_Connected_LeavingOrLeft_GettingRoomNumber -->
  335. <g id="node27" class="node">
  336. <title>_P_Main_Connected_LeavingOrLeft_GettingRoomNumber</title>
  337. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="1102.5,-76 967.5,-76 967.5,-40 1102.5,-40 1102.5,-76"/>
  338. <text text-anchor="start" x="978.8282" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">GettingRoomNumber</text>
  339. <path fill="none" stroke="#000000" stroke-width="2" d="M979.8333,-41C979.8333,-41 1090.1667,-41 1090.1667,-41 1095.8333,-41 1101.5,-46.6667 1101.5,-52.3333 1101.5,-52.3333 1101.5,-63.6667 1101.5,-63.6667 1101.5,-69.3333 1095.8333,-75 1090.1667,-75 1090.1667,-75 979.8333,-75 979.8333,-75 974.1667,-75 968.5,-69.3333 968.5,-63.6667 968.5,-63.6667 968.5,-52.3333 968.5,-52.3333 968.5,-46.6667 974.1667,-41 979.8333,-41"/>
  340. </g>
  341. <!-- _P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_JoiningOrJoined -->
  342. <g id="edge22" class="edge">
  343. <title>_P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_JoiningOrJoined</title>
  344. <path fill="none" stroke="#000000" d="M1102.5206,-63.9C1159.5481,-69.8272 1232,-80.0118 1232,-93.5 1232,-2317.5 1232,-2317.5 1232,-2317.5 1232,-2346.2142 1004.3454,-2351.9227 953.1426,-2352.8435"/>
  345. <polygon fill="#000000" stroke="#000000" points="960.7195,-2348.7826 951,-2352.9994 961.2278,-2355.7641 960.7195,-2348.7826"/>
  346. <text text-anchor="start" x="1232" y="-1240" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [is_enter(char)]/room_number = stoi(get_buffer())⁏ clear_input()⁏ input_command()⁏ &#160;&#160;</text>
  347. </g>
  348. <!-- _P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber -->
  349. <g id="edge21" class="edge">
  350. <title>_P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber</title>
  351. <path fill="none" stroke="#000000" d="M1102.5214,-59.5472C1115.3956,-59.3621 1124.5,-58.8464 1124.5,-58 1124.5,-57.4049 1119.9989,-56.9733 1112.8511,-56.7051"/>
  352. <polygon fill="#000000" stroke="#000000" points="1112.6039,-53.1981 1102.5214,-56.4528 1112.4329,-60.196 1112.6039,-53.1981"/>
  353. <text text-anchor="start" x="1124.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [is_backspace(char)]/remove_last_in_buffer() &#160;&#160;</text>
  354. </g>
  355. <!-- _P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber -->
  356. <g id="edge23" class="edge">
  357. <title>_P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber</title>
  358. <path fill="none" stroke="#000000" d="M1102.8153,-60.3662C1209.3749,-62.0853 1397.867,-61.2965 1397.867,-58 1397.867,-54.8065 1220.9716,-53.9665 1113.0371,-55.48"/>
  359. <polygon fill="#000000" stroke="#000000" points="1112.7615,-51.9837 1102.8153,-55.6338 1112.8669,-58.9829 1112.7615,-51.9837"/>
  360. <text text-anchor="start" x="1397.867" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [is_numerical(char)]/append_to_buffer(char) &#160;&#160;</text>
  361. </g>
  362. <!-- _P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber -->
  363. <g id="edge24" class="edge">
  364. <title>_P_Main_Connected_LeavingOrLeft_GettingRoomNumber&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber</title>
  365. <path fill="none" stroke="#000000" d="M1102.5531,-60.8252C1267.4668,-64.2992 1665.681,-63.3574 1665.681,-58 1665.681,-52.7498 1283.2513,-51.7403 1112.7331,-54.9715"/>
  366. <polygon fill="#000000" stroke="#000000" points="1112.4812,-51.4757 1102.5531,-55.1748 1112.6211,-58.4743 1112.4812,-51.4757"/>
  367. <text text-anchor="start" x="1665.681" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [not is_numerical(char)]/add_message(&quot;only numerical input allowed!&quot;,&quot;warning&quot;) &#160;&#160;</text>
  368. </g>
  369. <!-- _P_Main_Connected_LeavingOrLeft_NotJoined&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber -->
  370. <g id="edge25" class="edge">
  371. <title>_P_Main_Connected_LeavingOrLeft_NotJoined&#45;&gt;_P_Main_Connected_LeavingOrLeft_GettingRoomNumber</title>
  372. <path fill="none" stroke="#000000" d="M1032,-423.9402C1032,-418.3497 1032,-412.1701 1032,-406.5 1032,-406.5 1032,-406.5 1032,-93.5 1032,-91.0994 1032.069,-88.6107 1032.186,-86.1158"/>
  373. <polygon fill="#000000" stroke="#000000" points="1035.6848,-86.2528 1032.8839,-76.0349 1028.7015,-85.7692 1035.6848,-86.2528"/>
  374. <text text-anchor="start" x="1032" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">input(char:str) [char == &quot;j&quot;]/input_join() &#160;&#160;</text>
  375. </g>
  376. <!-- _P_Main_Connecting_initial -->
  377. <g id="node30" class="node">
  378. <title>_P_Main_Connecting_initial</title>
  379. <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="468" cy="-2995.5" rx="5.5" ry="5.5"/>
  380. </g>
  381. <!-- _P_Main_Connecting_Initial -->
  382. <g id="node32" class="node">
  383. <title>_P_Main_Connecting_Initial</title>
  384. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="496,-2769.5 440,-2769.5 440,-2733.5 496,-2733.5 496,-2769.5"/>
  385. <text text-anchor="start" x="454.0002" y="-2747.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">Initial</text>
  386. <path fill="none" stroke="#000000" stroke-width="2" d="M452.3333,-2734.5C452.3333,-2734.5 483.6667,-2734.5 483.6667,-2734.5 489.3333,-2734.5 495,-2740.1667 495,-2745.8333 495,-2745.8333 495,-2757.1667 495,-2757.1667 495,-2762.8333 489.3333,-2768.5 483.6667,-2768.5 483.6667,-2768.5 452.3333,-2768.5 452.3333,-2768.5 446.6667,-2768.5 441,-2762.8333 441,-2757.1667 441,-2757.1667 441,-2745.8333 441,-2745.8333 441,-2740.1667 446.6667,-2734.5 452.3333,-2734.5"/>
  387. </g>
  388. <!-- _P_Main_Connecting_initial&#45;&gt;_P_Main_Connecting_Initial -->
  389. <g id="edge27" class="edge">
  390. <title>_P_Main_Connecting_initial&#45;&gt;_P_Main_Connecting_Initial</title>
  391. <path fill="none" stroke="#000000" d="M468,-2989.869C468,-2981.577 468,-2965.5938 468,-2952 468,-2952 468,-2952 468,-2787 468,-2784.6079 468,-2782.1252 468,-2779.6342"/>
  392. <polygon fill="#000000" stroke="#000000" points="471.5001,-2779.5597 468,-2769.5598 464.5001,-2779.5598 471.5001,-2779.5597"/>
  393. <text text-anchor="middle" x="469.3895" y="-2866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
  394. </g>
  395. <!-- _P_Main_Connecting_TryingConnect -->
  396. <g id="node31" class="node">
  397. <title>_P_Main_Connecting_TryingConnect</title>
  398. <polygon fill="transparent" stroke="transparent" stroke-width="2" points="140,-2560.5 40,-2560.5 40,-2524.5 140,-2524.5 140,-2560.5"/>
  399. <text text-anchor="start" x="50.9946" y="-2538.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">TryingConnect</text>
  400. <path fill="none" stroke="#000000" stroke-width="2" d="M52.3333,-2525.5C52.3333,-2525.5 127.6667,-2525.5 127.6667,-2525.5 133.3333,-2525.5 139,-2531.1667 139,-2536.8333 139,-2536.8333 139,-2548.1667 139,-2548.1667 139,-2553.8333 133.3333,-2559.5 127.6667,-2559.5 127.6667,-2559.5 52.3333,-2559.5 52.3333,-2559.5 46.6667,-2559.5 41,-2553.8333 41,-2548.1667 41,-2548.1667 41,-2536.8333 41,-2536.8333 41,-2531.1667 46.6667,-2525.5 52.3333,-2525.5"/>
  401. </g>
  402. <!-- _P_Main_Connecting_TryingConnect&#45;&gt;_P_Main_Connected_H -->
  403. <g id="edge28" class="edge">
  404. <title>_P_Main_Connecting_TryingConnect&#45;&gt;_P_Main_Connected_H</title>
  405. <path fill="none" stroke="#000000" d="M80.1403,-2524.4076C76.8477,-2516.7904 74,-2507.6905 74,-2499 74,-2499 74,-2499 74,-2452 74,-2427.6491 69.2242,-2400.3556 64.891,-2380.6033"/>
  406. <polygon fill="#000000" stroke="#000000" points="68.2767,-2379.7084 62.6279,-2370.7451 61.4542,-2381.2747 68.2767,-2379.7084"/>
  407. <text text-anchor="start" x="74" y="-2472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">connected/add_message(&quot;connected to server &quot; + get_server(curr_server),&quot;info&quot;) &#160;&#160;</text>
  408. </g>
  409. <!-- _P_Main_Connecting_TryingConnect&#45;&gt;_P_Main_Connecting_Initial -->
  410. <g id="edge29" class="edge">
  411. <title>_P_Main_Connecting_TryingConnect&#45;&gt;_P_Main_Connecting_Initial</title>
  412. <path fill="none" stroke="#000000" d="M68.4941,-2560.862C64.7344,-2565.8987 62,-2571.7204 62,-2578 62,-2708 62,-2708 62,-2708 62,-2726.379 328.5049,-2743.5309 429.6728,-2749.3799"/>
  413. <polygon fill="#000000" stroke="#000000" points="429.5895,-2752.8807 439.7732,-2749.9579 429.9896,-2745.8922 429.5895,-2752.8807"/>
  414. <text text-anchor="start" x="62" y="-2634.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">after(5 s)/add_message(&quot;unable to connect to server &quot; + get_server(curr_server),&quot;info&quot;)⁏ if (not reconnecting) [[curr_server = (curr_server + 1) % get_nr_of_servers()⁏ ]]⁏ &#160;&#160;</text>
  415. </g>
  416. <!-- _P_Main_Connecting_Initial&#45;&gt;_P_Main_Connecting_TryingConnect -->
  417. <g id="edge30" class="edge">
  418. <title>_P_Main_Connecting_Initial&#45;&gt;_P_Main_Connecting_TryingConnect</title>
  419. <path fill="none" stroke="#000000" d="M496.1975,-2749.9214C587.4737,-2744.6271 869,-2726.7758 869,-2708 869,-2708 869,-2708 869,-2578 869,-2560.0402 333.485,-2547.4579 150.4668,-2543.6823"/>
  420. <polygon fill="#000000" stroke="#000000" points="150.2828,-2540.1778 140.2132,-2543.4723 150.1394,-2547.1764 150.2828,-2540.1778"/>
  421. <text text-anchor="start" x="869" y="-2634.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">after(100 ms)/add_message(&quot;trying to connect to server &quot; + get_server(curr_server),&quot;info&quot;) ^network.connect &#160;&#160;</text>
  422. </g>
  423. </g>
  424. </svg>