Files
Progetto-ingegneria-del-sof…/src/main/resources/CLient_UML_detail.drawio
T
rubenpirreram 338df7748b Fixed: UML_TEMP
2026-06-14 23:23:42 +02:00

1251 lines
138 KiB
Plaintext

<mxGraphModel dx="0" dy="0" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="node66" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;AddPlayer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ AddPlayer(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- proposedNPlayer: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(MiniModel): boolean&lt;br/&gt;+ apply(GameController): boolean&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; proposedNPlayer: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1337" y="7524" width="243" height="162" as="geometry" />
</mxCell>
<mxCell id="node65" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ApplyNextRound&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ApplyNextRound(Map&amp;lt;Slot, Player&amp;gt;, OrderLogicCard, CurrentState, List&amp;lt;Player&amp;gt;, ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-214" y="6967" width="410" height="121" as="geometry" />
</mxCell>
<mxCell id="node59" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Artist&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Artist(String, int, int): &lt;br/&gt;+ Artist(String, int): &lt;br/&gt;+ Artist(int, int): &lt;br/&gt;+ Artist(int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringPlayer(): String&lt;br/&gt;+ clone(): Character&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ insert(Player): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="216" y="2289" width="187" height="232" as="geometry" />
</mxCell>
<mxCell id="node11" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;AsciiTable&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ AsciiTable(BorderStyle, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ build(): String&lt;br/&gt;- hline(String, String, String, int): String&lt;br/&gt;+ sideBySide(List&amp;lt;String&amp;gt;, List&amp;lt;String&amp;gt;, int): String&lt;br/&gt;- isWide(int): boolean&lt;br/&gt;+ displayWidth(String): int&lt;br/&gt;+ addRow(List&amp;lt;String&amp;gt;): void&lt;br/&gt;+ addRow(String[]): void&lt;br/&gt;+ addHeader(String[]): void&lt;br/&gt;- rpad(String, int): String&lt;br/&gt;+ addSeparator(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-197" y="2247" width="353" height="304" as="geometry" />
</mxCell>
<mxCell id="node51" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;BorderStyle&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- BorderStyle(String, String, String, String, String, String, String, String, String, String, String, String, String, String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ values(): BorderStyle[]&lt;br/&gt;+ sl(): String&lt;br/&gt;+ h(): String&lt;br/&gt;+ valueOf(String): BorderStyle&lt;br/&gt;+ bl(): String&lt;br/&gt;+ br(): String&lt;br/&gt;+ sr(): String&lt;br/&gt;+ sx(): String&lt;br/&gt;+ mt(): String&lt;br/&gt;+ tr(): String&lt;br/&gt;+ mb(): String&lt;br/&gt;+ tl(): String&lt;br/&gt;+ v(): String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-189" y="1176" width="370" height="376" as="geometry" />
</mxCell>
<mxCell id="node21" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Builder&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Builder(String, int, int, int, int): &lt;br/&gt;+ Builder(int, int, int, int): &lt;br/&gt;+ Builder(int, int, int): &lt;br/&gt;+ Builder(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- reductionValue: int&lt;br/&gt;- prestigeValue: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): Character&lt;br/&gt;+ insert(Player): void&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; prestigeValue: int&lt;br/&gt; reductionValue: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="469" y="2244" width="238" height="330" as="geometry" />
</mxCell>
<mxCell id="node19" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building0&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building0(int, int, int): &lt;br/&gt;+ Building0(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): BuildingCard&lt;br/&gt;+ buy(Player): boolean&lt;br/&gt;+ applyEffect(Player): void&lt;br/&gt;+ initialize(Player): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2335" y="2795" width="228" height="184" as="geometry" />
</mxCell>
<mxCell id="node3" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building1&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building1(String, int, int, int, CharacterType): &lt;br/&gt;+ Building1(int, int, int, CharacterType): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- icon: CharacterType&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): BuildingCard&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ toStringPlayer(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; icon: CharacterType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1254" y="3360" width="326" height="210" as="geometry" />
</mxCell>
<mxCell id="node38" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building10&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building10(int, int, int): &lt;br/&gt;+ Building10(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ applyEffect(Player): void&lt;br/&gt;+ clone(): BuildingCard&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2161" y="3398" width="234" height="147" as="geometry" />
</mxCell>
<mxCell id="node39" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building11&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building11(String, int, int, int, CharacterType, int): &lt;br/&gt;+ Building11(int, int, int, CharacterType, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- prestigeMul: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): BuildingCard&lt;br/&gt;+ applyEffect(Player): void&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; prestigeMul: int&lt;br/&gt; icon: CharacterType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="477" y="3336" width="356" height="258" as="geometry" />
</mxCell>
<mxCell id="node18" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building13&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building13(String, int, int, int): &lt;br/&gt;+ Building13(int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): BuildingCard&lt;br/&gt;+ applyEffect(Player): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2012" y="2817" width="234" height="147" as="geometry" />
</mxCell>
<mxCell id="node32" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building4&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building4(int, int, int): &lt;br/&gt;+ Building4(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ buy(Player): boolean&lt;br/&gt;+ clone(): BuildingCard&lt;br/&gt;+ initialize(Player): void&lt;br/&gt;+ applyEffect(Player): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1864" y="3371" width="228" height="184" as="geometry" />
</mxCell>
<mxCell id="node4" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Building8&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Building8(int, int, int): &lt;br/&gt;+ Building8(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): BuildingCard&lt;br/&gt;+ applyEffect(Player): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1723" y="2815" width="228" height="147" as="geometry" />
</mxCell>
<mxCell id="node47" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BuildingCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# BuildingCard(int, int, int): &lt;br/&gt;+ BuildingCard(int, int, int, int): &lt;br/&gt;# BuildingCard(String, int, int, int): &lt;br/&gt;+ BuildingCard(String, int, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# effectId: int&lt;br/&gt;- price: int&lt;br/&gt;# effectType: EffectType&lt;br/&gt;- prestigeValue: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringBoard(): String&lt;br/&gt;+ buy(Player): boolean&lt;br/&gt;- effectTypeFromId(int): EffectType&lt;br/&gt;+ applyEffect(Player): void&lt;br/&gt;+ clone(): BuildingCard&lt;br/&gt;+ toStringPlayer(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; price: int&lt;br/&gt; effectType: EffectType&lt;br/&gt; prestigeValue: int&lt;br/&gt; effectId: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1994" y="2170" width="273" height="474" as="geometry" />
</mxCell>
<mxCell id="node41" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;BuildingEffect&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1893" y="932" width="158" height="35" as="geometry" />
</mxCell>
<mxCell id="node58" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;CavePaintings&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ CavePaintings(int, int, int, int): &lt;br/&gt;+ CavePaintings(String, int, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): EventCard&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ activateEvent(ArrayList&amp;lt;Player&amp;gt;): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1670" y="1892" width="284" height="184" as="geometry" />
</mxCell>
<mxCell id="node5" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Character&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Character(String, int, CharacterType, int): &lt;br/&gt;+ Character(int, CharacterType): &lt;br/&gt;+ Character(String, int, CharacterType): &lt;br/&gt;+ Character(int, CharacterType, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- type: CharacterType&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): Character&lt;br/&gt;+ insert(Player): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; type: CharacterType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="241" y="1247" width="308" height="234" as="geometry" />
</mxCell>
<mxCell id="node17" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;CharacterType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ CharacterType(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ values(): CharacterType[]&lt;br/&gt;+ valueOf(String): CharacterType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="195" y="387" width="239" height="140" as="geometry" />
</mxCell>
<mxCell id="node12" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ClientCallbackImpl&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ClientCallbackImpl(ClientController): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ onAction(NetworkEvent): void&lt;br/&gt;+ onGameInit(MiniModel): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1232" y="9088" width="272" height="121" as="geometry" />
</mxCell>
<mxCell id="node1" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ClientController&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ClientController(IView): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- miniModel: MiniModel&lt;br/&gt;- view: IView&lt;br/&gt;- client: IClient&lt;br/&gt;- myUsername: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ drawLowerTribeCard(int): void&lt;br/&gt;+ slotChoice(int): void&lt;br/&gt;+ disconnect(): void&lt;br/&gt;+ drawUpperTribeCard(int): void&lt;br/&gt;+ drawUpperBuildingCard(int): void&lt;br/&gt;+ drawLowerBuildingCard(int): void&lt;br/&gt;+ skipTurn(): void&lt;br/&gt;+ totemChoice(int): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; miniModel: MiniModel&lt;br/&gt; client: IClient&lt;br/&gt; view: IView&lt;br/&gt; myUsername: String&lt;br/&gt; model: MiniModel&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="332" y="7750" width="252" height="474" as="geometry" />
</mxCell>
<mxCell id="node53" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ClientLauncherGUI&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ClientLauncherGUI(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ main(String[]): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1207" y="12325" width="196" height="95" as="geometry" />
</mxCell>
<mxCell id="node35" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ClientLauncherTUI&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ClientLauncherTUI(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- start(): void&lt;br/&gt;+ main(String[]): void&lt;br/&gt;- doLogin(ClientController): boolean&lt;br/&gt;- handleCommand(String, ClientController): boolean&lt;br/&gt;- handleRender(): void&lt;br/&gt;- parsePos(String[], int): int&lt;br/&gt;- buildPrompt(): String&lt;br/&gt;- buildGameReader(): LineReader&lt;br/&gt;- safeQuit(ClientController): void&lt;br/&gt;- handleDraw(String[], ClientController): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-23" y="10991" width="359" height="304" as="geometry" />
</mxCell>
<mxCell id="node10" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;CurrentState&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ CurrentState(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- gameStage: GameStages&lt;br/&gt;- slot: Slot&lt;br/&gt;- era: int&lt;br/&gt;- round: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ playerUpdate(Player, Slot): void&lt;br/&gt;+ roundUpdate(): void&lt;br/&gt;+ lowerDrawn(): void&lt;br/&gt;+ toString(): String&lt;br/&gt;+ upperDrawn(): void&lt;br/&gt;+ eraUpdate(): void&lt;br/&gt;+ gameStageUpdate(GameStages): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; NUpper: int&lt;br/&gt; round: int&lt;br/&gt; currentPlayer: Player&lt;br/&gt; NLower: int&lt;br/&gt; gameStage: GameStages&lt;br/&gt; era: int&lt;br/&gt; slot: Slot&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="657" y="4935" width="283" height="498" as="geometry" />
</mxCell>
<mxCell id="node68" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;DisconnectedPlayer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ DisconnectedPlayer(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ enrichWithGameState(Game, ArrayList&amp;lt;String&amp;gt;): void&lt;br/&gt;+ apply(MiniModel): boolean&lt;br/&gt;+ apply(GameController): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2604" y="6436" width="378" height="147" as="geometry" />
</mxCell>
<mxCell id="node62" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;DrawLowerBuildingCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ DrawLowerBuildingCard(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1583" y="7929" width="272" height="121" as="geometry" />
</mxCell>
<mxCell id="node61" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;DrawLowerTribeCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ DrawLowerTribeCard(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2270" y="7548" width="255" height="121" as="geometry" />
</mxCell>
<mxCell id="node60" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;DrawUpperBuildingCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ DrawUpperBuildingCard(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2102" y="7929" width="272" height="121" as="geometry" />
</mxCell>
<mxCell id="node69" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;DrawUpperTribeCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ DrawUpperTribeCard(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1751" y="7548" width="255" height="121" as="geometry" />
</mxCell>
<mxCell id="node13" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;EffectType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ EffectType(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ valueOf(String): EffectType&lt;br/&gt;+ values(): EffectType[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2008" y="1307" width="216" height="140" as="geometry" />
</mxCell>
<mxCell id="node71" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;EndedGame&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ EndedGame(Map&amp;lt;Slot, Player&amp;gt;, OrderLogicCard, CurrentState, ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(MiniModel): boolean&lt;br/&gt;+ apply(GameController): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1372" y="6969" width="442" height="121" as="geometry" />
</mxCell>
<mxCell id="node44" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;ErrorType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- ErrorType(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toString(): String&lt;br/&gt;+ values(): ErrorType[]&lt;br/&gt;+ valueOf(String): ErrorType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1272" y="5117" width="209" height="170" as="geometry" />
</mxCell>
<mxCell id="node45" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;EventCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ EventCard(int, EventType): &lt;br/&gt;+ EventCard(String, int, EventType): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- type: EventType&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ activateEvent(ArrayList&amp;lt;Player&amp;gt;): void&lt;br/&gt;+ clone(): TribeCard&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; type: EventType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1653" y="1275" width="284" height="186" as="geometry" />
</mxCell>
<mxCell id="node25" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;EventType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ EventType(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ values(): EventType[]&lt;br/&gt;+ valueOf(String): EventType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1766" y="670" width="214" height="140" as="geometry" />
</mxCell>
<mxCell id="node33" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;EventType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- EventType(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toString(): String&lt;br/&gt;+ values(): EventType[]&lt;br/&gt;+ valueOf(String): EventType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2608" y="5118" width="214" height="170" as="geometry" />
</mxCell>
<mxCell id="node55" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;FireParticleSystem&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ FireParticleSystem(Scene): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- pane: Pane&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- tick(long): void&lt;br/&gt;+ start(): void&lt;br/&gt;- spawnParticle(double, double): Particle&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; pane: Pane&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1913" y="11049" width="289" height="186" as="geometry" />
</mxCell>
<mxCell id="node56" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;GUI&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ GUI(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- controller: ClientController&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ render(): void&lt;br/&gt;- fadeToScene(Scene): void&lt;br/&gt;+ showError(ErrorType, String): void&lt;br/&gt;+ start(Stage): void&lt;br/&gt;- wrapScene(Scene): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; controller: ClientController&lt;br/&gt; model: MiniModel&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1735" y="12251" width="260" height="258" as="geometry" />
</mxCell>
<mxCell id="node52" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;GameStages&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- GameStages(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ valueOf(String): GameStages&lt;br/&gt;+ toString(): String&lt;br/&gt;+ values(): GameStages[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="784" y="4536" width="226" height="170" as="geometry" />
</mxCell>
<mxCell id="node42" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Gatherer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Gatherer(int): &lt;br/&gt;+ Gatherer(String, int, int): &lt;br/&gt;+ Gatherer(int, int): &lt;br/&gt;+ Gatherer(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringPlayer(): String&lt;br/&gt;+ insert(Player): void&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ clone(): Character&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="923" y="1872" width="203" height="232" as="geometry" />
</mxCell>
<mxCell id="node28" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Hunt&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Hunt(String, int, int): &lt;br/&gt;+ Hunt(int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- prestigeMultiplier: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): EventCard&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ activateEvent(ArrayList&amp;lt;Player&amp;gt;): void&lt;br/&gt;+ toStringPlayer(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; prestigeMultiplier: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1325" y="1871" width="284" height="234" as="geometry" />
</mxCell>
<mxCell id="node37" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Hunter&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Hunter(int, boolean): &lt;br/&gt;+ Hunter(String, int, boolean): &lt;br/&gt;+ Hunter(int, boolean, int): &lt;br/&gt;+ Hunter(String, int, boolean, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- icon: boolean&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): Character&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ insert(Player): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; icon: boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="768" y="2268" width="249" height="282" as="geometry" />
</mxCell>
<mxCell id="node48" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;IClient&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ totemChoice(String, String): void&lt;br/&gt;+ drawUpperBuildingCard(String, int): void&lt;br/&gt;+ skipTurn(String): void&lt;br/&gt;+ drawLowerTribeCard(String, int): void&lt;br/&gt;+ drawLowerBuildingCard(String, int): void&lt;br/&gt;+ slotChoice(String, int): void&lt;br/&gt;+ connect(String, int): ErrorType&lt;br/&gt;+ drawUpperTribeCard(String, int): void&lt;br/&gt;+ notifyDisconnection(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1905" y="6897" width="297" height="255" as="geometry" />
</mxCell>
<mxCell id="node36" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;IClientCallback&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ onAction(NetworkEvent): void&lt;br/&gt;+ onGameInit(MiniModel): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1043" y="7569" width="234" height="109" as="geometry" />
</mxCell>
<mxCell id="node31" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;IView&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ render(): void&lt;br/&gt;+ showError(ErrorType, String): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; model: MiniModel&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="164" y="6448" width="260" height="140" as="geometry" />
</mxCell>
<mxCell id="node20" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;InterfaceResolver&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- InterfaceResolver(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- toInt(byte[]): int&lt;br/&gt;+ resolveLocalInterface(String): String&lt;br/&gt;- sameSubnet(InetAddress, InetAddress, int): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1347" y="11886" width="374" height="147" as="geometry" />
</mxCell>
<mxCell id="node50" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Inventor&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Inventor(int, int, int): &lt;br/&gt;+ Inventor(String, int, int, int): &lt;br/&gt;+ Inventor(int, int): &lt;br/&gt;+ Inventor(String, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- icon: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ insert(Player): void&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;br/&gt;+ clone(): Character&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; icon: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="347" y="1846" width="223" height="282" as="geometry" />
</mxCell>
<mxCell id="node2" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;LeaderboardFXMLController&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ LeaderboardFXMLController(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- loadImage(String): Image&lt;br/&gt;- addShadow(Node): void&lt;br/&gt;- createStatItem(String, String, double): HBox&lt;br/&gt;+ render(): void&lt;br/&gt;- openPlayerPopup(Player): void&lt;br/&gt;+ setController(ClientController, Runnable): void&lt;br/&gt;+ initialize(): void&lt;br/&gt;- addHoverZoom(Node): void&lt;br/&gt;- renderBackground(): void&lt;br/&gt;- createPlayerRow(int, Player): HBox&lt;br/&gt;- getPlayerCards(String, String): ArrayList&amp;lt;PlayableCard&amp;gt;&lt;br/&gt;- onNewGame(): void&lt;br/&gt;- createStatsBox(Player): HBox&lt;br/&gt;- initPopup(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="901" y="10936" width="392" height="400" as="geometry" />
</mxCell>
<mxCell id="node57" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;LoginFXMLController&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ LoginFXMLController(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- controller: ClientController&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- onAccediClick(): void&lt;br/&gt;+ showError(String): void&lt;br/&gt;- showSuccess(String): void&lt;br/&gt;+ updateLoginButton(boolean): void&lt;br/&gt;- switchProtocol(): void&lt;br/&gt;+ showError(ErrorType): void&lt;br/&gt;- connect(String, String, int, String): void&lt;br/&gt;+ initialize(): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; controller: ClientController&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1355" y="10985" width="290" height="306" as="geometry" />
</mxCell>
<mxCell id="node15" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MainFXMLController&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ MainFXMLController(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- isError: boolean&lt;br/&gt;- controller: ClientController&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- loadImage(String): Image&lt;br/&gt;- renderBoard(): void&lt;br/&gt;- openDetailsPopup(): void&lt;br/&gt;- openPopupUpperBuilding(ArrayList&amp;lt;BuildingCard&amp;gt;): void&lt;br/&gt;- renderBackground(): void&lt;br/&gt;- drawMyHandList(ArrayList&amp;lt;PlayableCard&amp;gt;): void&lt;br/&gt;- openPopupLowerBuilding(ArrayList&amp;lt;BuildingCard&amp;gt;): void&lt;br/&gt;+ initialize(): void&lt;br/&gt;- initPopup(): void&lt;br/&gt;- buildPlayerCard(Player): VBox&lt;br/&gt;- drawUpperBuilding(): void&lt;br/&gt;- renderDeck(): void&lt;br/&gt;- renderOrder(): void&lt;br/&gt;- addClip(ImageView): void&lt;br/&gt;- addHoverZoom(Node): void&lt;br/&gt;- addShadow(Node): void&lt;br/&gt;- renderLower(): void&lt;br/&gt;+ render(): void&lt;br/&gt;- renderMyHand(): void&lt;br/&gt;- openPopup(ArrayList&amp;lt;PlayableCard&amp;gt;): void&lt;br/&gt;- renderUpper(): void&lt;br/&gt;- createOrder(String): StackPane&lt;br/&gt;- buildSidePanel(): void&lt;br/&gt;- drawLowerBuilding(): void&lt;br/&gt;- createSlot(Slot, boolean, boolean): StackPane&lt;br/&gt;- showPopup(): void&lt;br/&gt;- createCard(PlayableCard, boolean, boolean, Region): StackPane&lt;br/&gt;- getPlayerCards(String, String): ArrayList&amp;lt;PlayableCard&amp;gt;&lt;br/&gt;- renderSlotMap(): void&lt;br/&gt;- updateSidePanel(): void&lt;br/&gt;- createCardPopup(PlayableCard, boolean, boolean): StackPane&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; controller: ClientController&lt;br/&gt; isError: boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="398" y="10684" width="443" height="906" as="geometry" />
</mxCell>
<mxCell id="node29" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MiniModel&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ MiniModel(ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;): &lt;br/&gt;+ MiniModel(): &lt;br/&gt;+ MiniModel(Map&amp;lt;Slot, Player&amp;gt;, OrderLogicCard, CurrentState, List&amp;lt;Player&amp;gt;, List&amp;lt;Totems&amp;gt;, ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;TribeCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;, ArrayList&amp;lt;BuildingCard&amp;gt;, ArrayList&amp;lt;String&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ upperListBuildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;br/&gt;+ lowerListBuildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;br/&gt;+ orderLogicCard: OrderLogicCard&lt;br/&gt;+ availableTotems: List&amp;lt;Totems&amp;gt;&lt;br/&gt;+ standingPlayers: List&amp;lt;Player&amp;gt;&lt;br/&gt;+ lowerListTribeCards: ArrayList&amp;lt;TribeCard&amp;gt;&lt;br/&gt;+ currentState: CurrentState&lt;br/&gt;+ lastEvent: NetworkEvent&lt;br/&gt;+ players: Map&amp;lt;String, Player&amp;gt;&lt;br/&gt;+ upperListTribeCards: ArrayList&amp;lt;TribeCard&amp;gt;&lt;br/&gt;+ disconnectedPlayers: ArrayList&amp;lt;String&amp;gt;&lt;br/&gt;+ slotPlayerMap: Map&amp;lt;Slot, Player&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ removeLowerTribeCard(int): void&lt;br/&gt;+ getPositionByUsername(String): int&lt;br/&gt;+ removeUpperBuildingCard(int): void&lt;br/&gt;+ removeLowerBuildingCard(int): void&lt;br/&gt;+ removeUpperTribeCard(int): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; lowerListBuildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;br/&gt; lowerListTribeCards: ArrayList&amp;lt;TribeCard&amp;gt;&lt;br/&gt; slotPlayerMap: Map&amp;lt;Slot, Player&amp;gt;&lt;br/&gt; availableTotems: List&amp;lt;Totems&amp;gt;&lt;br/&gt; orderLogicCard: OrderLogicCard&lt;br/&gt; upperListBuildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;br/&gt; players: List&amp;lt;Player&amp;gt;&lt;br/&gt; upperListTribeCards: ArrayList&amp;lt;TribeCard&amp;gt;&lt;br/&gt; standingPlayers: List&amp;lt;Player&amp;gt;&lt;br/&gt; lastEvent: NetworkEvent&lt;br/&gt; currentState: CurrentState&lt;br/&gt; disconnectedPlayers: ArrayList&amp;lt;String&amp;gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="380" y="6623" width="421" height="810" as="geometry" />
</mxCell>
<mxCell id="node26" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;NetworkEvent&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# NetworkEvent(String, EventType, boolean, ErrorType): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# eventType: EventType&lt;br/&gt;# username: String&lt;br/&gt;# errorType: ErrorType&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(MiniModel): boolean&lt;br/&gt;+ toString(): String&lt;br/&gt;+ apply(GameController): boolean&lt;br/&gt;+ enrichWithGameState(Game, ArrayList&amp;lt;String&amp;gt;): void&lt;br/&gt;+ isError(): boolean&lt;br/&gt;+ setData(Map&amp;lt;Slot, Player&amp;gt;, OrderLogicCard, CurrentState, List&amp;lt;Player&amp;gt;): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; username: String&lt;br/&gt; errorType: ErrorType&lt;br/&gt; eventType: EventType&lt;br/&gt; isError: boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1183" y="5857" width="456" height="378" as="geometry" />
</mxCell>
<mxCell id="node9" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Order2&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Order2(ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toString(): String&lt;br/&gt;# effect(Player, int): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="522" y="5625" width="217" height="121" as="geometry" />
</mxCell>
<mxCell id="node49" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Order3&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Order3(ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# effect(Player, int): void&lt;br/&gt;+ toString(): String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="62" y="5629" width="217" height="121" as="geometry" />
</mxCell>
<mxCell id="node30" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Order4&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Order4(ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# effect(Player, int): void&lt;br/&gt;+ toString(): String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="344" y="5987" width="217" height="121" as="geometry" />
</mxCell>
<mxCell id="node54" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Order5&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Order5(ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# effect(Player, int): void&lt;br/&gt;+ toString(): String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-116" y="5989" width="217" height="121" as="geometry" />
</mxCell>
<mxCell id="node43" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;OrderLogicCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ OrderLogicCard(ArrayList&amp;lt;Player&amp;gt;): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;# playerList: List&amp;lt;OrderPlayer&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ push(Player): void&lt;br/&gt;+ pull(): Player&lt;br/&gt;# buildingEffect(Player): void&lt;br/&gt;+ containsInQueue(Player): boolean&lt;br/&gt;+ pushNoEffect(Player): void&lt;br/&gt;# effect(Player, int): void&lt;br/&gt;+ removeFromQueue(Player): void&lt;br/&gt;+ getPosition(String): int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; first: Player&lt;br/&gt; playerList: List&amp;lt;OrderPlayer&amp;gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="325" y="5018" width="271" height="330" as="geometry" />
</mxCell>
<mxCell id="node8" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;OrderPlayer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ OrderPlayer(Player, boolean): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- played: boolean&lt;br/&gt;- player: Player&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ markAsPlayed(): void&lt;br/&gt;+ toString(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; player: Player&lt;br/&gt; played: boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="301" y="4498" width="232" height="210" as="geometry" />
</mxCell>
<mxCell id="node22" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;PlayableCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ PlayableCard(int): &lt;br/&gt;+ PlayableCard(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- idIMG: String&lt;br/&gt;- era: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; era: int&lt;br/&gt; idIMG: String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-147" y="-14" width="203" height="234" as="geometry" />
</mxCell>
<mxCell id="node14" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Player&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Player(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- foodValue: int&lt;br/&gt;- totem: Totems&lt;br/&gt;- gatherers: ArrayList&amp;lt;Gatherer&amp;gt;&lt;br/&gt;- shamans: ArrayList&amp;lt;Shaman&amp;gt;&lt;br/&gt;- userName: String&lt;br/&gt;- inventors: ArrayList&amp;lt;Inventor&amp;gt;&lt;br/&gt;- artists: ArrayList&amp;lt;Artist&amp;gt;&lt;br/&gt;- hunters: ArrayList&amp;lt;Hunter&amp;gt;&lt;br/&gt;- prestigeValue: int&lt;br/&gt;- buildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;br/&gt;- builders: ArrayList&amp;lt;Builder&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ getNType(CharacterType): int&lt;br/&gt;+ toString(): String&lt;br/&gt;+ addFood(int): void&lt;br/&gt;+ removePrestige(int): void&lt;br/&gt;+ removeFood(int): boolean&lt;br/&gt;+ equals(Object): boolean&lt;br/&gt;+ addPrestige(int): void&lt;br/&gt;+ hashCode(): int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; shamans: ArrayList&amp;lt;Shaman&amp;gt;&lt;br/&gt; totCharacters: int&lt;br/&gt; artists: ArrayList&amp;lt;Artist&amp;gt;&lt;br/&gt; inventors: ArrayList&amp;lt;Inventor&amp;gt;&lt;br/&gt; userName: String&lt;br/&gt; gatherers: ArrayList&amp;lt;Gatherer&amp;gt;&lt;br/&gt; foodValue: int&lt;br/&gt; builders: ArrayList&amp;lt;Builder&amp;gt;&lt;br/&gt; prestigeValue: int&lt;br/&gt; hunters: ArrayList&amp;lt;Hunter&amp;gt;&lt;br/&gt; totem: Totems&lt;br/&gt; buildingCards: ArrayList&amp;lt;BuildingCard&amp;gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="127" y="3056" width="288" height="810" as="geometry" />
</mxCell>
<mxCell id="node40" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;RMIClient&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ RMIClient(ClientController, String, int, String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- startHeartbeat(): void&lt;br/&gt;+ drawUpperBuildingCard(String, int): void&lt;br/&gt;+ drawLowerTribeCard(String, int): void&lt;br/&gt;+ totemChoice(String, String): void&lt;br/&gt;+ slotChoice(String, int): void&lt;br/&gt;+ drawUpperTribeCard(String, int): void&lt;br/&gt;+ connect(String, int): ErrorType&lt;br/&gt;+ notifyDisconnection(): void&lt;br/&gt;- disconnect(): void&lt;br/&gt;+ drawLowerBuildingCard(String, int): void&lt;br/&gt;+ skipTurn(String): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1237" y="9421" width="333" height="328" as="geometry" />
</mxCell>
<mxCell id="node63" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ReconnectPlayer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ReconnectPlayer(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ enrichWithGameState(Game, ArrayList&amp;lt;String&amp;gt;): void&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="903" y="6961" width="378" height="147" as="geometry" />
</mxCell>
<mxCell id="node27" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Shaman&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Shaman(int, int): &lt;br/&gt;+ Shaman(int, int, int): &lt;br/&gt;+ Shaman(String, int, int): &lt;br/&gt;+ Shaman(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- icon: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): Character&lt;br/&gt;+ insert(Player): void&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ toStringBoard(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; icon: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="633" y="1852" width="220" height="282" as="geometry" />
</mxCell>
<mxCell id="node46" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;ShamanicRitual&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ ShamanicRitual(int, int, int): &lt;br/&gt;+ ShamanicRitual(String, int, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- prestigeToAdd: int&lt;br/&gt;- prestigeToRemove: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringBoard(): String&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ clone(): EventCard&lt;br/&gt;+ activateEvent(ArrayList&amp;lt;Player&amp;gt;): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; prestigeToRemove: int&lt;br/&gt; prestigeToAdd: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1510" y="2259" width="284" height="282" as="geometry" />
</mxCell>
<mxCell id="node67" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;SkipTurn&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ SkipTurn(String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="895" y="7935" width="243" height="121" as="geometry" />
</mxCell>
<mxCell id="node0" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Slot&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Slot(char): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- food: int&lt;br/&gt;- slotId: char&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ equals(Object): boolean&lt;br/&gt;+ hashCode(): int&lt;br/&gt;+ toString(): String&lt;br/&gt;+ toStringTUI(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; NLower: int&lt;br/&gt; food: int&lt;br/&gt; NUpper: int&lt;br/&gt; NMinPlayer: int&lt;br/&gt; slotId: char&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="940" y="4019" width="194" height="330" as="geometry" />
</mxCell>
<mxCell id="node70" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;SlotChoice&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ SlotChoice(String, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ apply(MiniModel): boolean&lt;br/&gt;+ apply(GameController): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1198" y="7928" width="243" height="121" as="geometry" />
</mxCell>
<mxCell id="node16" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Sustenance&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Sustenance(String, int, int): &lt;br/&gt;+ Sustenance(int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- prestigeDebt: int&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toStringBoard(): String&lt;br/&gt;+ toStringPlayer(): String&lt;br/&gt;+ activateEvent(ArrayList&amp;lt;Player&amp;gt;): void&lt;br/&gt;+ clone(): EventCard&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; prestigeDebt: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1166" y="2291" width="284" height="234" as="geometry" />
</mxCell>
<mxCell id="node24" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;TCPClient&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ TCPClient(ClientController, String, int, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ drawLowerTribeCard(String, int): void&lt;br/&gt;- doEvent(NetworkEvent): void&lt;br/&gt;+ drawUpperBuildingCard(String, int): void&lt;br/&gt;+ notifyDisconnection(): void&lt;br/&gt;+ skipTurn(String): void&lt;br/&gt;- disconnect(): void&lt;br/&gt;+ drawLowerBuildingCard(String, int): void&lt;br/&gt;- heartbeatLoop(): void&lt;br/&gt;+ totemChoice(String, String): void&lt;br/&gt;+ slotChoice(String, int): void&lt;br/&gt;- receiveMessage(): void&lt;br/&gt;+ drawUpperTribeCard(String, int): void&lt;br/&gt;+ connect(String, int): ErrorType&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1553" y="8517" width="314" height="376" as="geometry" />
</mxCell>
<mxCell id="node7" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;TUI&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ TUI(MiniModel): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- lineReader: LineReader&lt;br/&gt;- model: MiniModel&lt;br/&gt;- username: String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- visibleLength(String): int&lt;br/&gt;+ renderBoard(): void&lt;br/&gt;- buildStandingContent(): String&lt;br/&gt;- center(String): String&lt;br/&gt;- printLine(String): void&lt;br/&gt;- display(String): void&lt;br/&gt;+ showError(ErrorType, String): void&lt;br/&gt;+ render(): void&lt;br/&gt;- buildBoardContent(): String&lt;br/&gt;- buildAllHandsContent(): String&lt;br/&gt;- buildTotemsContent(): String&lt;br/&gt;+ boardStamp(): String&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; model: MiniModel&lt;br/&gt; username: String&lt;br/&gt; lineReader: LineReader&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-32" y="7736" width="260" height="498" as="geometry" />
</mxCell>
<mxCell id="node64" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;TotemChoice&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ TotemChoice(String, String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ enrichWithGameState(Game, ArrayList&amp;lt;String&amp;gt;): void&lt;br/&gt;+ apply(GameController): boolean&lt;br/&gt;+ apply(MiniModel): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2305" y="6956" width="378" height="147" as="geometry" />
</mxCell>
<mxCell id="node6" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;TotemFXMLController&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ TotemFXMLController(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- controller: ClientController&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ initialize(): void&lt;br/&gt;- onConfirm(): void&lt;br/&gt;- capitalize(Totems): String&lt;br/&gt;- frameStyle(boolean): String&lt;br/&gt;- updateBanner(String, boolean): void&lt;br/&gt;- nameStyle(boolean): String&lt;br/&gt;- buildCard(Totems, int, boolean): VBox&lt;br/&gt;- updateConfirmButton(boolean): void&lt;br/&gt;+ render(): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; controller: ClientController&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1577" y="10076" width="282" height="330" as="geometry" />
</mxCell>
<mxCell id="node23" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;Totems&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Totems(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ values(): Totems[]&lt;br/&gt;+ valueOf(String): Totems&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2492" y="2349" width="194" height="140" as="geometry" />
</mxCell>
<mxCell id="node34" parent="1" vertex="1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;TribeCard&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ TribeCard(int, boolean): &lt;br/&gt;+ TribeCard(String, int, boolean, int): &lt;br/&gt;+ TribeCard(String, int, boolean): &lt;br/&gt;+ TribeCard(int, boolean, int): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- isEventCard: boolean&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ clone(): TribeCard&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; NMin: int&lt;br/&gt; isEventCard: boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-178" y="606" width="266" height="234" as="geometry" />
</mxCell>
<mxCell id="edge102" edge="1" value="" parent="1" source="node66" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1310" y="7605" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge121" edge="1" value="" parent="1" source="node65" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.910;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-9" y="6592" />
<mxPoint x="-215" y="6592" />
<mxPoint x="-215" y="370" />
<mxPoint x="2242" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge122" edge="1" value="" parent="1" source="node65" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-9" y="7479" />
<mxPoint x="1310" y="7479" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge110" edge="1" value="" parent="1" source="node65" target="node34" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="289" y="7023" />
<mxPoint x="289" y="7097" />
<mxPoint x="-231" y="7097" />
<mxPoint x="-231" y="723" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge23" edge="1" value="" parent="1" source="node59" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="310" y="2189" />
<mxPoint x="602" y="2189" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge78" edge="1" value="" parent="1" source="node11" target="node51" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.547;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge4" edge="1" value="" parent="1" source="node21" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="588" y="2189" />
<mxPoint x="602" y="2189" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge30" edge="1" value="" parent="1" source="node19" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2449" y="3158" />
<mxPoint x="1983" y="3158" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge21" edge="1" value="" parent="1" source="node3" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1417" y="3328" />
<mxPoint x="1983" y="3328" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge36" edge="1" value="" parent="1" source="node3" target="node17" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.430;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1395" y="3315" />
<mxPoint x="1144" y="3315" />
<mxPoint x="1144" y="838" />
<mxPoint x="315" y="838" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge3" edge="1" value="" parent="1" source="node38" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2278" y="3328" />
<mxPoint x="1983" y="3328" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge1" edge="1" value="" parent="1" source="node39" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="655" y="3158" />
<mxPoint x="1983" y="3158" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge48" edge="1" value="" parent="1" source="node39" target="node17" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.542;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="670" y="3315" />
<mxPoint x="1144" y="3315" />
<mxPoint x="1144" y="838" />
<mxPoint x="315" y="838" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge26" edge="1" value="" parent="1" source="node18" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1983" y="2885" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge6" edge="1" value="" parent="1" source="node32" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1978" y="3328" />
<mxPoint x="1983" y="3328" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge9" edge="1" value="" parent="1" source="node4" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1983" y="2883" />
<mxPoint x="1983" y="2777" />
<mxPoint x="2130" y="2777" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge12" edge="1" value="" parent="1" source="node47" target="node41" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2343" y="2407" />
<mxPoint x="2343" y="946" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge77" edge="1" value="" parent="1" source="node47" target="node13" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.450;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge16" edge="1" value="" parent="1" source="node47" target="node22" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.965;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2257" y="553" />
<mxPoint x="-45" y="553" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge8" edge="1" value="" parent="1" source="node58" target="node45" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1642" y="1984" />
<mxPoint x="1642" y="1860" />
<mxPoint x="1795" y="1860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge93" edge="1" value="" parent="1" source="node5" target="node17" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="395" y="838" />
<mxPoint x="315" y="838" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge27" edge="1" value="" parent="1" source="node5" target="node34" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="211" y="1364" />
<mxPoint x="211" y="723" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge67" edge="1" value="" parent="1" source="node12" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="879" y="9144" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge7" edge="1" value="" parent="1" source="node12" target="node36" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.000;exitY=0.366;exitDx=0;exitDy=0;entryX=0.500;entryY=1.001;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1160" y="9129" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge88" edge="1" value="" parent="1" source="node1" target="node48" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.147;exitDx=0;exitDy=0;entryX=0.000;entryY=0.912;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="955" y="7820" />
<mxPoint x="955" y="7129" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge57" edge="1" value="" parent="1" source="node1" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.030;exitY=0.000;exitDx=0;exitDy=0;entryX=0.674;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge60" edge="1" value="" parent="1" source="node1" target="node29" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="458" y="7711" />
<mxPoint x="591" y="7711" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge55" edge="1" value="" parent="1" source="node35" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.458;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="141" y="9584" />
<mxPoint x="458" y="9584" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge73" edge="1" value="" parent="1" source="node35" target="node40" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.542;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="171" y="10547" />
<mxPoint x="1324" y="10547" />
<mxPoint x="1324" y="9961" />
<mxPoint x="1404" y="9961" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge44" edge="1" value="" parent="1" source="node35" target="node24" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="156" y="9701" />
<mxPoint x="1053" y="9701" />
<mxPoint x="1053" y="8705" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge61" edge="1" value="" parent="1" source="node35" target="node7" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.297;exitY=0.000;exitDx=0;exitDy=0;entryX=0.442;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge75" edge="1" value="" parent="1" source="node35" target="node7" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.255;exitY=0.000;exitDx=0;exitDy=0;entryX=0.385;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge71" edge="1" value="" parent="1" source="node10" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="798" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge56" edge="1" value="" parent="1" source="node10" target="node52" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.849;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge58" edge="1" value="" parent="1" source="node10" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.698;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="627" y="5184" />
<mxPoint x="627" y="3622" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge72" edge="1" value="" parent="1" source="node10" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="995" y="5184" />
<mxPoint x="995" y="5100" />
<mxPoint x="1037" y="5100" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge117" edge="1" value="" parent="1" source="node68" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2793" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge109" edge="1" value="" parent="1" source="node68" target="node23" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.633;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2584" y="6504" />
<mxPoint x="2584" y="4709" />
<mxPoint x="2615" y="4709" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge104" edge="1" value="" parent="1" source="node62" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1719" y="7820" />
<mxPoint x="1310" y="7820" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge119" edge="1" value="" parent="1" source="node61" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2397" y="7479" />
<mxPoint x="1310" y="7479" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge105" edge="1" value="" parent="1" source="node60" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2238" y="7820" />
<mxPoint x="1310" y="7820" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge106" edge="1" value="" parent="1" source="node69" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1878" y="7479" />
<mxPoint x="1310" y="7479" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge118" edge="1" value="" parent="1" source="node71" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1860" y="7025" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge90" edge="1" value="" parent="1" source="node45" target="node25" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.773;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge11" edge="1" value="" parent="1" source="node45" target="node34" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1795" y="823" />
<mxPoint x="211" y="823" />
<mxPoint x="211" y="723" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge33" edge="1" value="" parent="1" source="node56" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.446;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1851" y="11894" />
<mxPoint x="1891" y="11894" />
<mxPoint x="1891" y="9976" />
<mxPoint x="879" y="9976" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge52" edge="1" value="" parent="1" source="node56" target="node55" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.712;exitY=0.000;exitDx=0;exitDy=0;entryX=0.026;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge18" edge="1" value="" parent="1" source="node56" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.000;exitY=0.219;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="863" y="12308" />
<mxPoint x="863" y="6504" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge94" edge="1" value="" parent="1" source="node56" target="node2" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.161;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1097" y="12293" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge59" edge="1" value="" parent="1" source="node56" target="node57" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.388;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.549;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1836" y="11153" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge76" edge="1" value="" parent="1" source="node56" target="node15" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.754;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="619" y="12446" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge50" edge="1" value="" parent="1" source="node56" target="node29" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.696;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-49" y="12431" />
<mxPoint x="-49" y="7711" />
<mxPoint x="591" y="7711" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge37" edge="1" value="" parent="1" source="node56" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.029;exitY=0.000;exitDx=0;exitDy=0;entryX=0.589;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge29" edge="1" value="" parent="1" source="node42" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1025" y="2189" />
<mxPoint x="602" y="2189" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge5" edge="1" value="" parent="1" source="node28" target="node45" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1642" y="1988" />
<mxPoint x="1642" y="1860" />
<mxPoint x="1795" y="1860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge14" edge="1" value="" parent="1" source="node37" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="892" y="2189" />
<mxPoint x="602" y="2189" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge2" edge="1" value="" parent="1" source="node50" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="602" y="1987" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge51" edge="1" value="" parent="1" source="node2" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="879" y="11136" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge82" edge="1" value="" parent="1" source="node57" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1891" y="11138" />
<mxPoint x="1891" y="9976" />
<mxPoint x="879" y="9976" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge80" edge="1" value="" parent="1" source="node57" target="node40" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1324" y="11138" />
<mxPoint x="1324" y="9961" />
<mxPoint x="1404" y="9961" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge43" edge="1" value="" parent="1" source="node57" target="node24" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1500" y="10423" />
<mxPoint x="1053" y="10423" />
<mxPoint x="1053" y="8705" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge34" edge="1" value="" parent="1" source="node15" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="879" y="11137" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge39" edge="1" value="" parent="1" source="node29" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.536;exitY=0.000;exitDx=0;exitDy=0;entryX=0.910;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="606" y="6592" />
<mxPoint x="-215" y="6592" />
<mxPoint x="-215" y="370" />
<mxPoint x="2242" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge89" edge="1" value="" parent="1" source="node29" target="node10" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.345;exitDx=0;exitDy=0;entryX=1.000;entryY=0.470;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="970" y="6903" />
<mxPoint x="970" y="5169" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge62" edge="1" value="" parent="1" source="node29" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.607;exitDx=0;exitDy=0;entryX=0.377;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1355" y="7114" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge63" edge="1" value="" parent="1" source="node29" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.754;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="843" y="7028" />
<mxPoint x="843" y="5514" />
<mxPoint x="530" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge70" edge="1" value="" parent="1" source="node29" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.382;exitDx=0;exitDy=0;entryX=1.000;entryY=0.698;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1159" y="6933" />
<mxPoint x="1159" y="4002" />
<mxPoint x="627" y="4002" />
<mxPoint x="627" y="3622" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge32" edge="1" value="" parent="1" source="node29" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.364;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="995" y="6918" />
<mxPoint x="995" y="5100" />
<mxPoint x="1037" y="5100" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge49" edge="1" value="" parent="1" source="node29" target="node23" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.633;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="591" y="5759" />
<mxPoint x="2584" y="5759" />
<mxPoint x="2584" y="4709" />
<mxPoint x="2615" y="4709" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge65" edge="1" value="" parent="1" source="node29" target="node34" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="289" y="7028" />
<mxPoint x="289" y="7097" />
<mxPoint x="-231" y="7097" />
<mxPoint x="-231" y="723" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge92" edge="1" value="" parent="1" source="node26" target="node10" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.173;exitDx=0;exitDy=0;entryX=1.000;entryY=0.470;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="970" y="5922" />
<mxPoint x="970" y="5169" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge41" edge="1" value="" parent="1" source="node26" target="node44" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.424;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge53" edge="1" value="" parent="1" source="node26" target="node33" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.460;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2715" y="6031" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge74" edge="1" value="" parent="1" source="node26" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.540;exitDx=0;exitDy=0;entryX=0.754;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="843" y="6061" />
<mxPoint x="843" y="5514" />
<mxPoint x="530" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge38" edge="1" value="" parent="1" source="node26" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.698;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1159" y="6046" />
<mxPoint x="1159" y="4002" />
<mxPoint x="627" y="4002" />
<mxPoint x="627" y="3622" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge79" edge="1" value="" parent="1" source="node26" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.460;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="995" y="6031" />
<mxPoint x="995" y="5100" />
<mxPoint x="1037" y="5100" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge68" edge="1" value="" parent="1" source="node9" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="631" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge20" edge="1" value="" parent="1" source="node9" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.525;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="315" y="5681" />
<mxPoint x="315" y="5514" />
<mxPoint x="468" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge69" edge="1" value="" parent="1" source="node49" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="170" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge24" edge="1" value="" parent="1" source="node49" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.525;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="315" y="5685" />
<mxPoint x="315" y="5514" />
<mxPoint x="468" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge96" edge="1" value="" parent="1" source="node30" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="453" y="5865" />
<mxPoint x="371" y="5865" />
<mxPoint x="371" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge25" edge="1" value="" parent="1" source="node30" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.525;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="315" y="6043" />
<mxPoint x="315" y="5514" />
<mxPoint x="468" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge85" edge="1" value="" parent="1" source="node54" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-8" y="5865" />
<mxPoint x="371" y="5865" />
<mxPoint x="371" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge17" edge="1" value="" parent="1" source="node54" target="node43" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.525;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="315" y="6045" />
<mxPoint x="315" y="5514" />
<mxPoint x="468" y="5514" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge64" edge="1" value="" parent="1" source="node43" target="node8" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.337;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge83" edge="1" value="" parent="1" source="node43" target="node8" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.690;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge47" edge="1" value="" parent="1" source="node43" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.698;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="627" y="5183" />
<mxPoint x="627" y="3622" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge40" edge="1" value="" parent="1" source="node8" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.698;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="627" y="4603" />
<mxPoint x="627" y="3622" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge81" edge="1" value="" parent="1" source="node14" target="node59" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.634;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge97" edge="1" value="" parent="1" source="node14" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="271" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge91" edge="1" value="" parent="1" source="node14" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.089;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="588" y="3128" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge31" edge="1" value="" parent="1" source="node14" target="node47" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.910;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-215" y="3461" />
<mxPoint x="-215" y="370" />
<mxPoint x="2242" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge46" edge="1" value="" parent="1" source="node14" target="node42" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.301;exitDx=0;exitDy=0;entryX=0.574;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1040" y="3300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge87" edge="1" value="" parent="1" source="node14" target="node37" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.283;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="892" y="3285" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge98" edge="1" value="" parent="1" source="node14" target="node50" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.159;exitY=0.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="173" y="1987" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge95" edge="1" value="" parent="1" source="node14" target="node27" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.108;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="743" y="3143" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge42" edge="1" value="" parent="1" source="node14" target="node23" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.717;exitDx=0;exitDy=0;entryX=0.633;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2584" y="3637" />
<mxPoint x="2584" y="4709" />
<mxPoint x="2615" y="4709" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge54" edge="1" value="" parent="1" source="node40" target="node12" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.392;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge35" edge="1" value="" parent="1" source="node40" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1891" y="9585" />
<mxPoint x="1891" y="9976" />
<mxPoint x="879" y="9976" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge19" edge="1" value="" parent="1" source="node40" target="node48" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=1.000;exitY=0.454;exitDx=0;exitDy=0;entryX=0.312;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2054" y="9570" />
<mxPoint x="2054" y="7298" />
<mxPoint x="1998" y="7298" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge114" edge="1" value="" parent="1" source="node63" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1310" y="7029" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge10" edge="1" value="" parent="1" source="node27" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="602" y="1993" />
<mxPoint x="602" y="1364" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge28" edge="1" value="" parent="1" source="node46" target="node45" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1652" y="2195" />
<mxPoint x="1642" y="2195" />
<mxPoint x="1642" y="1860" />
<mxPoint x="1795" y="1860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge103" edge="1" value="" parent="1" source="node67" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1016" y="7820" />
<mxPoint x="1310" y="7820" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge113" edge="1" value="" parent="1" source="node70" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="7820" />
<mxPoint x="1310" y="7820" />
<mxPoint x="1310" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge0" edge="1" value="" parent="1" source="node16" target="node45" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1308" y="2195" />
<mxPoint x="1642" y="2195" />
<mxPoint x="1642" y="1860" />
<mxPoint x="1795" y="1860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge107" edge="1" value="" parent="1" source="node24" target="node66" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.024;exitY=0.000;exitDx=0;exitDy=0;entryX=0.919;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge45" edge="1" value="" parent="1" source="node24" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1891" y="8705" />
<mxPoint x="1891" y="9976" />
<mxPoint x="879" y="9976" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge116" edge="1" value="" parent="1" source="node24" target="node62" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.528;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="edge99" edge="1" value="" parent="1" source="node24" target="node61" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.340;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2397" y="8645" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge101" edge="1" value="" parent="1" source="node24" target="node60" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.301;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2238" y="8630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge108" edge="1" value="" parent="1" source="node24" target="node69" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.261;exitDx=0;exitDy=0;entryX=0.550;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1891" y="8615" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge13" edge="1" value="" parent="1" source="node24" target="node48" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=1.000;exitY=0.460;exitDx=0;exitDy=0;entryX=0.312;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2054" y="8690" />
<mxPoint x="2054" y="7298" />
<mxPoint x="1998" y="7298" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge120" edge="1" value="" parent="1" source="node24" target="node67" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.460;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1016" y="8690" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge100" edge="1" value="" parent="1" source="node24" target="node70" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.420;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="8675" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge112" edge="1" value="" parent="1" source="node24" target="node64" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.420;exitDx=0;exitDy=0;entryX=0.628;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2542" y="8675" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge86" edge="1" value="" parent="1" source="node7" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="98" y="7606" />
<mxPoint x="879" y="7606" />
<mxPoint x="879" y="5865" />
<mxPoint x="371" y="5865" />
<mxPoint x="371" y="5529" />
<mxPoint x="-21" y="5529" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge15" edge="1" value="" parent="1" source="node7" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="98" y="9479" />
<mxPoint x="863" y="9479" />
<mxPoint x="863" y="6504" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge84" edge="1" value="" parent="1" source="node7" target="node29" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.442;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="83" y="7711" />
<mxPoint x="591" y="7711" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge115" edge="1" value="" parent="1" source="node64" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2494" y="7313" />
<mxPoint x="1860" y="7313" />
<mxPoint x="1860" y="6046" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge111" edge="1" value="" parent="1" source="node64" target="node23" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.633;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2494" y="6630" />
<mxPoint x="2584" y="6630" />
<mxPoint x="2584" y="4709" />
<mxPoint x="2615" y="4709" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge66" edge="1" value="" parent="1" source="node6" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.686;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1891" y="10241" />
<mxPoint x="1891" y="9976" />
<mxPoint x="879" y="9976" />
<mxPoint x="879" y="8076" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge22" edge="1" value="" parent="1" source="node34" target="node22" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-45" y="553" />
<mxPoint x="-45" y="553" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>