diff --git a/build.txt b/build.txt
index 6bc6f33c68a64e340b4fc671250b3614be4065f5..4967f522827c1c7bdff6cf987ada53789b2d97b3 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-14452
\ No newline at end of file
+14488
\ No newline at end of file
diff --git a/modeling/AVATAR/CoffeeMachine_Avatar.xml b/modeling/AVATAR/CoffeeMachine_Avatar.xml
index 9dc6a280f25704237e6a8bf8ba406adb10be84d4..953bbe51d5f976e204f8e6cb2972d61f2a093b62 100644
--- a/modeling/AVATAR/CoffeeMachine_Avatar.xml
+++ b/modeling/AVATAR/CoffeeMachine_Avatar.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
+<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="4" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="Avatar Requirement" nameTab="AVATAR Requirements" >
 <AvatarRDPanel name="AVATAR RD" minX="10" maxX="1900" minY="10" maxY="1400" zoom="1.0" >
@@ -28,6 +28,7 @@
 <TGConnectingPoint num="14" id="15" />
 <TGConnectingPoint num="15" id="16" />
 <extraparam>
+<Line value="" />
 </extraparam>
 </COMPONENT>
 
@@ -785,7 +786,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="449" />
-<P1  x="302" y="261" id="480" />
+<P1  x="302" y="261" id="493" />
 <P2  x="361" y="261" id="468" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -805,7 +806,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="453" />
-<P1  x="305" y="211" id="493" />
+<P1  x="305" y="211" id="480" />
 <P2  x="361" y="211" id="467" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -897,13 +898,13 @@
 <TGConnectingPoint num="22" id="526" />
 <TGConnectingPoint num="23" id="527" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="490" index="13" uid="e14fd5a7-c9ae-42ab-b99a-306f91c69127" >
+<SUBCOMPONENT type="5304" id="490" index="13" uid="2dbef5cf-57eb-4674-94d5-4b37c6777b4a" >
 <father id="528" num="0" />
-<cdparam x="154" y="241" />
-<sizeparam width="148" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="166" y="191" />
+<sizeparam width="139" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
+<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
 <new d="false" />
 <TGConnectingPoint num="0" id="478" />
 <TGConnectingPoint num="1" id="479" />
@@ -918,13 +919,13 @@
 <TGConnectingPoint num="10" id="488" />
 <TGConnectingPoint num="11" id="489" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5304" id="503" index="14" uid="2dbef5cf-57eb-4674-94d5-4b37c6777b4a" >
+<SUBCOMPONENT type="5304" id="503" index="14" uid="e14fd5a7-c9ae-42ab-b99a-306f91c69127" >
 <father id="528" num="1" />
-<cdparam x="166" y="191" />
-<sizeparam width="139" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="154" y="241" />
+<sizeparam width="148" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
+<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
 <new d="false" />
 <TGConnectingPoint num="0" id="491" />
 <TGConnectingPoint num="1" id="492" />
@@ -1061,7 +1062,7 @@
 <TGConnectingPoint num="0" id="587" />
 <TGConnectingPoint num="1" id="588" />
 <TGConnectingPoint num="2" id="589" />
-<P1  x="581" y="154" id="676" />
+<P1  x="581" y="154" id="663" />
 <P2  x="546" y="305" id="733" />
 <Point x="518" y="154" />
 <Point x="518" y="305" />
@@ -1092,7 +1093,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="592" />
 <TGConnectingPoint num="1" id="593" />
-<P1  x="631" y="164" id="671" />
+<P1  x="631" y="164" id="658" />
 <P2  x="667" y="310" id="720" />
 <Point x="631" y="310" />
 <AutomaticDrawing  data="true" />
@@ -1123,7 +1124,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="598" />
 <TGConnectingPoint num="1" id="599" />
-<P1  x="721" y="158" id="656" />
+<P1  x="721" y="158" id="669" />
 <P2  x="700" y="204" id="710" />
 <Point x="700" y="158" />
 <AutomaticDrawing  data="true" />
@@ -1288,13 +1289,13 @@
 <TGConnectingPoint num="22" id="703" />
 <TGConnectingPoint num="23" id="704" />
 </COMPONENT>
-<SUBCOMPONENT type="5303" id="667" index="24" uid="bf44a33b-5344-46b2-9170-509d38670a83" >
+<SUBCOMPONENT type="5304" id="667" index="24" uid="5ba2c908-950a-4288-889b-0b4c00bd9d79" >
 <father id="705" num="0" />
-<cdparam x="721" y="133" />
-<sizeparam width="100" height="50" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="581" y="125" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
-<infoparam name="TGComponent" value="nbOfCoins" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
+<infoparam name="TGComponent" value="Start" />
 <new d="false" />
 <TGConnectingPoint num="0" id="655" />
 <TGConnectingPoint num="1" id="656" />
@@ -1308,17 +1309,14 @@
 <TGConnectingPoint num="9" id="664" />
 <TGConnectingPoint num="10" id="665" />
 <TGConnectingPoint num="11" id="666" />
-<extraparam>
-<Toggle value="" />
-</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5304" id="680" index="25" uid="5ba2c908-950a-4288-889b-0b4c00bd9d79" >
+<SUBCOMPONENT type="5303" id="680" index="25" uid="bf44a33b-5344-46b2-9170-509d38670a83" >
 <father id="705" num="1" />
-<cdparam x="581" y="125" />
-<sizeparam width="100" height="39" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="721" y="133" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
-<infoparam name="TGComponent" value="Start" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
+<infoparam name="TGComponent" value="nbOfCoins" />
 <new d="false" />
 <TGConnectingPoint num="0" id="668" />
 <TGConnectingPoint num="1" id="669" />
@@ -1332,6 +1330,9 @@
 <TGConnectingPoint num="9" id="677" />
 <TGConnectingPoint num="10" id="678" />
 <TGConnectingPoint num="11" id="679" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5306" id="717" index="14" uid="7a1c9320-1617-4710-a22f-ae8365f354ef" >
@@ -1459,7 +1460,7 @@
 <MainCode value="}"/>
 <Optimized value="true" />
 <considerTimingOperators value="true" />
-<Validated value="" />
+<Validated value="Wallet;CoffeeMachine;TeaButton;CoffeeButton;" />
 <Ignored value="" />
 
 <CONNECTOR type="5002" id="771" index="0" uid="f480e606-bbb6-4ab7-8f89-8abb37ff40bb" >
@@ -1467,7 +1468,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="770" />
-<P1  x="556" y="346" id="840" />
+<P1  x="556" y="346" id="881" />
 <P2  x="557" y="373" id="930" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -1499,7 +1500,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="774" />
-<P1  x="787" y="345" id="881" />
+<P1  x="787" y="345" id="840" />
 <P2  x="787" y="373" id="931" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -1694,13 +1695,13 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <Signal value="out ejectCoin(int nbOfCoins)" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="874" index="6" uid="7a21d6ab-e515-4a9c-b908-bcb26c800cfb" >
+<SUBCOMPONENT type="5000" id="874" index="6" uid="a5114e80-03e3-4820-b57a-bfcefd90a9c8" >
 <father id="956" num="0" />
-<cdparam x="462" y="246" />
-<sizeparam width="188" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="694" y="245" />
+<sizeparam width="186" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
-<infoparam name="Block1" value="CoffeeButton" />
+<cdrectangleparam minX="0" maxX="274" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
 <new d="false" />
 <TGConnectingPoint num="0" id="834" />
 <TGConnectingPoint num="1" id="835" />
@@ -1749,13 +1750,13 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <Signal value="out push()" attached="true" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="915" index="7" uid="a5114e80-03e3-4820-b57a-bfcefd90a9c8" >
+<SUBCOMPONENT type="5000" id="915" index="7" uid="7a21d6ab-e515-4a9c-b908-bcb26c800cfb" >
 <father id="956" num="1" />
-<cdparam x="694" y="245" />
-<sizeparam width="186" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="462" y="246" />
+<sizeparam width="188" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="274" minY="0" maxY="256" />
-<infoparam name="Block1" value="TeaButton" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
 <new d="false" />
 <TGConnectingPoint num="0" id="875" />
 <TGConnectingPoint num="1" id="876" />
@@ -1814,8 +1815,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to Send signal" value="null" />
 <TGConnectingPoint num="0" id="962" />
-<P1  x="340" y="233" id="1144" />
-<P2  x="353" y="252" id="1133" />
+<P1  x="340" y="233" id="1133" />
+<P2  x="353" y="252" id="1135" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="961" index="8" uid="4b47f2ec-3073-4a06-b6e0-da7704454345" >
@@ -1919,7 +1920,7 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
 <TGConnectingPoint num="0" id="983" />
-<P1  x="353" y="282" id="1134" />
+<P1  x="353" y="282" id="1136" />
 <P2  x="399" y="352" id="986" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -2211,35 +2212,35 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5103" id="1143" index="12" uid="71f14636-3c96-4e4e-8d0e-c1cd11e52641" >
+<SUBCOMPONENT type="5100" id="1134" index="12" uid="4ea28494-de50-4f99-8981-3ef7a87d7d34" >
 <father id="1218" num="0" />
-<cdparam x="330" y="257" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="333" y="213" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<enabled value="true" />
-<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
-<infoparam name="Send signal" value="push()" />
+<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
+<infoparam name="start state" value="null" />
 <new d="false" />
 <TGConnectingPoint num="0" id="1133" />
-<TGConnectingPoint num="1" id="1134" />
-<TGConnectingPoint num="2" id="1135" />
-<TGConnectingPoint num="3" id="1136" />
-<TGConnectingPoint num="4" id="1137" />
-<TGConnectingPoint num="5" id="1138" />
-<TGConnectingPoint num="6" id="1139" />
-<TGConnectingPoint num="7" id="1140" />
-<TGConnectingPoint num="8" id="1141" />
-<TGConnectingPoint num="9" id="1142" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="1145" index="13" uid="4ea28494-de50-4f99-8981-3ef7a87d7d34" >
+<SUBCOMPONENT type="5103" id="1145" index="13" uid="71f14636-3c96-4e4e-8d0e-c1cd11e52641" >
 <father id="1218" num="1" />
-<cdparam x="333" y="213" />
-<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="330" y="257" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
-<infoparam name="start state" value="null" />
+<enabled value="true" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
+<infoparam name="Send signal" value="push()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="1144" />
+<TGConnectingPoint num="0" id="1135" />
+<TGConnectingPoint num="1" id="1136" />
+<TGConnectingPoint num="2" id="1137" />
+<TGConnectingPoint num="3" id="1138" />
+<TGConnectingPoint num="4" id="1139" />
+<TGConnectingPoint num="5" id="1140" />
+<TGConnectingPoint num="6" id="1141" />
+<TGConnectingPoint num="7" id="1142" />
+<TGConnectingPoint num="8" id="1143" />
+<TGConnectingPoint num="9" id="1144" />
 </SUBCOMPONENT>
 
 
@@ -2846,8 +2847,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="1460" />
-<P1  x="261" y="421" id="2095" />
-<P2  x="260" y="437" id="2023" />
+<P1  x="261" y="421" id="2106" />
+<P2  x="260" y="437" id="2109" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1459" index="38" uid="a28ea541-81ef-4713-8ea6-c7f5ba166daa" >
@@ -2881,8 +2882,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="1467" />
-<P1  x="227" y="477" id="2036" />
-<P2  x="126" y="524" id="2097" />
+<P1  x="227" y="477" id="2122" />
+<P2  x="126" y="524" id="2095" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1466" index="39" uid="2484893a-3443-40dc-8f74-e1443edc2bde" >
@@ -2916,8 +2917,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="1474" />
-<P1  x="126" y="554" id="2098" />
-<P2  x="126" y="653" id="2120" />
+<P1  x="126" y="554" id="2096" />
+<P2  x="126" y="653" id="2012" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1473" index="40" uid="6f6c6e3e-0702-4e99-b1e6-da999207526e" >
@@ -2953,8 +2954,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="1481" />
-<P1  x="293" y="477" id="2037" />
-<P2  x="298" y="524" id="2011" />
+<P1  x="293" y="477" id="2123" />
+<P2  x="298" y="524" id="2181" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1480" index="41" uid="18f77c23-d770-43b2-a9ca-161802d8a987" >
@@ -2988,7 +2989,7 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="1488" />
-<P1  x="298" y="554" id="2012" />
+<P1  x="298" y="554" id="2182" />
 <P2  x="296" y="650" id="1939" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -3025,8 +3026,8 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="1495" />
-<P1  x="326" y="457" id="2026" />
-<P2  x="442" y="497" id="2108" />
+<P1  x="326" y="457" id="2112" />
+<P2  x="442" y="497" id="2084" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1494" index="43" uid="1286b08f-20a2-44ff-9ae2-d3d09cf02647" >
@@ -3061,7 +3062,7 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="1503" />
 <TGConnectingPoint num="1" id="1504" />
-<P1  x="442" y="527" id="2109" />
+<P1  x="442" y="527" id="2085" />
 <P2  x="323" y="748" id="1801" />
 <Point x="442" y="737" />
 <AutomaticDrawing  data="true" />
@@ -3152,7 +3153,7 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="1519" />
-<P1  x="126" y="702" id="2125" />
+<P1  x="126" y="702" id="2017" />
 <P2  x="221" y="758" id="1802" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -3871,14 +3872,14 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5104" id="2021" index="48" uid="8718a1dd-4942-43e5-b6ce-b5f78b82a355" >
+<SUBCOMPONENT type="5106" id="2083" index="48" uid="52044bb2-8b01-4108-a1ac-b5e7886ea624" >
 <father id="2264" num="0" />
-<cdparam x="242" y="529" />
-<sizeparam width="112" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="53" y="653" />
+<sizeparam width="146" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
-<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushTeaButton()" />
+<cdrectangleparam minX="0" maxX="431" minY="0" maxY="305" />
+<infoparam name="state0" value="CoffeeDelivered" />
 <new d="false" />
 <TGConnectingPoint num="0" id="2011" />
 <TGConnectingPoint num="1" id="2012" />
@@ -3890,105 +3891,94 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <TGConnectingPoint num="7" id="2018" />
 <TGConnectingPoint num="8" id="2019" />
 <TGConnectingPoint num="9" id="2020" />
-<accessibility />
+<TGConnectingPoint num="10" id="2021" />
+<TGConnectingPoint num="11" id="2022" />
+<TGConnectingPoint num="12" id="2023" />
+<TGConnectingPoint num="13" id="2024" />
+<TGConnectingPoint num="14" id="2025" />
+<TGConnectingPoint num="15" id="2026" />
+<TGConnectingPoint num="16" id="2027" />
+<TGConnectingPoint num="17" id="2028" />
+<TGConnectingPoint num="18" id="2029" />
+<TGConnectingPoint num="19" id="2030" />
+<TGConnectingPoint num="20" id="2031" />
+<TGConnectingPoint num="21" id="2032" />
+<TGConnectingPoint num="22" id="2033" />
+<TGConnectingPoint num="23" id="2034" />
+<TGConnectingPoint num="24" id="2035" />
+<TGConnectingPoint num="25" id="2036" />
+<TGConnectingPoint num="26" id="2037" />
+<TGConnectingPoint num="27" id="2038" />
+<TGConnectingPoint num="28" id="2039" />
+<TGConnectingPoint num="29" id="2040" />
+<TGConnectingPoint num="30" id="2041" />
+<TGConnectingPoint num="31" id="2042" />
+<TGConnectingPoint num="32" id="2043" />
+<TGConnectingPoint num="33" id="2044" />
+<TGConnectingPoint num="34" id="2045" />
+<TGConnectingPoint num="35" id="2046" />
+<TGConnectingPoint num="36" id="2047" />
+<TGConnectingPoint num="37" id="2048" />
+<TGConnectingPoint num="38" id="2049" />
+<TGConnectingPoint num="39" id="2050" />
+<TGConnectingPoint num="40" id="2051" />
+<TGConnectingPoint num="41" id="2052" />
+<TGConnectingPoint num="42" id="2053" />
+<TGConnectingPoint num="43" id="2054" />
+<TGConnectingPoint num="44" id="2055" />
+<TGConnectingPoint num="45" id="2056" />
+<TGConnectingPoint num="46" id="2057" />
+<TGConnectingPoint num="47" id="2058" />
+<TGConnectingPoint num="48" id="2059" />
+<TGConnectingPoint num="49" id="2060" />
+<TGConnectingPoint num="50" id="2061" />
+<TGConnectingPoint num="51" id="2062" />
+<TGConnectingPoint num="52" id="2063" />
+<TGConnectingPoint num="53" id="2064" />
+<TGConnectingPoint num="54" id="2065" />
+<TGConnectingPoint num="55" id="2066" />
+<TGConnectingPoint num="56" id="2067" />
+<TGConnectingPoint num="57" id="2068" />
+<TGConnectingPoint num="58" id="2069" />
+<TGConnectingPoint num="59" id="2070" />
+<TGConnectingPoint num="60" id="2071" />
+<TGConnectingPoint num="61" id="2072" />
+<TGConnectingPoint num="62" id="2073" />
+<TGConnectingPoint num="63" id="2074" />
+<TGConnectingPoint num="64" id="2075" />
+<TGConnectingPoint num="65" id="2076" />
+<TGConnectingPoint num="66" id="2077" />
+<TGConnectingPoint num="67" id="2078" />
+<TGConnectingPoint num="68" id="2079" />
+<TGConnectingPoint num="69" id="2080" />
+<TGConnectingPoint num="70" id="2081" />
+<TGConnectingPoint num="71" id="2082" />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="2094" index="49" uid="542c0583-8080-46a1-9ae2-775c6446817c" >
+<SUBCOMPONENT type="5103" id="2094" index="49" uid="9c813d39-192a-47ff-98b2-607e27617acf" >
 <father id="2264" num="1" />
-<cdparam x="194" y="437" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="377" y="502" />
+<sizeparam width="130" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
-<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
-<infoparam name="state0" value="WaitingForSelection" />
+<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
 <new d="false" />
-<TGConnectingPoint num="0" id="2022" />
-<TGConnectingPoint num="1" id="2023" />
-<TGConnectingPoint num="2" id="2024" />
-<TGConnectingPoint num="3" id="2025" />
-<TGConnectingPoint num="4" id="2026" />
-<TGConnectingPoint num="5" id="2027" />
-<TGConnectingPoint num="6" id="2028" />
-<TGConnectingPoint num="7" id="2029" />
-<TGConnectingPoint num="8" id="2030" />
-<TGConnectingPoint num="9" id="2031" />
-<TGConnectingPoint num="10" id="2032" />
-<TGConnectingPoint num="11" id="2033" />
-<TGConnectingPoint num="12" id="2034" />
-<TGConnectingPoint num="13" id="2035" />
-<TGConnectingPoint num="14" id="2036" />
-<TGConnectingPoint num="15" id="2037" />
-<TGConnectingPoint num="16" id="2038" />
-<TGConnectingPoint num="17" id="2039" />
-<TGConnectingPoint num="18" id="2040" />
-<TGConnectingPoint num="19" id="2041" />
-<TGConnectingPoint num="20" id="2042" />
-<TGConnectingPoint num="21" id="2043" />
-<TGConnectingPoint num="22" id="2044" />
-<TGConnectingPoint num="23" id="2045" />
-<TGConnectingPoint num="24" id="2046" />
-<TGConnectingPoint num="25" id="2047" />
-<TGConnectingPoint num="26" id="2048" />
-<TGConnectingPoint num="27" id="2049" />
-<TGConnectingPoint num="28" id="2050" />
-<TGConnectingPoint num="29" id="2051" />
-<TGConnectingPoint num="30" id="2052" />
-<TGConnectingPoint num="31" id="2053" />
-<TGConnectingPoint num="32" id="2054" />
-<TGConnectingPoint num="33" id="2055" />
-<TGConnectingPoint num="34" id="2056" />
-<TGConnectingPoint num="35" id="2057" />
-<TGConnectingPoint num="36" id="2058" />
-<TGConnectingPoint num="37" id="2059" />
-<TGConnectingPoint num="38" id="2060" />
-<TGConnectingPoint num="39" id="2061" />
-<TGConnectingPoint num="40" id="2062" />
-<TGConnectingPoint num="41" id="2063" />
-<TGConnectingPoint num="42" id="2064" />
-<TGConnectingPoint num="43" id="2065" />
-<TGConnectingPoint num="44" id="2066" />
-<TGConnectingPoint num="45" id="2067" />
-<TGConnectingPoint num="46" id="2068" />
-<TGConnectingPoint num="47" id="2069" />
-<TGConnectingPoint num="48" id="2070" />
-<TGConnectingPoint num="49" id="2071" />
-<TGConnectingPoint num="50" id="2072" />
-<TGConnectingPoint num="51" id="2073" />
-<TGConnectingPoint num="52" id="2074" />
-<TGConnectingPoint num="53" id="2075" />
-<TGConnectingPoint num="54" id="2076" />
-<TGConnectingPoint num="55" id="2077" />
-<TGConnectingPoint num="56" id="2078" />
-<TGConnectingPoint num="57" id="2079" />
-<TGConnectingPoint num="58" id="2080" />
-<TGConnectingPoint num="59" id="2081" />
-<TGConnectingPoint num="60" id="2082" />
-<TGConnectingPoint num="61" id="2083" />
-<TGConnectingPoint num="62" id="2084" />
-<TGConnectingPoint num="63" id="2085" />
-<TGConnectingPoint num="64" id="2086" />
-<TGConnectingPoint num="65" id="2087" />
-<TGConnectingPoint num="66" id="2088" />
-<TGConnectingPoint num="67" id="2089" />
-<TGConnectingPoint num="68" id="2090" />
-<TGConnectingPoint num="69" id="2091" />
-<TGConnectingPoint num="70" id="2092" />
-<TGConnectingPoint num="71" id="2093" />
-<latencyCheck />
-<extraparam>
-</extraparam>
+<TGConnectingPoint num="0" id="2084" />
+<TGConnectingPoint num="1" id="2085" />
+<TGConnectingPoint num="2" id="2086" />
+<TGConnectingPoint num="3" id="2087" />
+<TGConnectingPoint num="4" id="2088" />
+<TGConnectingPoint num="5" id="2089" />
+<TGConnectingPoint num="6" id="2090" />
+<TGConnectingPoint num="7" id="2091" />
+<TGConnectingPoint num="8" id="2092" />
+<TGConnectingPoint num="9" id="2093" />
+<accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="2096" index="50" uid="d60fd6d2-14be-4b25-b424-35a9ae5e3ba3" >
+<SUBCOMPONENT type="5104" id="2105" index="50" uid="f73b994e-357b-446d-a13d-97a66d7a4653" >
 <father id="2264" num="2" />
-<cdparam x="254" y="401" />
-<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" />
-<infoparam name="start state" value="null" />
-<new d="false" />
-<TGConnectingPoint num="0" id="2095" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="2107" index="51" uid="f73b994e-357b-446d-a13d-97a66d7a4653" >
-<father id="2264" num="3" />
 <cdparam x="63" y="529" />
 <sizeparam width="127" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -3996,26 +3986,36 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
 <infoparam name="Send signal" value="pushCoffeeButton()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="2097" />
-<TGConnectingPoint num="1" id="2098" />
-<TGConnectingPoint num="2" id="2099" />
-<TGConnectingPoint num="3" id="2100" />
-<TGConnectingPoint num="4" id="2101" />
-<TGConnectingPoint num="5" id="2102" />
-<TGConnectingPoint num="6" id="2103" />
-<TGConnectingPoint num="7" id="2104" />
-<TGConnectingPoint num="8" id="2105" />
-<TGConnectingPoint num="9" id="2106" />
+<TGConnectingPoint num="0" id="2095" />
+<TGConnectingPoint num="1" id="2096" />
+<TGConnectingPoint num="2" id="2097" />
+<TGConnectingPoint num="3" id="2098" />
+<TGConnectingPoint num="4" id="2099" />
+<TGConnectingPoint num="5" id="2100" />
+<TGConnectingPoint num="6" id="2101" />
+<TGConnectingPoint num="7" id="2102" />
+<TGConnectingPoint num="8" id="2103" />
+<TGConnectingPoint num="9" id="2104" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5103" id="2118" index="52" uid="9c813d39-192a-47ff-98b2-607e27617acf" >
+<SUBCOMPONENT type="5100" id="2107" index="51" uid="d60fd6d2-14be-4b25-b424-35a9ae5e3ba3" >
+<father id="2264" num="3" />
+<cdparam x="254" y="401" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2106" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="2180" index="52" uid="542c0583-8080-46a1-9ae2-775c6446817c" >
 <father id="2264" num="4" />
-<cdparam x="377" y="502" />
-<sizeparam width="130" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="194" y="437" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
-<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
-<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
+<infoparam name="state0" value="WaitingForSelection" />
 <new d="false" />
 <TGConnectingPoint num="0" id="2108" />
 <TGConnectingPoint num="1" id="2109" />
@@ -4027,91 +4027,92 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 <TGConnectingPoint num="7" id="2115" />
 <TGConnectingPoint num="8" id="2116" />
 <TGConnectingPoint num="9" id="2117" />
-<accessibility />
+<TGConnectingPoint num="10" id="2118" />
+<TGConnectingPoint num="11" id="2119" />
+<TGConnectingPoint num="12" id="2120" />
+<TGConnectingPoint num="13" id="2121" />
+<TGConnectingPoint num="14" id="2122" />
+<TGConnectingPoint num="15" id="2123" />
+<TGConnectingPoint num="16" id="2124" />
+<TGConnectingPoint num="17" id="2125" />
+<TGConnectingPoint num="18" id="2126" />
+<TGConnectingPoint num="19" id="2127" />
+<TGConnectingPoint num="20" id="2128" />
+<TGConnectingPoint num="21" id="2129" />
+<TGConnectingPoint num="22" id="2130" />
+<TGConnectingPoint num="23" id="2131" />
+<TGConnectingPoint num="24" id="2132" />
+<TGConnectingPoint num="25" id="2133" />
+<TGConnectingPoint num="26" id="2134" />
+<TGConnectingPoint num="27" id="2135" />
+<TGConnectingPoint num="28" id="2136" />
+<TGConnectingPoint num="29" id="2137" />
+<TGConnectingPoint num="30" id="2138" />
+<TGConnectingPoint num="31" id="2139" />
+<TGConnectingPoint num="32" id="2140" />
+<TGConnectingPoint num="33" id="2141" />
+<TGConnectingPoint num="34" id="2142" />
+<TGConnectingPoint num="35" id="2143" />
+<TGConnectingPoint num="36" id="2144" />
+<TGConnectingPoint num="37" id="2145" />
+<TGConnectingPoint num="38" id="2146" />
+<TGConnectingPoint num="39" id="2147" />
+<TGConnectingPoint num="40" id="2148" />
+<TGConnectingPoint num="41" id="2149" />
+<TGConnectingPoint num="42" id="2150" />
+<TGConnectingPoint num="43" id="2151" />
+<TGConnectingPoint num="44" id="2152" />
+<TGConnectingPoint num="45" id="2153" />
+<TGConnectingPoint num="46" id="2154" />
+<TGConnectingPoint num="47" id="2155" />
+<TGConnectingPoint num="48" id="2156" />
+<TGConnectingPoint num="49" id="2157" />
+<TGConnectingPoint num="50" id="2158" />
+<TGConnectingPoint num="51" id="2159" />
+<TGConnectingPoint num="52" id="2160" />
+<TGConnectingPoint num="53" id="2161" />
+<TGConnectingPoint num="54" id="2162" />
+<TGConnectingPoint num="55" id="2163" />
+<TGConnectingPoint num="56" id="2164" />
+<TGConnectingPoint num="57" id="2165" />
+<TGConnectingPoint num="58" id="2166" />
+<TGConnectingPoint num="59" id="2167" />
+<TGConnectingPoint num="60" id="2168" />
+<TGConnectingPoint num="61" id="2169" />
+<TGConnectingPoint num="62" id="2170" />
+<TGConnectingPoint num="63" id="2171" />
+<TGConnectingPoint num="64" id="2172" />
+<TGConnectingPoint num="65" id="2173" />
+<TGConnectingPoint num="66" id="2174" />
+<TGConnectingPoint num="67" id="2175" />
+<TGConnectingPoint num="68" id="2176" />
+<TGConnectingPoint num="69" id="2177" />
+<TGConnectingPoint num="70" id="2178" />
+<TGConnectingPoint num="71" id="2179" />
+<latencyCheck />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="2191" index="53" uid="52044bb2-8b01-4108-a1ac-b5e7886ea624" >
+<SUBCOMPONENT type="5104" id="2191" index="53" uid="8718a1dd-4942-43e5-b6ce-b5f78b82a355" >
 <father id="2264" num="5" />
-<cdparam x="53" y="653" />
-<sizeparam width="146" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="242" y="529" />
+<sizeparam width="112" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
-<cdrectangleparam minX="0" maxX="431" minY="0" maxY="305" />
-<infoparam name="state0" value="CoffeeDelivered" />
+<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushTeaButton()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="2119" />
-<TGConnectingPoint num="1" id="2120" />
-<TGConnectingPoint num="2" id="2121" />
-<TGConnectingPoint num="3" id="2122" />
-<TGConnectingPoint num="4" id="2123" />
-<TGConnectingPoint num="5" id="2124" />
-<TGConnectingPoint num="6" id="2125" />
-<TGConnectingPoint num="7" id="2126" />
-<TGConnectingPoint num="8" id="2127" />
-<TGConnectingPoint num="9" id="2128" />
-<TGConnectingPoint num="10" id="2129" />
-<TGConnectingPoint num="11" id="2130" />
-<TGConnectingPoint num="12" id="2131" />
-<TGConnectingPoint num="13" id="2132" />
-<TGConnectingPoint num="14" id="2133" />
-<TGConnectingPoint num="15" id="2134" />
-<TGConnectingPoint num="16" id="2135" />
-<TGConnectingPoint num="17" id="2136" />
-<TGConnectingPoint num="18" id="2137" />
-<TGConnectingPoint num="19" id="2138" />
-<TGConnectingPoint num="20" id="2139" />
-<TGConnectingPoint num="21" id="2140" />
-<TGConnectingPoint num="22" id="2141" />
-<TGConnectingPoint num="23" id="2142" />
-<TGConnectingPoint num="24" id="2143" />
-<TGConnectingPoint num="25" id="2144" />
-<TGConnectingPoint num="26" id="2145" />
-<TGConnectingPoint num="27" id="2146" />
-<TGConnectingPoint num="28" id="2147" />
-<TGConnectingPoint num="29" id="2148" />
-<TGConnectingPoint num="30" id="2149" />
-<TGConnectingPoint num="31" id="2150" />
-<TGConnectingPoint num="32" id="2151" />
-<TGConnectingPoint num="33" id="2152" />
-<TGConnectingPoint num="34" id="2153" />
-<TGConnectingPoint num="35" id="2154" />
-<TGConnectingPoint num="36" id="2155" />
-<TGConnectingPoint num="37" id="2156" />
-<TGConnectingPoint num="38" id="2157" />
-<TGConnectingPoint num="39" id="2158" />
-<TGConnectingPoint num="40" id="2159" />
-<TGConnectingPoint num="41" id="2160" />
-<TGConnectingPoint num="42" id="2161" />
-<TGConnectingPoint num="43" id="2162" />
-<TGConnectingPoint num="44" id="2163" />
-<TGConnectingPoint num="45" id="2164" />
-<TGConnectingPoint num="46" id="2165" />
-<TGConnectingPoint num="47" id="2166" />
-<TGConnectingPoint num="48" id="2167" />
-<TGConnectingPoint num="49" id="2168" />
-<TGConnectingPoint num="50" id="2169" />
-<TGConnectingPoint num="51" id="2170" />
-<TGConnectingPoint num="52" id="2171" />
-<TGConnectingPoint num="53" id="2172" />
-<TGConnectingPoint num="54" id="2173" />
-<TGConnectingPoint num="55" id="2174" />
-<TGConnectingPoint num="56" id="2175" />
-<TGConnectingPoint num="57" id="2176" />
-<TGConnectingPoint num="58" id="2177" />
-<TGConnectingPoint num="59" id="2178" />
-<TGConnectingPoint num="60" id="2179" />
-<TGConnectingPoint num="61" id="2180" />
-<TGConnectingPoint num="62" id="2181" />
-<TGConnectingPoint num="63" id="2182" />
-<TGConnectingPoint num="64" id="2183" />
-<TGConnectingPoint num="65" id="2184" />
-<TGConnectingPoint num="66" id="2185" />
-<TGConnectingPoint num="67" id="2186" />
-<TGConnectingPoint num="68" id="2187" />
-<TGConnectingPoint num="69" id="2188" />
-<TGConnectingPoint num="70" id="2189" />
-<TGConnectingPoint num="71" id="2190" />
-<extraparam>
-</extraparam>
+<TGConnectingPoint num="0" id="2181" />
+<TGConnectingPoint num="1" id="2182" />
+<TGConnectingPoint num="2" id="2183" />
+<TGConnectingPoint num="3" id="2184" />
+<TGConnectingPoint num="4" id="2185" />
+<TGConnectingPoint num="5" id="2186" />
+<TGConnectingPoint num="6" id="2187" />
+<TGConnectingPoint num="7" id="2188" />
+<TGConnectingPoint num="8" id="2189" />
+<TGConnectingPoint num="9" id="2190" />
+<accessibility />
 </SUBCOMPONENT>
 
 
@@ -4610,4 +4611,5454 @@ CoffeeMachine.CoffeeDelivered --&gt; CoffeeMachine.nbOfCoins&lt;2
 
 
 
+<Modeling type="AVATAR Design" nameTab="Design__20230620_182150" tabs="Block Diagram$Wallet$CoffeeMachine$CoffeeButton$TeaButton" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<considerTimingOperators value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="2544" index="0" uid="f8115c18-4ade-46d7-a413-ea6b1c175502" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="2543" />
+<P1  x="562" y="27" id="2590" />
+<P2  x="557" y="17" id="2639" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in pushTeaButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="2546" index="1" uid="ab6e0480-ea3f-4e98-a249-f8c70b5e23dd" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="2545" />
+<P1  x="302" y="52" id="2674" />
+<P2  x="442" y="17" id="2647" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<iso value="in getCoin(int nbOfCoins)" />
+<osd value="out ejectCoin(int nbOfCoins)" />
+<isd value="in getCoin(int nbOfCoins)" />
+<oso value="out putCoin(int nbOfCoins)" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="2548" index="2" uid="6d8e9b85-2eae-450d-b394-8e0f301d09a7" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="2547" />
+<P1  x="452" y="27" id="2549" />
+<P2  x="442" y="17" id="2631" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in pushCoffeeButton()" />
+<oso value="out push()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5000" id="2671" index="3" uid="afb77abb-26a6-4814-983c-50506a530bee" >
+<cdparam x="442" y="17" />
+<sizeparam width="460" height="356" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="CoffeeMachine" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2631" />
+<TGConnectingPoint num="1" id="2632" />
+<TGConnectingPoint num="2" id="2633" />
+<TGConnectingPoint num="3" id="2634" />
+<TGConnectingPoint num="4" id="2635" />
+<TGConnectingPoint num="5" id="2636" />
+<TGConnectingPoint num="6" id="2637" />
+<TGConnectingPoint num="7" id="2638" />
+<TGConnectingPoint num="8" id="2639" />
+<TGConnectingPoint num="9" id="2640" />
+<TGConnectingPoint num="10" id="2641" />
+<TGConnectingPoint num="11" id="2642" />
+<TGConnectingPoint num="12" id="2643" />
+<TGConnectingPoint num="13" id="2644" />
+<TGConnectingPoint num="14" id="2645" />
+<TGConnectingPoint num="15" id="2646" />
+<TGConnectingPoint num="16" id="2647" />
+<TGConnectingPoint num="17" id="2648" />
+<TGConnectingPoint num="18" id="2649" />
+<TGConnectingPoint num="19" id="2650" />
+<TGConnectingPoint num="20" id="2651" />
+<TGConnectingPoint num="21" id="2652" />
+<TGConnectingPoint num="22" id="2653" />
+<TGConnectingPoint num="23" id="2654" />
+<TGConnectingPoint num="24" id="2655" />
+<TGConnectingPoint num="25" id="2656" />
+<TGConnectingPoint num="26" id="2657" />
+<TGConnectingPoint num="27" id="2658" />
+<TGConnectingPoint num="28" id="2659" />
+<TGConnectingPoint num="29" id="2660" />
+<TGConnectingPoint num="30" id="2661" />
+<TGConnectingPoint num="31" id="2662" />
+<TGConnectingPoint num="32" id="2663" />
+<TGConnectingPoint num="33" id="2664" />
+<TGConnectingPoint num="34" id="2665" />
+<TGConnectingPoint num="35" id="2666" />
+<TGConnectingPoint num="36" id="2667" />
+<TGConnectingPoint num="37" id="2668" />
+<TGConnectingPoint num="38" id="2669" />
+<TGConnectingPoint num="39" id="2670" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="teaMinDelay" value="3" type="8" typeOther="" />
+<Attribute access="0" var="0" id="teaMaxDelay" value="8" type="8" typeOther="" />
+<Attribute access="0" var="0" id="coffeeMinDelay" value="5" type="8" typeOther="" />
+<Attribute access="0" var="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" />
+<Attribute access="0" var="0" id="coinDelay" value="50" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="nbOfCoins" value="0" type="8" typeOther="" />
+<Method value="beverageReady()" />
+<Signal value="in pushCoffeeButton()" attached="true" />
+<Signal value="in pushTeaButton()" attached="true" />
+<Signal value="in getCoin(int nbOfCoins)" attached="true" />
+<Signal value="out ejectCoin(int nbOfCoins)" attached="true" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5000" id="2589" index="5" uid="18a9cb79-9ab0-48e3-9fcb-a2e900023915" >
+<father id="2671" num="0" />
+<cdparam x="452" y="27" />
+<sizeparam width="100" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="360" minY="0" maxY="256" />
+<infoparam name="Block" value="CoffeeButton" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2549" />
+<TGConnectingPoint num="1" id="2550" />
+<TGConnectingPoint num="2" id="2551" />
+<TGConnectingPoint num="3" id="2552" />
+<TGConnectingPoint num="4" id="2553" />
+<TGConnectingPoint num="5" id="2554" />
+<TGConnectingPoint num="6" id="2555" />
+<TGConnectingPoint num="7" id="2556" />
+<TGConnectingPoint num="8" id="2557" />
+<TGConnectingPoint num="9" id="2558" />
+<TGConnectingPoint num="10" id="2559" />
+<TGConnectingPoint num="11" id="2560" />
+<TGConnectingPoint num="12" id="2561" />
+<TGConnectingPoint num="13" id="2562" />
+<TGConnectingPoint num="14" id="2563" />
+<TGConnectingPoint num="15" id="2564" />
+<TGConnectingPoint num="16" id="2565" />
+<TGConnectingPoint num="17" id="2566" />
+<TGConnectingPoint num="18" id="2567" />
+<TGConnectingPoint num="19" id="2568" />
+<TGConnectingPoint num="20" id="2569" />
+<TGConnectingPoint num="21" id="2570" />
+<TGConnectingPoint num="22" id="2571" />
+<TGConnectingPoint num="23" id="2572" />
+<TGConnectingPoint num="24" id="2573" />
+<TGConnectingPoint num="25" id="2574" />
+<TGConnectingPoint num="26" id="2575" />
+<TGConnectingPoint num="27" id="2576" />
+<TGConnectingPoint num="28" id="2577" />
+<TGConnectingPoint num="29" id="2578" />
+<TGConnectingPoint num="30" id="2579" />
+<TGConnectingPoint num="31" id="2580" />
+<TGConnectingPoint num="32" id="2581" />
+<TGConnectingPoint num="33" id="2582" />
+<TGConnectingPoint num="34" id="2583" />
+<TGConnectingPoint num="35" id="2584" />
+<TGConnectingPoint num="36" id="2585" />
+<TGConnectingPoint num="37" id="2586" />
+<TGConnectingPoint num="38" id="2587" />
+<TGConnectingPoint num="39" id="2588" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
+<Signal value="out push()" attached="true" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5000" id="2630" index="6" uid="a0d9b5cb-30dd-46c1-b2db-b3dcbb3c5105" >
+<father id="2671" num="1" />
+<cdparam x="562" y="27" />
+<sizeparam width="100" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="360" minY="0" maxY="256" />
+<infoparam name="Block" value="TeaButton" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2590" />
+<TGConnectingPoint num="1" id="2591" />
+<TGConnectingPoint num="2" id="2592" />
+<TGConnectingPoint num="3" id="2593" />
+<TGConnectingPoint num="4" id="2594" />
+<TGConnectingPoint num="5" id="2595" />
+<TGConnectingPoint num="6" id="2596" />
+<TGConnectingPoint num="7" id="2597" />
+<TGConnectingPoint num="8" id="2598" />
+<TGConnectingPoint num="9" id="2599" />
+<TGConnectingPoint num="10" id="2600" />
+<TGConnectingPoint num="11" id="2601" />
+<TGConnectingPoint num="12" id="2602" />
+<TGConnectingPoint num="13" id="2603" />
+<TGConnectingPoint num="14" id="2604" />
+<TGConnectingPoint num="15" id="2605" />
+<TGConnectingPoint num="16" id="2606" />
+<TGConnectingPoint num="17" id="2607" />
+<TGConnectingPoint num="18" id="2608" />
+<TGConnectingPoint num="19" id="2609" />
+<TGConnectingPoint num="20" id="2610" />
+<TGConnectingPoint num="21" id="2611" />
+<TGConnectingPoint num="22" id="2612" />
+<TGConnectingPoint num="23" id="2613" />
+<TGConnectingPoint num="24" id="2614" />
+<TGConnectingPoint num="25" id="2615" />
+<TGConnectingPoint num="26" id="2616" />
+<TGConnectingPoint num="27" id="2617" />
+<TGConnectingPoint num="28" id="2618" />
+<TGConnectingPoint num="29" id="2619" />
+<TGConnectingPoint num="30" id="2620" />
+<TGConnectingPoint num="31" id="2621" />
+<TGConnectingPoint num="32" id="2622" />
+<TGConnectingPoint num="33" id="2623" />
+<TGConnectingPoint num="34" id="2624" />
+<TGConnectingPoint num="35" id="2625" />
+<TGConnectingPoint num="36" id="2626" />
+<TGConnectingPoint num="37" id="2627" />
+<TGConnectingPoint num="38" id="2628" />
+<TGConnectingPoint num="39" id="2629" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
+<Signal value="out push()" attached="true" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5000" id="2712" index="4" uid="02a323f2-6356-46bb-9724-dc223f2df95b" >
+<cdparam x="102" y="52" />
+<sizeparam width="200" height="216" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Wallet" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2672" />
+<TGConnectingPoint num="1" id="2673" />
+<TGConnectingPoint num="2" id="2674" />
+<TGConnectingPoint num="3" id="2675" />
+<TGConnectingPoint num="4" id="2676" />
+<TGConnectingPoint num="5" id="2677" />
+<TGConnectingPoint num="6" id="2678" />
+<TGConnectingPoint num="7" id="2679" />
+<TGConnectingPoint num="8" id="2680" />
+<TGConnectingPoint num="9" id="2681" />
+<TGConnectingPoint num="10" id="2682" />
+<TGConnectingPoint num="11" id="2683" />
+<TGConnectingPoint num="12" id="2684" />
+<TGConnectingPoint num="13" id="2685" />
+<TGConnectingPoint num="14" id="2686" />
+<TGConnectingPoint num="15" id="2687" />
+<TGConnectingPoint num="16" id="2688" />
+<TGConnectingPoint num="17" id="2689" />
+<TGConnectingPoint num="18" id="2690" />
+<TGConnectingPoint num="19" id="2691" />
+<TGConnectingPoint num="20" id="2692" />
+<TGConnectingPoint num="21" id="2693" />
+<TGConnectingPoint num="22" id="2694" />
+<TGConnectingPoint num="23" id="2695" />
+<TGConnectingPoint num="24" id="2696" />
+<TGConnectingPoint num="25" id="2697" />
+<TGConnectingPoint num="26" id="2698" />
+<TGConnectingPoint num="27" id="2699" />
+<TGConnectingPoint num="28" id="2700" />
+<TGConnectingPoint num="29" id="2701" />
+<TGConnectingPoint num="30" id="2702" />
+<TGConnectingPoint num="31" id="2703" />
+<TGConnectingPoint num="32" id="2704" />
+<TGConnectingPoint num="33" id="2705" />
+<TGConnectingPoint num="34" id="2706" />
+<TGConnectingPoint num="35" id="2707" />
+<TGConnectingPoint num="36" id="2708" />
+<TGConnectingPoint num="37" id="2709" />
+<TGConnectingPoint num="38" id="2710" />
+<TGConnectingPoint num="39" id="2711" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="nbOfCoins" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="1" type="8" typeOther="" />
+<Attribute access="0" var="0" id="minUserDelay" value="50" type="8" typeOther="" />
+<Attribute access="0" var="0" id="maxUserDelay" value="70" type="8" typeOther="" />
+<Method value="contentOfWallet(int nbOfCoins)" />
+<Signal value="in getCoin(int nbOfCoins)" attached="true" />
+<Signal value="out putCoin(int nbOfCoins)" attached="true" />
+<Signal value="out ejectCoin()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="2719" index="0" uid="3eb2d17b-7213-4a7a-b863-1b6192162e11" >
+<cdparam x="502" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2718" />
+<P1  x="502" y="290" id="3024" />
+<P2  x="788" y="340" id="2911" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2717" index="22" uid="347561be-a740-40e8-83ca-06703d04c04a" >
+<father id="2719" num="0" />
+<cdparam x="645" y="315" />
+<sizeparam width="100" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2713" />
+<TGConnectingPoint num="1" id="2714" />
+<TGConnectingPoint num="2" id="2715" />
+<TGConnectingPoint num="3" id="2716" />
+<extraparam>
+<guard value="nbOfCoins == 2" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2726" index="1" uid="2484e23a-d569-4577-84b5-d1e02031e182" >
+<cdparam x="415" y="365" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2725" />
+<P1  x="415" y="365" id="2984" />
+<P2  x="500" y="158" id="3090" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2724" index="23" uid="7ebd3054-d80a-4ff2-8256-a6555b4929aa" >
+<father id="2726" num="0" />
+<cdparam x="457" y="261" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2720" />
+<TGConnectingPoint num="1" id="2721" />
+<TGConnectingPoint num="2" id="2722" />
+<TGConnectingPoint num="3" id="2723" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2733" index="2" uid="d6f3e4a8-01c7-4995-92fe-8a9fb972fb4a" >
+<cdparam x="788" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2732" />
+<P1  x="788" y="390" id="2948" />
+<P2  x="1088" y="440" id="2827" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2731" index="24" uid="e5727834-b637-481d-b16d-2c3fc794e75b" >
+<father id="2733" num="0" />
+<cdparam x="938" y="415" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2727" />
+<TGConnectingPoint num="1" id="2728" />
+<TGConnectingPoint num="2" id="2729" />
+<TGConnectingPoint num="3" id="2730" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2740" index="3" uid="632a9fa4-4a96-4855-b624-6ca050b5944b" >
+<cdparam x="788" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2739" />
+<P1  x="788" y="390" id="2916" />
+<P2  x="715" y="435" id="2899" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2738" index="25" uid="6847d868-03a1-4948-a8c2-73edc5b55a1a" >
+<father id="2740" num="0" />
+<cdparam x="751" y="412" />
+<sizeparam width="210" height="47" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2734" />
+<TGConnectingPoint num="1" id="2735" />
+<TGConnectingPoint num="2" id="2736" />
+<TGConnectingPoint num="3" id="2737" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="minUserDelay" enabled="true"/>
+<afterMax value="minUserDelay" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+<actions value="x=0" enabled="true"/>
+<actions value="nbOfCoins=0" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2747" index="4" uid="4400b097-d0fd-47ec-9bed-8a265455504c" >
+<cdparam x="1015" y="565" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2746" />
+<P1  x="1015" y="565" id="2816" />
+<P2  x="500" y="171" id="3125" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2745" index="26" uid="e9294d68-90ee-4a69-a20b-ffa0e7d82a8b" >
+<father id="2747" num="0" />
+<cdparam x="757" y="368" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2741" />
+<TGConnectingPoint num="1" id="2742" />
+<TGConnectingPoint num="2" id="2743" />
+<TGConnectingPoint num="3" id="2744" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2754" index="5" uid="6087a03b-a546-4c7b-b0a0-334da64b78a0" >
+<cdparam x="1315" y="565" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2753" />
+<P1  x="1315" y="565" id="2805" />
+<P2  x="500" y="171" id="3093" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2752" index="27" uid="468961f5-8534-4d24-9dce-fe2941b0cb81" >
+<father id="2754" num="0" />
+<cdparam x="907" y="368" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2748" />
+<TGConnectingPoint num="1" id="2749" />
+<TGConnectingPoint num="2" id="2750" />
+<TGConnectingPoint num="3" id="2751" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2761" index="6" uid="229c6558-66ae-41ca-bbfb-a945c5389e2f" >
+<cdparam x="715" y="465" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2760" />
+<P1  x="715" y="465" id="2900" />
+<P2  x="500" y="165" id="3103" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2759" index="28" uid="13ff5ac6-9021-4943-a9c9-facc3654e2ad" >
+<father id="2761" num="0" />
+<cdparam x="607" y="315" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2755" />
+<TGConnectingPoint num="1" id="2756" />
+<TGConnectingPoint num="2" id="2757" />
+<TGConnectingPoint num="3" id="2758" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2768" index="7" uid="a0627d6b-8ad3-4aa5-a810-2e1f26f9e914" >
+<cdparam x="482" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2767" />
+<P1  x="482" y="290" id="3032" />
+<P2  x="415" y="335" id="2983" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2766" index="29" uid="3ca773d6-78a5-41f1-913f-e550580e71d8" >
+<father id="2768" num="0" />
+<cdparam x="448" y="312" />
+<sizeparam width="90" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2762" />
+<TGConnectingPoint num="1" id="2763" />
+<TGConnectingPoint num="2" id="2764" />
+<TGConnectingPoint num="3" id="2765" />
+<extraparam>
+<guard value="nbOfCoins &lt; 2" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2775" index="8" uid="f0dc614f-c5d6-448f-b859-988b9018c886" >
+<cdparam x="482" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2774" />
+<P1  x="482" y="290" id="3000" />
+<P2  x="500" y="165" id="3071" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2773" index="30" uid="c5b06977-fd0e-4dac-b161-7ca15bed3259" >
+<father id="2775" num="0" />
+<cdparam x="491" y="227" />
+<sizeparam width="90" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2769" />
+<TGConnectingPoint num="1" id="2770" />
+<TGConnectingPoint num="2" id="2771" />
+<TGConnectingPoint num="3" id="2772" />
+<extraparam>
+<guard value="nbOfCoins &gt; 2" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2782" index="9" uid="5bd512a7-387f-4851-8df3-dc16ad671dcc" >
+<cdparam x="1088" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2781" />
+<P1  x="1088" y="490" id="2864" />
+<P2  x="1315" y="535" id="2804" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2780" index="31" uid="4db5e2b6-4c07-4d51-893d-a7300c19a8f1" >
+<father id="2782" num="0" />
+<cdparam x="1201" y="512" />
+<sizeparam width="82" height="32" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2776" />
+<TGConnectingPoint num="1" id="2777" />
+<TGConnectingPoint num="2" id="2778" />
+<TGConnectingPoint num="3" id="2779" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+<actions value="x=1" enabled="true"/>
+<actions value="nbOfCoins=1" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2789" index="10" uid="1a951c46-71fc-4c69-883b-f49dfc9d1a7c" >
+<cdparam x="1088" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2788" />
+<P1  x="1088" y="490" id="2832" />
+<P2  x="1015" y="535" id="2815" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2787" index="32" uid="60e13470-dbf6-482a-b162-015b0b62d907" >
+<father id="2789" num="0" />
+<cdparam x="1051" y="512" />
+<sizeparam width="218" height="47" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2783" />
+<TGConnectingPoint num="1" id="2784" />
+<TGConnectingPoint num="2" id="2785" />
+<TGConnectingPoint num="3" id="2786" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="maxUserDelay" enabled="true"/>
+<afterMax value="maxUserDelay" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+<actions value="x=0" enabled="true"/>
+<actions value="nbOfCoins=0" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2796" index="11" uid="1f859134-d63d-4986-a471-615f9db08564" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2795" />
+<P1  x="407" y="60" id="3140" />
+<P2  x="450" y="140" id="3068" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2794" index="33" uid="e039dde2-56f7-48ca-929f-ee8bbb7838f9" >
+<father id="2796" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2790" />
+<TGConnectingPoint num="1" id="2791" />
+<TGConnectingPoint num="2" id="2792" />
+<TGConnectingPoint num="3" id="2793" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2803" index="12" uid="dc1a701a-c4e0-4c42-b63e-b541d9c3a8d2" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2802" />
+<P1  x="450" y="190" id="3073" />
+<P2  x="482" y="240" id="2995" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2801" index="34" uid="5dbc1356-ed18-4335-b82e-d747ee8490e4" >
+<father id="2803" num="0" />
+<cdparam x="466" y="215" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2797" />
+<TGConnectingPoint num="1" id="2798" />
+<TGConnectingPoint num="2" id="2799" />
+<TGConnectingPoint num="3" id="2800" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="2814" index="13" uid="b8188665-3627-4a22-94c6-92f3bd59a34f" >
+<cdparam x="1281" y="540" />
+<sizeparam width="69" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Receive signal" value="getCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2804" />
+<TGConnectingPoint num="1" id="2805" />
+<TGConnectingPoint num="2" id="2806" />
+<TGConnectingPoint num="3" id="2807" />
+<TGConnectingPoint num="4" id="2808" />
+<TGConnectingPoint num="5" id="2809" />
+<TGConnectingPoint num="6" id="2810" />
+<TGConnectingPoint num="7" id="2811" />
+<TGConnectingPoint num="8" id="2812" />
+<TGConnectingPoint num="9" id="2813" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="2825" index="14" uid="88a2e59c-c105-4fa0-86cb-bdb8c2aa2ae5" >
+<cdparam x="980" y="540" />
+<sizeparam width="71" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="ejectCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2815" />
+<TGConnectingPoint num="1" id="2816" />
+<TGConnectingPoint num="2" id="2817" />
+<TGConnectingPoint num="3" id="2818" />
+<TGConnectingPoint num="4" id="2819" />
+<TGConnectingPoint num="5" id="2820" />
+<TGConnectingPoint num="6" id="2821" />
+<TGConnectingPoint num="7" id="2822" />
+<TGConnectingPoint num="8" id="2823" />
+<TGConnectingPoint num="9" id="2824" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2898" index="15" uid="42489202-9816-463b-b35d-fe6f1bcdb387" >
+<cdparam x="1000" y="440" />
+<sizeparam width="176" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="beverageSelected" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2826" />
+<TGConnectingPoint num="1" id="2827" />
+<TGConnectingPoint num="2" id="2828" />
+<TGConnectingPoint num="3" id="2829" />
+<TGConnectingPoint num="4" id="2830" />
+<TGConnectingPoint num="5" id="2831" />
+<TGConnectingPoint num="6" id="2832" />
+<TGConnectingPoint num="7" id="2833" />
+<TGConnectingPoint num="8" id="2834" />
+<TGConnectingPoint num="9" id="2835" />
+<TGConnectingPoint num="10" id="2836" />
+<TGConnectingPoint num="11" id="2837" />
+<TGConnectingPoint num="12" id="2838" />
+<TGConnectingPoint num="13" id="2839" />
+<TGConnectingPoint num="14" id="2840" />
+<TGConnectingPoint num="15" id="2841" />
+<TGConnectingPoint num="16" id="2842" />
+<TGConnectingPoint num="17" id="2843" />
+<TGConnectingPoint num="18" id="2844" />
+<TGConnectingPoint num="19" id="2845" />
+<TGConnectingPoint num="20" id="2846" />
+<TGConnectingPoint num="21" id="2847" />
+<TGConnectingPoint num="22" id="2848" />
+<TGConnectingPoint num="23" id="2849" />
+<TGConnectingPoint num="24" id="2850" />
+<TGConnectingPoint num="25" id="2851" />
+<TGConnectingPoint num="26" id="2852" />
+<TGConnectingPoint num="27" id="2853" />
+<TGConnectingPoint num="28" id="2854" />
+<TGConnectingPoint num="29" id="2855" />
+<TGConnectingPoint num="30" id="2856" />
+<TGConnectingPoint num="31" id="2857" />
+<TGConnectingPoint num="32" id="2858" />
+<TGConnectingPoint num="33" id="2859" />
+<TGConnectingPoint num="34" id="2860" />
+<TGConnectingPoint num="35" id="2861" />
+<TGConnectingPoint num="36" id="2862" />
+<TGConnectingPoint num="37" id="2863" />
+<TGConnectingPoint num="38" id="2864" />
+<TGConnectingPoint num="39" id="2865" />
+<TGConnectingPoint num="40" id="2866" />
+<TGConnectingPoint num="41" id="2867" />
+<TGConnectingPoint num="42" id="2868" />
+<TGConnectingPoint num="43" id="2869" />
+<TGConnectingPoint num="44" id="2870" />
+<TGConnectingPoint num="45" id="2871" />
+<TGConnectingPoint num="46" id="2872" />
+<TGConnectingPoint num="47" id="2873" />
+<TGConnectingPoint num="48" id="2874" />
+<TGConnectingPoint num="49" id="2875" />
+<TGConnectingPoint num="50" id="2876" />
+<TGConnectingPoint num="51" id="2877" />
+<TGConnectingPoint num="52" id="2878" />
+<TGConnectingPoint num="53" id="2879" />
+<TGConnectingPoint num="54" id="2880" />
+<TGConnectingPoint num="55" id="2881" />
+<TGConnectingPoint num="56" id="2882" />
+<TGConnectingPoint num="57" id="2883" />
+<TGConnectingPoint num="58" id="2884" />
+<TGConnectingPoint num="59" id="2885" />
+<TGConnectingPoint num="60" id="2886" />
+<TGConnectingPoint num="61" id="2887" />
+<TGConnectingPoint num="62" id="2888" />
+<TGConnectingPoint num="63" id="2889" />
+<TGConnectingPoint num="64" id="2890" />
+<TGConnectingPoint num="65" id="2891" />
+<TGConnectingPoint num="66" id="2892" />
+<TGConnectingPoint num="67" id="2893" />
+<TGConnectingPoint num="68" id="2894" />
+<TGConnectingPoint num="69" id="2895" />
+<TGConnectingPoint num="70" id="2896" />
+<TGConnectingPoint num="71" id="2897" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="2909" index="16" uid="310a67c0-47c3-4611-8daf-24cc1247c8cd" >
+<cdparam x="680" y="440" />
+<sizeparam width="71" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="ejectCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2899" />
+<TGConnectingPoint num="1" id="2900" />
+<TGConnectingPoint num="2" id="2901" />
+<TGConnectingPoint num="3" id="2902" />
+<TGConnectingPoint num="4" id="2903" />
+<TGConnectingPoint num="5" id="2904" />
+<TGConnectingPoint num="6" id="2905" />
+<TGConnectingPoint num="7" id="2906" />
+<TGConnectingPoint num="8" id="2907" />
+<TGConnectingPoint num="9" id="2908" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2982" index="17" uid="dd6314cb-515f-4f14-a27f-0e835b48d234" >
+<cdparam x="700" y="340" />
+<sizeparam width="176" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="twoCoinsInserted" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2910" />
+<TGConnectingPoint num="1" id="2911" />
+<TGConnectingPoint num="2" id="2912" />
+<TGConnectingPoint num="3" id="2913" />
+<TGConnectingPoint num="4" id="2914" />
+<TGConnectingPoint num="5" id="2915" />
+<TGConnectingPoint num="6" id="2916" />
+<TGConnectingPoint num="7" id="2917" />
+<TGConnectingPoint num="8" id="2918" />
+<TGConnectingPoint num="9" id="2919" />
+<TGConnectingPoint num="10" id="2920" />
+<TGConnectingPoint num="11" id="2921" />
+<TGConnectingPoint num="12" id="2922" />
+<TGConnectingPoint num="13" id="2923" />
+<TGConnectingPoint num="14" id="2924" />
+<TGConnectingPoint num="15" id="2925" />
+<TGConnectingPoint num="16" id="2926" />
+<TGConnectingPoint num="17" id="2927" />
+<TGConnectingPoint num="18" id="2928" />
+<TGConnectingPoint num="19" id="2929" />
+<TGConnectingPoint num="20" id="2930" />
+<TGConnectingPoint num="21" id="2931" />
+<TGConnectingPoint num="22" id="2932" />
+<TGConnectingPoint num="23" id="2933" />
+<TGConnectingPoint num="24" id="2934" />
+<TGConnectingPoint num="25" id="2935" />
+<TGConnectingPoint num="26" id="2936" />
+<TGConnectingPoint num="27" id="2937" />
+<TGConnectingPoint num="28" id="2938" />
+<TGConnectingPoint num="29" id="2939" />
+<TGConnectingPoint num="30" id="2940" />
+<TGConnectingPoint num="31" id="2941" />
+<TGConnectingPoint num="32" id="2942" />
+<TGConnectingPoint num="33" id="2943" />
+<TGConnectingPoint num="34" id="2944" />
+<TGConnectingPoint num="35" id="2945" />
+<TGConnectingPoint num="36" id="2946" />
+<TGConnectingPoint num="37" id="2947" />
+<TGConnectingPoint num="38" id="2948" />
+<TGConnectingPoint num="39" id="2949" />
+<TGConnectingPoint num="40" id="2950" />
+<TGConnectingPoint num="41" id="2951" />
+<TGConnectingPoint num="42" id="2952" />
+<TGConnectingPoint num="43" id="2953" />
+<TGConnectingPoint num="44" id="2954" />
+<TGConnectingPoint num="45" id="2955" />
+<TGConnectingPoint num="46" id="2956" />
+<TGConnectingPoint num="47" id="2957" />
+<TGConnectingPoint num="48" id="2958" />
+<TGConnectingPoint num="49" id="2959" />
+<TGConnectingPoint num="50" id="2960" />
+<TGConnectingPoint num="51" id="2961" />
+<TGConnectingPoint num="52" id="2962" />
+<TGConnectingPoint num="53" id="2963" />
+<TGConnectingPoint num="54" id="2964" />
+<TGConnectingPoint num="55" id="2965" />
+<TGConnectingPoint num="56" id="2966" />
+<TGConnectingPoint num="57" id="2967" />
+<TGConnectingPoint num="58" id="2968" />
+<TGConnectingPoint num="59" id="2969" />
+<TGConnectingPoint num="60" id="2970" />
+<TGConnectingPoint num="61" id="2971" />
+<TGConnectingPoint num="62" id="2972" />
+<TGConnectingPoint num="63" id="2973" />
+<TGConnectingPoint num="64" id="2974" />
+<TGConnectingPoint num="65" id="2975" />
+<TGConnectingPoint num="66" id="2976" />
+<TGConnectingPoint num="67" id="2977" />
+<TGConnectingPoint num="68" id="2978" />
+<TGConnectingPoint num="69" id="2979" />
+<TGConnectingPoint num="70" id="2980" />
+<TGConnectingPoint num="71" id="2981" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="2993" index="18" uid="07ae81b0-c061-408f-ace5-e6f21e3cd467" >
+<cdparam x="384" y="340" />
+<sizeparam width="62" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="putCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2983" />
+<TGConnectingPoint num="1" id="2984" />
+<TGConnectingPoint num="2" id="2985" />
+<TGConnectingPoint num="3" id="2986" />
+<TGConnectingPoint num="4" id="2987" />
+<TGConnectingPoint num="5" id="2988" />
+<TGConnectingPoint num="6" id="2989" />
+<TGConnectingPoint num="7" id="2990" />
+<TGConnectingPoint num="8" id="2991" />
+<TGConnectingPoint num="9" id="2992" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3066" index="19" uid="3b7261c5-b9bc-4c34-9587-ac20a4bf2fca" >
+<cdparam x="400" y="240" />
+<sizeparam width="165" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="oneCoinInserted" />
+<new d="false" />
+<TGConnectingPoint num="0" id="2994" />
+<TGConnectingPoint num="1" id="2995" />
+<TGConnectingPoint num="2" id="2996" />
+<TGConnectingPoint num="3" id="2997" />
+<TGConnectingPoint num="4" id="2998" />
+<TGConnectingPoint num="5" id="2999" />
+<TGConnectingPoint num="6" id="3000" />
+<TGConnectingPoint num="7" id="3001" />
+<TGConnectingPoint num="8" id="3002" />
+<TGConnectingPoint num="9" id="3003" />
+<TGConnectingPoint num="10" id="3004" />
+<TGConnectingPoint num="11" id="3005" />
+<TGConnectingPoint num="12" id="3006" />
+<TGConnectingPoint num="13" id="3007" />
+<TGConnectingPoint num="14" id="3008" />
+<TGConnectingPoint num="15" id="3009" />
+<TGConnectingPoint num="16" id="3010" />
+<TGConnectingPoint num="17" id="3011" />
+<TGConnectingPoint num="18" id="3012" />
+<TGConnectingPoint num="19" id="3013" />
+<TGConnectingPoint num="20" id="3014" />
+<TGConnectingPoint num="21" id="3015" />
+<TGConnectingPoint num="22" id="3016" />
+<TGConnectingPoint num="23" id="3017" />
+<TGConnectingPoint num="24" id="3018" />
+<TGConnectingPoint num="25" id="3019" />
+<TGConnectingPoint num="26" id="3020" />
+<TGConnectingPoint num="27" id="3021" />
+<TGConnectingPoint num="28" id="3022" />
+<TGConnectingPoint num="29" id="3023" />
+<TGConnectingPoint num="30" id="3024" />
+<TGConnectingPoint num="31" id="3025" />
+<TGConnectingPoint num="32" id="3026" />
+<TGConnectingPoint num="33" id="3027" />
+<TGConnectingPoint num="34" id="3028" />
+<TGConnectingPoint num="35" id="3029" />
+<TGConnectingPoint num="36" id="3030" />
+<TGConnectingPoint num="37" id="3031" />
+<TGConnectingPoint num="38" id="3032" />
+<TGConnectingPoint num="39" id="3033" />
+<TGConnectingPoint num="40" id="3034" />
+<TGConnectingPoint num="41" id="3035" />
+<TGConnectingPoint num="42" id="3036" />
+<TGConnectingPoint num="43" id="3037" />
+<TGConnectingPoint num="44" id="3038" />
+<TGConnectingPoint num="45" id="3039" />
+<TGConnectingPoint num="46" id="3040" />
+<TGConnectingPoint num="47" id="3041" />
+<TGConnectingPoint num="48" id="3042" />
+<TGConnectingPoint num="49" id="3043" />
+<TGConnectingPoint num="50" id="3044" />
+<TGConnectingPoint num="51" id="3045" />
+<TGConnectingPoint num="52" id="3046" />
+<TGConnectingPoint num="53" id="3047" />
+<TGConnectingPoint num="54" id="3048" />
+<TGConnectingPoint num="55" id="3049" />
+<TGConnectingPoint num="56" id="3050" />
+<TGConnectingPoint num="57" id="3051" />
+<TGConnectingPoint num="58" id="3052" />
+<TGConnectingPoint num="59" id="3053" />
+<TGConnectingPoint num="60" id="3054" />
+<TGConnectingPoint num="61" id="3055" />
+<TGConnectingPoint num="62" id="3056" />
+<TGConnectingPoint num="63" id="3057" />
+<TGConnectingPoint num="64" id="3058" />
+<TGConnectingPoint num="65" id="3059" />
+<TGConnectingPoint num="66" id="3060" />
+<TGConnectingPoint num="67" id="3061" />
+<TGConnectingPoint num="68" id="3062" />
+<TGConnectingPoint num="69" id="3063" />
+<TGConnectingPoint num="70" id="3064" />
+<TGConnectingPoint num="71" id="3065" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3139" index="20" uid="34858d86-1ddd-40a5-85ea-91a61bac8e3f" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3067" />
+<TGConnectingPoint num="1" id="3068" />
+<TGConnectingPoint num="2" id="3069" />
+<TGConnectingPoint num="3" id="3070" />
+<TGConnectingPoint num="4" id="3071" />
+<TGConnectingPoint num="5" id="3072" />
+<TGConnectingPoint num="6" id="3073" />
+<TGConnectingPoint num="7" id="3074" />
+<TGConnectingPoint num="8" id="3075" />
+<TGConnectingPoint num="9" id="3076" />
+<TGConnectingPoint num="10" id="3077" />
+<TGConnectingPoint num="11" id="3078" />
+<TGConnectingPoint num="12" id="3079" />
+<TGConnectingPoint num="13" id="3080" />
+<TGConnectingPoint num="14" id="3081" />
+<TGConnectingPoint num="15" id="3082" />
+<TGConnectingPoint num="16" id="3083" />
+<TGConnectingPoint num="17" id="3084" />
+<TGConnectingPoint num="18" id="3085" />
+<TGConnectingPoint num="19" id="3086" />
+<TGConnectingPoint num="20" id="3087" />
+<TGConnectingPoint num="21" id="3088" />
+<TGConnectingPoint num="22" id="3089" />
+<TGConnectingPoint num="23" id="3090" />
+<TGConnectingPoint num="24" id="3091" />
+<TGConnectingPoint num="25" id="3092" />
+<TGConnectingPoint num="26" id="3093" />
+<TGConnectingPoint num="27" id="3094" />
+<TGConnectingPoint num="28" id="3095" />
+<TGConnectingPoint num="29" id="3096" />
+<TGConnectingPoint num="30" id="3097" />
+<TGConnectingPoint num="31" id="3098" />
+<TGConnectingPoint num="32" id="3099" />
+<TGConnectingPoint num="33" id="3100" />
+<TGConnectingPoint num="34" id="3101" />
+<TGConnectingPoint num="35" id="3102" />
+<TGConnectingPoint num="36" id="3103" />
+<TGConnectingPoint num="37" id="3104" />
+<TGConnectingPoint num="38" id="3105" />
+<TGConnectingPoint num="39" id="3106" />
+<TGConnectingPoint num="40" id="3107" />
+<TGConnectingPoint num="41" id="3108" />
+<TGConnectingPoint num="42" id="3109" />
+<TGConnectingPoint num="43" id="3110" />
+<TGConnectingPoint num="44" id="3111" />
+<TGConnectingPoint num="45" id="3112" />
+<TGConnectingPoint num="46" id="3113" />
+<TGConnectingPoint num="47" id="3114" />
+<TGConnectingPoint num="48" id="3115" />
+<TGConnectingPoint num="49" id="3116" />
+<TGConnectingPoint num="50" id="3117" />
+<TGConnectingPoint num="51" id="3118" />
+<TGConnectingPoint num="52" id="3119" />
+<TGConnectingPoint num="53" id="3120" />
+<TGConnectingPoint num="54" id="3121" />
+<TGConnectingPoint num="55" id="3122" />
+<TGConnectingPoint num="56" id="3123" />
+<TGConnectingPoint num="57" id="3124" />
+<TGConnectingPoint num="58" id="3125" />
+<TGConnectingPoint num="59" id="3126" />
+<TGConnectingPoint num="60" id="3127" />
+<TGConnectingPoint num="61" id="3128" />
+<TGConnectingPoint num="62" id="3129" />
+<TGConnectingPoint num="63" id="3130" />
+<TGConnectingPoint num="64" id="3131" />
+<TGConnectingPoint num="65" id="3132" />
+<TGConnectingPoint num="66" id="3133" />
+<TGConnectingPoint num="67" id="3134" />
+<TGConnectingPoint num="68" id="3135" />
+<TGConnectingPoint num="69" id="3136" />
+<TGConnectingPoint num="70" id="3137" />
+<TGConnectingPoint num="71" id="3138" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3141" index="21" uid="3e2339c5-f7a2-4939-b87e-c2dc90101343" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3140" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="3148" index="0" uid="47d3bb44-8205-4c23-b804-466fcd2715f5" >
+<cdparam x="504" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3147" />
+<P1  x="504" y="490" id="3393" />
+<P2  x="500" y="171" id="3632" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3146" index="20" uid="945dade2-30b6-4e17-8e0c-886fb1974df0" >
+<father id="3148" num="0" />
+<cdparam x="502" y="330" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3142" />
+<TGConnectingPoint num="1" id="3143" />
+<TGConnectingPoint num="2" id="3144" />
+<TGConnectingPoint num="3" id="3145" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3155" index="1" uid="26b5ff39-cd6b-4b46-a283-8b00bc5188f9" >
+<cdparam x="471" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3154" />
+<P1  x="471" y="290" id="3571" />
+<P2  x="477" y="340" id="3461" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3153" index="21" uid="58d221fc-df4a-4f7f-a9bd-a83eba8097a8" >
+<father id="3155" num="0" />
+<cdparam x="474" y="315" />
+<sizeparam width="100" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3149" />
+<TGConnectingPoint num="1" id="3150" />
+<TGConnectingPoint num="2" id="3151" />
+<TGConnectingPoint num="3" id="3152" />
+<extraparam>
+<guard value="nbOfCoins == 2" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3162" index="2" uid="ef1755c7-79ac-41e0-ade9-4fcb131d80e5" >
+<cdparam x="715" y="365" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3161" />
+<P1  x="715" y="365" id="3293" />
+<P2  x="766" y="440" id="3220" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3160" index="22" uid="dc9c5295-a240-4cd9-9d74-266c74e65b29" >
+<father id="3162" num="0" />
+<cdparam x="740" y="402" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3156" />
+<TGConnectingPoint num="1" id="3157" />
+<TGConnectingPoint num="2" id="3158" />
+<TGConnectingPoint num="3" id="3159" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3169" index="3" uid="a8d2bcd7-a60a-449f-983b-3628f1202bf7" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3168" />
+<P1  x="407" y="60" id="3679" />
+<P2  x="450" y="140" id="3607" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3167" index="23" uid="ac538fab-8f44-4228-802a-fc5b6a877dcd" >
+<father id="3169" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3163" />
+<TGConnectingPoint num="1" id="3164" />
+<TGConnectingPoint num="2" id="3165" />
+<TGConnectingPoint num="3" id="3166" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3176" index="4" uid="b4b997b5-49d5-459e-87ef-2d156c5ae1b8" >
+<cdparam x="715" y="465" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3175" />
+<P1  x="715" y="465" id="3377" />
+<P2  x="788" y="540" id="3304" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3174" index="24" uid="c4b759cf-90d2-4c19-a8dd-89f770f260ae" >
+<father id="3176" num="0" />
+<cdparam x="751" y="502" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3170" />
+<TGConnectingPoint num="1" id="3171" />
+<TGConnectingPoint num="2" id="3172" />
+<TGConnectingPoint num="3" id="3173" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3183" index="5" uid="8cc6e628-d552-400c-8616-1061f61f1231" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3182" />
+<P1  x="450" y="190" id="3612" />
+<P2  x="471" y="240" id="3534" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3181" index="25" uid="79cf3c2c-677a-4e8b-be68-2363ff2d259d" >
+<father id="3183" num="0" />
+<cdparam x="460" y="215" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3177" />
+<TGConnectingPoint num="1" id="3178" />
+<TGConnectingPoint num="2" id="3179" />
+<TGConnectingPoint num="3" id="3180" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3190" index="6" uid="66cd667f-3a19-4e11-9d58-f8aa4edbc400" >
+<cdparam x="471" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3189" />
+<P1  x="471" y="290" id="3539" />
+<P2  x="715" y="335" id="3292" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3188" index="26" uid="6295213a-1869-4408-a918-a133b4e492e4" >
+<father id="3190" num="0" />
+<cdparam x="593" y="312" />
+<sizeparam width="162" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3184" />
+<TGConnectingPoint num="1" id="3185" />
+<TGConnectingPoint num="2" id="3186" />
+<TGConnectingPoint num="3" id="3187" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="coinDelay" enabled="true"/>
+<afterMax value="coinDelay" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3197" index="7" uid="bce81312-9032-45a7-ad44-9b66f4036936" >
+<cdparam x="477" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3196" />
+<P1  x="477" y="390" id="3498" />
+<P2  x="715" y="435" id="3376" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3195" index="27" uid="cf5dc0f1-5b1d-45ca-8307-c48153600ee0" >
+<father id="3197" num="0" />
+<cdparam x="596" y="412" />
+<sizeparam width="200" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3191" />
+<TGConnectingPoint num="1" id="3192" />
+<TGConnectingPoint num="2" id="3193" />
+<TGConnectingPoint num="3" id="3194" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="teaMaxDelay" enabled="true"/>
+<afterMax value="teaMaxDelay" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3204" index="8" uid="35e108cc-fc06-4cbd-b73c-6f2ed7ac0cf3" >
+<cdparam x="788" y="590" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3203" />
+<P1  x="788" y="590" id="3309" />
+<P2  x="500" y="165" id="3642" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3202" index="28" uid="7ee2ca5f-8050-467d-9710-b1b393ca5025" >
+<father id="3204" num="0" />
+<cdparam x="644" y="377" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3198" />
+<TGConnectingPoint num="1" id="3199" />
+<TGConnectingPoint num="2" id="3200" />
+<TGConnectingPoint num="3" id="3201" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3211" index="9" uid="b9375723-7aed-4f41-99f0-ba85ad2b713e" >
+<cdparam x="766" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3210" />
+<P1  x="766" y="490" id="3225" />
+<P2  x="500" y="165" id="3610" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3209" index="29" uid="355878be-5649-411e-a586-58af8d1d9a0b" >
+<father id="3211" num="0" />
+<cdparam x="633" y="327" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3205" />
+<TGConnectingPoint num="1" id="3206" />
+<TGConnectingPoint num="2" id="3207" />
+<TGConnectingPoint num="3" id="3208" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3218" index="10" uid="f91b96a0-c280-4c00-95b3-bcdbbc1a7f85" >
+<cdparam x="477" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3217" />
+<P1  x="477" y="390" id="3466" />
+<P2  x="504" y="440" id="3388" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3216" index="30" uid="a23eddec-c916-4293-8f38-ae4d47bcd803" >
+<father id="3218" num="0" />
+<cdparam x="490" y="415" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3212" />
+<TGConnectingPoint num="1" id="3213" />
+<TGConnectingPoint num="2" id="3214" />
+<TGConnectingPoint num="3" id="3215" />
+<extraparam>
+<guard value="x &gt; 0" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="3291" index="11" uid="4966518e-b7e1-4ec1-969f-7b0c6ff5a8dc" >
+<cdparam x="700" y="440" />
+<sizeparam width="132" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="CoinEjection" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3219" />
+<TGConnectingPoint num="1" id="3220" />
+<TGConnectingPoint num="2" id="3221" />
+<TGConnectingPoint num="3" id="3222" />
+<TGConnectingPoint num="4" id="3223" />
+<TGConnectingPoint num="5" id="3224" />
+<TGConnectingPoint num="6" id="3225" />
+<TGConnectingPoint num="7" id="3226" />
+<TGConnectingPoint num="8" id="3227" />
+<TGConnectingPoint num="9" id="3228" />
+<TGConnectingPoint num="10" id="3229" />
+<TGConnectingPoint num="11" id="3230" />
+<TGConnectingPoint num="12" id="3231" />
+<TGConnectingPoint num="13" id="3232" />
+<TGConnectingPoint num="14" id="3233" />
+<TGConnectingPoint num="15" id="3234" />
+<TGConnectingPoint num="16" id="3235" />
+<TGConnectingPoint num="17" id="3236" />
+<TGConnectingPoint num="18" id="3237" />
+<TGConnectingPoint num="19" id="3238" />
+<TGConnectingPoint num="20" id="3239" />
+<TGConnectingPoint num="21" id="3240" />
+<TGConnectingPoint num="22" id="3241" />
+<TGConnectingPoint num="23" id="3242" />
+<TGConnectingPoint num="24" id="3243" />
+<TGConnectingPoint num="25" id="3244" />
+<TGConnectingPoint num="26" id="3245" />
+<TGConnectingPoint num="27" id="3246" />
+<TGConnectingPoint num="28" id="3247" />
+<TGConnectingPoint num="29" id="3248" />
+<TGConnectingPoint num="30" id="3249" />
+<TGConnectingPoint num="31" id="3250" />
+<TGConnectingPoint num="32" id="3251" />
+<TGConnectingPoint num="33" id="3252" />
+<TGConnectingPoint num="34" id="3253" />
+<TGConnectingPoint num="35" id="3254" />
+<TGConnectingPoint num="36" id="3255" />
+<TGConnectingPoint num="37" id="3256" />
+<TGConnectingPoint num="38" id="3257" />
+<TGConnectingPoint num="39" id="3258" />
+<TGConnectingPoint num="40" id="3259" />
+<TGConnectingPoint num="41" id="3260" />
+<TGConnectingPoint num="42" id="3261" />
+<TGConnectingPoint num="43" id="3262" />
+<TGConnectingPoint num="44" id="3263" />
+<TGConnectingPoint num="45" id="3264" />
+<TGConnectingPoint num="46" id="3265" />
+<TGConnectingPoint num="47" id="3266" />
+<TGConnectingPoint num="48" id="3267" />
+<TGConnectingPoint num="49" id="3268" />
+<TGConnectingPoint num="50" id="3269" />
+<TGConnectingPoint num="51" id="3270" />
+<TGConnectingPoint num="52" id="3271" />
+<TGConnectingPoint num="53" id="3272" />
+<TGConnectingPoint num="54" id="3273" />
+<TGConnectingPoint num="55" id="3274" />
+<TGConnectingPoint num="56" id="3275" />
+<TGConnectingPoint num="57" id="3276" />
+<TGConnectingPoint num="58" id="3277" />
+<TGConnectingPoint num="59" id="3278" />
+<TGConnectingPoint num="60" id="3279" />
+<TGConnectingPoint num="61" id="3280" />
+<TGConnectingPoint num="62" id="3281" />
+<TGConnectingPoint num="63" id="3282" />
+<TGConnectingPoint num="64" id="3283" />
+<TGConnectingPoint num="65" id="3284" />
+<TGConnectingPoint num="66" id="3285" />
+<TGConnectingPoint num="67" id="3286" />
+<TGConnectingPoint num="68" id="3287" />
+<TGConnectingPoint num="69" id="3288" />
+<TGConnectingPoint num="70" id="3289" />
+<TGConnectingPoint num="71" id="3290" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3302" index="12" uid="bb871f64-f5fd-4df1-a853-43159523856d" >
+<cdparam x="680" y="340" />
+<sizeparam width="71" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="ejectCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3292" />
+<TGConnectingPoint num="1" id="3293" />
+<TGConnectingPoint num="2" id="3294" />
+<TGConnectingPoint num="3" id="3295" />
+<TGConnectingPoint num="4" id="3296" />
+<TGConnectingPoint num="5" id="3297" />
+<TGConnectingPoint num="6" id="3298" />
+<TGConnectingPoint num="7" id="3299" />
+<TGConnectingPoint num="8" id="3300" />
+<TGConnectingPoint num="9" id="3301" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3375" index="13" uid="d36be56e-1eb5-4c1e-8ed8-fa8d0ba2b416" >
+<cdparam x="700" y="540" />
+<sizeparam width="176" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="BeverageEjection" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3303" />
+<TGConnectingPoint num="1" id="3304" />
+<TGConnectingPoint num="2" id="3305" />
+<TGConnectingPoint num="3" id="3306" />
+<TGConnectingPoint num="4" id="3307" />
+<TGConnectingPoint num="5" id="3308" />
+<TGConnectingPoint num="6" id="3309" />
+<TGConnectingPoint num="7" id="3310" />
+<TGConnectingPoint num="8" id="3311" />
+<TGConnectingPoint num="9" id="3312" />
+<TGConnectingPoint num="10" id="3313" />
+<TGConnectingPoint num="11" id="3314" />
+<TGConnectingPoint num="12" id="3315" />
+<TGConnectingPoint num="13" id="3316" />
+<TGConnectingPoint num="14" id="3317" />
+<TGConnectingPoint num="15" id="3318" />
+<TGConnectingPoint num="16" id="3319" />
+<TGConnectingPoint num="17" id="3320" />
+<TGConnectingPoint num="18" id="3321" />
+<TGConnectingPoint num="19" id="3322" />
+<TGConnectingPoint num="20" id="3323" />
+<TGConnectingPoint num="21" id="3324" />
+<TGConnectingPoint num="22" id="3325" />
+<TGConnectingPoint num="23" id="3326" />
+<TGConnectingPoint num="24" id="3327" />
+<TGConnectingPoint num="25" id="3328" />
+<TGConnectingPoint num="26" id="3329" />
+<TGConnectingPoint num="27" id="3330" />
+<TGConnectingPoint num="28" id="3331" />
+<TGConnectingPoint num="29" id="3332" />
+<TGConnectingPoint num="30" id="3333" />
+<TGConnectingPoint num="31" id="3334" />
+<TGConnectingPoint num="32" id="3335" />
+<TGConnectingPoint num="33" id="3336" />
+<TGConnectingPoint num="34" id="3337" />
+<TGConnectingPoint num="35" id="3338" />
+<TGConnectingPoint num="36" id="3339" />
+<TGConnectingPoint num="37" id="3340" />
+<TGConnectingPoint num="38" id="3341" />
+<TGConnectingPoint num="39" id="3342" />
+<TGConnectingPoint num="40" id="3343" />
+<TGConnectingPoint num="41" id="3344" />
+<TGConnectingPoint num="42" id="3345" />
+<TGConnectingPoint num="43" id="3346" />
+<TGConnectingPoint num="44" id="3347" />
+<TGConnectingPoint num="45" id="3348" />
+<TGConnectingPoint num="46" id="3349" />
+<TGConnectingPoint num="47" id="3350" />
+<TGConnectingPoint num="48" id="3351" />
+<TGConnectingPoint num="49" id="3352" />
+<TGConnectingPoint num="50" id="3353" />
+<TGConnectingPoint num="51" id="3354" />
+<TGConnectingPoint num="52" id="3355" />
+<TGConnectingPoint num="53" id="3356" />
+<TGConnectingPoint num="54" id="3357" />
+<TGConnectingPoint num="55" id="3358" />
+<TGConnectingPoint num="56" id="3359" />
+<TGConnectingPoint num="57" id="3360" />
+<TGConnectingPoint num="58" id="3361" />
+<TGConnectingPoint num="59" id="3362" />
+<TGConnectingPoint num="60" id="3363" />
+<TGConnectingPoint num="61" id="3364" />
+<TGConnectingPoint num="62" id="3365" />
+<TGConnectingPoint num="63" id="3366" />
+<TGConnectingPoint num="64" id="3367" />
+<TGConnectingPoint num="65" id="3368" />
+<TGConnectingPoint num="66" id="3369" />
+<TGConnectingPoint num="67" id="3370" />
+<TGConnectingPoint num="68" id="3371" />
+<TGConnectingPoint num="69" id="3372" />
+<TGConnectingPoint num="70" id="3373" />
+<TGConnectingPoint num="71" id="3374" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3386" index="14" uid="cdd181ef-209f-4bd4-9cad-613608a12642" >
+<cdparam x="680" y="440" />
+<sizeparam width="71" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="ejectCoin()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3376" />
+<TGConnectingPoint num="1" id="3377" />
+<TGConnectingPoint num="2" id="3378" />
+<TGConnectingPoint num="3" id="3379" />
+<TGConnectingPoint num="4" id="3380" />
+<TGConnectingPoint num="5" id="3381" />
+<TGConnectingPoint num="6" id="3382" />
+<TGConnectingPoint num="7" id="3383" />
+<TGConnectingPoint num="8" id="3384" />
+<TGConnectingPoint num="9" id="3385" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3459" index="15" uid="382cfd88-4672-41d5-a510-32cb75b036dc" >
+<cdparam x="400" y="440" />
+<sizeparam width="209" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="BeveragePreparation" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3387" />
+<TGConnectingPoint num="1" id="3388" />
+<TGConnectingPoint num="2" id="3389" />
+<TGConnectingPoint num="3" id="3390" />
+<TGConnectingPoint num="4" id="3391" />
+<TGConnectingPoint num="5" id="3392" />
+<TGConnectingPoint num="6" id="3393" />
+<TGConnectingPoint num="7" id="3394" />
+<TGConnectingPoint num="8" id="3395" />
+<TGConnectingPoint num="9" id="3396" />
+<TGConnectingPoint num="10" id="3397" />
+<TGConnectingPoint num="11" id="3398" />
+<TGConnectingPoint num="12" id="3399" />
+<TGConnectingPoint num="13" id="3400" />
+<TGConnectingPoint num="14" id="3401" />
+<TGConnectingPoint num="15" id="3402" />
+<TGConnectingPoint num="16" id="3403" />
+<TGConnectingPoint num="17" id="3404" />
+<TGConnectingPoint num="18" id="3405" />
+<TGConnectingPoint num="19" id="3406" />
+<TGConnectingPoint num="20" id="3407" />
+<TGConnectingPoint num="21" id="3408" />
+<TGConnectingPoint num="22" id="3409" />
+<TGConnectingPoint num="23" id="3410" />
+<TGConnectingPoint num="24" id="3411" />
+<TGConnectingPoint num="25" id="3412" />
+<TGConnectingPoint num="26" id="3413" />
+<TGConnectingPoint num="27" id="3414" />
+<TGConnectingPoint num="28" id="3415" />
+<TGConnectingPoint num="29" id="3416" />
+<TGConnectingPoint num="30" id="3417" />
+<TGConnectingPoint num="31" id="3418" />
+<TGConnectingPoint num="32" id="3419" />
+<TGConnectingPoint num="33" id="3420" />
+<TGConnectingPoint num="34" id="3421" />
+<TGConnectingPoint num="35" id="3422" />
+<TGConnectingPoint num="36" id="3423" />
+<TGConnectingPoint num="37" id="3424" />
+<TGConnectingPoint num="38" id="3425" />
+<TGConnectingPoint num="39" id="3426" />
+<TGConnectingPoint num="40" id="3427" />
+<TGConnectingPoint num="41" id="3428" />
+<TGConnectingPoint num="42" id="3429" />
+<TGConnectingPoint num="43" id="3430" />
+<TGConnectingPoint num="44" id="3431" />
+<TGConnectingPoint num="45" id="3432" />
+<TGConnectingPoint num="46" id="3433" />
+<TGConnectingPoint num="47" id="3434" />
+<TGConnectingPoint num="48" id="3435" />
+<TGConnectingPoint num="49" id="3436" />
+<TGConnectingPoint num="50" id="3437" />
+<TGConnectingPoint num="51" id="3438" />
+<TGConnectingPoint num="52" id="3439" />
+<TGConnectingPoint num="53" id="3440" />
+<TGConnectingPoint num="54" id="3441" />
+<TGConnectingPoint num="55" id="3442" />
+<TGConnectingPoint num="56" id="3443" />
+<TGConnectingPoint num="57" id="3444" />
+<TGConnectingPoint num="58" id="3445" />
+<TGConnectingPoint num="59" id="3446" />
+<TGConnectingPoint num="60" id="3447" />
+<TGConnectingPoint num="61" id="3448" />
+<TGConnectingPoint num="62" id="3449" />
+<TGConnectingPoint num="63" id="3450" />
+<TGConnectingPoint num="64" id="3451" />
+<TGConnectingPoint num="65" id="3452" />
+<TGConnectingPoint num="66" id="3453" />
+<TGConnectingPoint num="67" id="3454" />
+<TGConnectingPoint num="68" id="3455" />
+<TGConnectingPoint num="69" id="3456" />
+<TGConnectingPoint num="70" id="3457" />
+<TGConnectingPoint num="71" id="3458" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3532" index="16" uid="0edbe78c-1bc3-4ade-947b-aa590b9d1ca8" >
+<cdparam x="400" y="340" />
+<sizeparam width="154" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="SelectBeverage" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3460" />
+<TGConnectingPoint num="1" id="3461" />
+<TGConnectingPoint num="2" id="3462" />
+<TGConnectingPoint num="3" id="3463" />
+<TGConnectingPoint num="4" id="3464" />
+<TGConnectingPoint num="5" id="3465" />
+<TGConnectingPoint num="6" id="3466" />
+<TGConnectingPoint num="7" id="3467" />
+<TGConnectingPoint num="8" id="3468" />
+<TGConnectingPoint num="9" id="3469" />
+<TGConnectingPoint num="10" id="3470" />
+<TGConnectingPoint num="11" id="3471" />
+<TGConnectingPoint num="12" id="3472" />
+<TGConnectingPoint num="13" id="3473" />
+<TGConnectingPoint num="14" id="3474" />
+<TGConnectingPoint num="15" id="3475" />
+<TGConnectingPoint num="16" id="3476" />
+<TGConnectingPoint num="17" id="3477" />
+<TGConnectingPoint num="18" id="3478" />
+<TGConnectingPoint num="19" id="3479" />
+<TGConnectingPoint num="20" id="3480" />
+<TGConnectingPoint num="21" id="3481" />
+<TGConnectingPoint num="22" id="3482" />
+<TGConnectingPoint num="23" id="3483" />
+<TGConnectingPoint num="24" id="3484" />
+<TGConnectingPoint num="25" id="3485" />
+<TGConnectingPoint num="26" id="3486" />
+<TGConnectingPoint num="27" id="3487" />
+<TGConnectingPoint num="28" id="3488" />
+<TGConnectingPoint num="29" id="3489" />
+<TGConnectingPoint num="30" id="3490" />
+<TGConnectingPoint num="31" id="3491" />
+<TGConnectingPoint num="32" id="3492" />
+<TGConnectingPoint num="33" id="3493" />
+<TGConnectingPoint num="34" id="3494" />
+<TGConnectingPoint num="35" id="3495" />
+<TGConnectingPoint num="36" id="3496" />
+<TGConnectingPoint num="37" id="3497" />
+<TGConnectingPoint num="38" id="3498" />
+<TGConnectingPoint num="39" id="3499" />
+<TGConnectingPoint num="40" id="3500" />
+<TGConnectingPoint num="41" id="3501" />
+<TGConnectingPoint num="42" id="3502" />
+<TGConnectingPoint num="43" id="3503" />
+<TGConnectingPoint num="44" id="3504" />
+<TGConnectingPoint num="45" id="3505" />
+<TGConnectingPoint num="46" id="3506" />
+<TGConnectingPoint num="47" id="3507" />
+<TGConnectingPoint num="48" id="3508" />
+<TGConnectingPoint num="49" id="3509" />
+<TGConnectingPoint num="50" id="3510" />
+<TGConnectingPoint num="51" id="3511" />
+<TGConnectingPoint num="52" id="3512" />
+<TGConnectingPoint num="53" id="3513" />
+<TGConnectingPoint num="54" id="3514" />
+<TGConnectingPoint num="55" id="3515" />
+<TGConnectingPoint num="56" id="3516" />
+<TGConnectingPoint num="57" id="3517" />
+<TGConnectingPoint num="58" id="3518" />
+<TGConnectingPoint num="59" id="3519" />
+<TGConnectingPoint num="60" id="3520" />
+<TGConnectingPoint num="61" id="3521" />
+<TGConnectingPoint num="62" id="3522" />
+<TGConnectingPoint num="63" id="3523" />
+<TGConnectingPoint num="64" id="3524" />
+<TGConnectingPoint num="65" id="3525" />
+<TGConnectingPoint num="66" id="3526" />
+<TGConnectingPoint num="67" id="3527" />
+<TGConnectingPoint num="68" id="3528" />
+<TGConnectingPoint num="69" id="3529" />
+<TGConnectingPoint num="70" id="3530" />
+<TGConnectingPoint num="71" id="3531" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3605" index="17" uid="4d7fb933-e20b-4c18-a3bc-915f9c594ea3" >
+<cdparam x="400" y="240" />
+<sizeparam width="143" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="CoinInsertion" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3533" />
+<TGConnectingPoint num="1" id="3534" />
+<TGConnectingPoint num="2" id="3535" />
+<TGConnectingPoint num="3" id="3536" />
+<TGConnectingPoint num="4" id="3537" />
+<TGConnectingPoint num="5" id="3538" />
+<TGConnectingPoint num="6" id="3539" />
+<TGConnectingPoint num="7" id="3540" />
+<TGConnectingPoint num="8" id="3541" />
+<TGConnectingPoint num="9" id="3542" />
+<TGConnectingPoint num="10" id="3543" />
+<TGConnectingPoint num="11" id="3544" />
+<TGConnectingPoint num="12" id="3545" />
+<TGConnectingPoint num="13" id="3546" />
+<TGConnectingPoint num="14" id="3547" />
+<TGConnectingPoint num="15" id="3548" />
+<TGConnectingPoint num="16" id="3549" />
+<TGConnectingPoint num="17" id="3550" />
+<TGConnectingPoint num="18" id="3551" />
+<TGConnectingPoint num="19" id="3552" />
+<TGConnectingPoint num="20" id="3553" />
+<TGConnectingPoint num="21" id="3554" />
+<TGConnectingPoint num="22" id="3555" />
+<TGConnectingPoint num="23" id="3556" />
+<TGConnectingPoint num="24" id="3557" />
+<TGConnectingPoint num="25" id="3558" />
+<TGConnectingPoint num="26" id="3559" />
+<TGConnectingPoint num="27" id="3560" />
+<TGConnectingPoint num="28" id="3561" />
+<TGConnectingPoint num="29" id="3562" />
+<TGConnectingPoint num="30" id="3563" />
+<TGConnectingPoint num="31" id="3564" />
+<TGConnectingPoint num="32" id="3565" />
+<TGConnectingPoint num="33" id="3566" />
+<TGConnectingPoint num="34" id="3567" />
+<TGConnectingPoint num="35" id="3568" />
+<TGConnectingPoint num="36" id="3569" />
+<TGConnectingPoint num="37" id="3570" />
+<TGConnectingPoint num="38" id="3571" />
+<TGConnectingPoint num="39" id="3572" />
+<TGConnectingPoint num="40" id="3573" />
+<TGConnectingPoint num="41" id="3574" />
+<TGConnectingPoint num="42" id="3575" />
+<TGConnectingPoint num="43" id="3576" />
+<TGConnectingPoint num="44" id="3577" />
+<TGConnectingPoint num="45" id="3578" />
+<TGConnectingPoint num="46" id="3579" />
+<TGConnectingPoint num="47" id="3580" />
+<TGConnectingPoint num="48" id="3581" />
+<TGConnectingPoint num="49" id="3582" />
+<TGConnectingPoint num="50" id="3583" />
+<TGConnectingPoint num="51" id="3584" />
+<TGConnectingPoint num="52" id="3585" />
+<TGConnectingPoint num="53" id="3586" />
+<TGConnectingPoint num="54" id="3587" />
+<TGConnectingPoint num="55" id="3588" />
+<TGConnectingPoint num="56" id="3589" />
+<TGConnectingPoint num="57" id="3590" />
+<TGConnectingPoint num="58" id="3591" />
+<TGConnectingPoint num="59" id="3592" />
+<TGConnectingPoint num="60" id="3593" />
+<TGConnectingPoint num="61" id="3594" />
+<TGConnectingPoint num="62" id="3595" />
+<TGConnectingPoint num="63" id="3596" />
+<TGConnectingPoint num="64" id="3597" />
+<TGConnectingPoint num="65" id="3598" />
+<TGConnectingPoint num="66" id="3599" />
+<TGConnectingPoint num="67" id="3600" />
+<TGConnectingPoint num="68" id="3601" />
+<TGConnectingPoint num="69" id="3602" />
+<TGConnectingPoint num="70" id="3603" />
+<TGConnectingPoint num="71" id="3604" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3678" index="18" uid="852c1e77-d3a1-443c-b195-95a932447a62" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3606" />
+<TGConnectingPoint num="1" id="3607" />
+<TGConnectingPoint num="2" id="3608" />
+<TGConnectingPoint num="3" id="3609" />
+<TGConnectingPoint num="4" id="3610" />
+<TGConnectingPoint num="5" id="3611" />
+<TGConnectingPoint num="6" id="3612" />
+<TGConnectingPoint num="7" id="3613" />
+<TGConnectingPoint num="8" id="3614" />
+<TGConnectingPoint num="9" id="3615" />
+<TGConnectingPoint num="10" id="3616" />
+<TGConnectingPoint num="11" id="3617" />
+<TGConnectingPoint num="12" id="3618" />
+<TGConnectingPoint num="13" id="3619" />
+<TGConnectingPoint num="14" id="3620" />
+<TGConnectingPoint num="15" id="3621" />
+<TGConnectingPoint num="16" id="3622" />
+<TGConnectingPoint num="17" id="3623" />
+<TGConnectingPoint num="18" id="3624" />
+<TGConnectingPoint num="19" id="3625" />
+<TGConnectingPoint num="20" id="3626" />
+<TGConnectingPoint num="21" id="3627" />
+<TGConnectingPoint num="22" id="3628" />
+<TGConnectingPoint num="23" id="3629" />
+<TGConnectingPoint num="24" id="3630" />
+<TGConnectingPoint num="25" id="3631" />
+<TGConnectingPoint num="26" id="3632" />
+<TGConnectingPoint num="27" id="3633" />
+<TGConnectingPoint num="28" id="3634" />
+<TGConnectingPoint num="29" id="3635" />
+<TGConnectingPoint num="30" id="3636" />
+<TGConnectingPoint num="31" id="3637" />
+<TGConnectingPoint num="32" id="3638" />
+<TGConnectingPoint num="33" id="3639" />
+<TGConnectingPoint num="34" id="3640" />
+<TGConnectingPoint num="35" id="3641" />
+<TGConnectingPoint num="36" id="3642" />
+<TGConnectingPoint num="37" id="3643" />
+<TGConnectingPoint num="38" id="3644" />
+<TGConnectingPoint num="39" id="3645" />
+<TGConnectingPoint num="40" id="3646" />
+<TGConnectingPoint num="41" id="3647" />
+<TGConnectingPoint num="42" id="3648" />
+<TGConnectingPoint num="43" id="3649" />
+<TGConnectingPoint num="44" id="3650" />
+<TGConnectingPoint num="45" id="3651" />
+<TGConnectingPoint num="46" id="3652" />
+<TGConnectingPoint num="47" id="3653" />
+<TGConnectingPoint num="48" id="3654" />
+<TGConnectingPoint num="49" id="3655" />
+<TGConnectingPoint num="50" id="3656" />
+<TGConnectingPoint num="51" id="3657" />
+<TGConnectingPoint num="52" id="3658" />
+<TGConnectingPoint num="53" id="3659" />
+<TGConnectingPoint num="54" id="3660" />
+<TGConnectingPoint num="55" id="3661" />
+<TGConnectingPoint num="56" id="3662" />
+<TGConnectingPoint num="57" id="3663" />
+<TGConnectingPoint num="58" id="3664" />
+<TGConnectingPoint num="59" id="3665" />
+<TGConnectingPoint num="60" id="3666" />
+<TGConnectingPoint num="61" id="3667" />
+<TGConnectingPoint num="62" id="3668" />
+<TGConnectingPoint num="63" id="3669" />
+<TGConnectingPoint num="64" id="3670" />
+<TGConnectingPoint num="65" id="3671" />
+<TGConnectingPoint num="66" id="3672" />
+<TGConnectingPoint num="67" id="3673" />
+<TGConnectingPoint num="68" id="3674" />
+<TGConnectingPoint num="69" id="3675" />
+<TGConnectingPoint num="70" id="3676" />
+<TGConnectingPoint num="71" id="3677" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3680" index="19" uid="9b9f3896-edba-47e5-a153-9d26bc6d973a" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3679" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="3687" index="0" uid="1e575005-a3df-4e85-9f78-c5ea926786c1" >
+<cdparam x="466" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3686" />
+<P1  x="466" y="290" id="3708" />
+<P2  x="500" y="165" id="3779" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3685" index="6" uid="8843aa1a-dc95-47ff-a629-92865bf7c951" >
+<father id="3687" num="0" />
+<cdparam x="483" y="227" />
+<sizeparam width="137" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3681" />
+<TGConnectingPoint num="1" id="3682" />
+<TGConnectingPoint num="2" id="3683" />
+<TGConnectingPoint num="3" id="3684" />
+<extraparam>
+<guard value="mechanicalDelay &gt;= 0" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3694" index="1" uid="b1369839-43c1-4456-84c2-9a997793ae12" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3693" />
+<P1  x="407" y="60" id="3848" />
+<P2  x="450" y="140" id="3776" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3692" index="7" uid="1ff5bc5e-935e-4f22-98ac-0a337349cfa7" >
+<father id="3694" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3688" />
+<TGConnectingPoint num="1" id="3689" />
+<TGConnectingPoint num="2" id="3690" />
+<TGConnectingPoint num="3" id="3691" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3701" index="2" uid="b589a5ca-b16b-430c-8f22-7ce671fb73cb" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3700" />
+<P1  x="450" y="190" id="3781" />
+<P2  x="466" y="240" id="3703" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3699" index="8" uid="ea6eb85a-1642-4483-8610-2f7d721ab251" >
+<father id="3701" num="0" />
+<cdparam x="458" y="215" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3695" />
+<TGConnectingPoint num="1" id="3696" />
+<TGConnectingPoint num="2" id="3697" />
+<TGConnectingPoint num="3" id="3698" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="3774" index="3" uid="954ef69a-6166-4ff3-bc5f-155367b7f92d" >
+<cdparam x="400" y="240" />
+<sizeparam width="132" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="ButtonPushed" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3702" />
+<TGConnectingPoint num="1" id="3703" />
+<TGConnectingPoint num="2" id="3704" />
+<TGConnectingPoint num="3" id="3705" />
+<TGConnectingPoint num="4" id="3706" />
+<TGConnectingPoint num="5" id="3707" />
+<TGConnectingPoint num="6" id="3708" />
+<TGConnectingPoint num="7" id="3709" />
+<TGConnectingPoint num="8" id="3710" />
+<TGConnectingPoint num="9" id="3711" />
+<TGConnectingPoint num="10" id="3712" />
+<TGConnectingPoint num="11" id="3713" />
+<TGConnectingPoint num="12" id="3714" />
+<TGConnectingPoint num="13" id="3715" />
+<TGConnectingPoint num="14" id="3716" />
+<TGConnectingPoint num="15" id="3717" />
+<TGConnectingPoint num="16" id="3718" />
+<TGConnectingPoint num="17" id="3719" />
+<TGConnectingPoint num="18" id="3720" />
+<TGConnectingPoint num="19" id="3721" />
+<TGConnectingPoint num="20" id="3722" />
+<TGConnectingPoint num="21" id="3723" />
+<TGConnectingPoint num="22" id="3724" />
+<TGConnectingPoint num="23" id="3725" />
+<TGConnectingPoint num="24" id="3726" />
+<TGConnectingPoint num="25" id="3727" />
+<TGConnectingPoint num="26" id="3728" />
+<TGConnectingPoint num="27" id="3729" />
+<TGConnectingPoint num="28" id="3730" />
+<TGConnectingPoint num="29" id="3731" />
+<TGConnectingPoint num="30" id="3732" />
+<TGConnectingPoint num="31" id="3733" />
+<TGConnectingPoint num="32" id="3734" />
+<TGConnectingPoint num="33" id="3735" />
+<TGConnectingPoint num="34" id="3736" />
+<TGConnectingPoint num="35" id="3737" />
+<TGConnectingPoint num="36" id="3738" />
+<TGConnectingPoint num="37" id="3739" />
+<TGConnectingPoint num="38" id="3740" />
+<TGConnectingPoint num="39" id="3741" />
+<TGConnectingPoint num="40" id="3742" />
+<TGConnectingPoint num="41" id="3743" />
+<TGConnectingPoint num="42" id="3744" />
+<TGConnectingPoint num="43" id="3745" />
+<TGConnectingPoint num="44" id="3746" />
+<TGConnectingPoint num="45" id="3747" />
+<TGConnectingPoint num="46" id="3748" />
+<TGConnectingPoint num="47" id="3749" />
+<TGConnectingPoint num="48" id="3750" />
+<TGConnectingPoint num="49" id="3751" />
+<TGConnectingPoint num="50" id="3752" />
+<TGConnectingPoint num="51" id="3753" />
+<TGConnectingPoint num="52" id="3754" />
+<TGConnectingPoint num="53" id="3755" />
+<TGConnectingPoint num="54" id="3756" />
+<TGConnectingPoint num="55" id="3757" />
+<TGConnectingPoint num="56" id="3758" />
+<TGConnectingPoint num="57" id="3759" />
+<TGConnectingPoint num="58" id="3760" />
+<TGConnectingPoint num="59" id="3761" />
+<TGConnectingPoint num="60" id="3762" />
+<TGConnectingPoint num="61" id="3763" />
+<TGConnectingPoint num="62" id="3764" />
+<TGConnectingPoint num="63" id="3765" />
+<TGConnectingPoint num="64" id="3766" />
+<TGConnectingPoint num="65" id="3767" />
+<TGConnectingPoint num="66" id="3768" />
+<TGConnectingPoint num="67" id="3769" />
+<TGConnectingPoint num="68" id="3770" />
+<TGConnectingPoint num="69" id="3771" />
+<TGConnectingPoint num="70" id="3772" />
+<TGConnectingPoint num="71" id="3773" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3847" index="4" uid="919df820-796c-4c33-bab0-834a0a213297" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3775" />
+<TGConnectingPoint num="1" id="3776" />
+<TGConnectingPoint num="2" id="3777" />
+<TGConnectingPoint num="3" id="3778" />
+<TGConnectingPoint num="4" id="3779" />
+<TGConnectingPoint num="5" id="3780" />
+<TGConnectingPoint num="6" id="3781" />
+<TGConnectingPoint num="7" id="3782" />
+<TGConnectingPoint num="8" id="3783" />
+<TGConnectingPoint num="9" id="3784" />
+<TGConnectingPoint num="10" id="3785" />
+<TGConnectingPoint num="11" id="3786" />
+<TGConnectingPoint num="12" id="3787" />
+<TGConnectingPoint num="13" id="3788" />
+<TGConnectingPoint num="14" id="3789" />
+<TGConnectingPoint num="15" id="3790" />
+<TGConnectingPoint num="16" id="3791" />
+<TGConnectingPoint num="17" id="3792" />
+<TGConnectingPoint num="18" id="3793" />
+<TGConnectingPoint num="19" id="3794" />
+<TGConnectingPoint num="20" id="3795" />
+<TGConnectingPoint num="21" id="3796" />
+<TGConnectingPoint num="22" id="3797" />
+<TGConnectingPoint num="23" id="3798" />
+<TGConnectingPoint num="24" id="3799" />
+<TGConnectingPoint num="25" id="3800" />
+<TGConnectingPoint num="26" id="3801" />
+<TGConnectingPoint num="27" id="3802" />
+<TGConnectingPoint num="28" id="3803" />
+<TGConnectingPoint num="29" id="3804" />
+<TGConnectingPoint num="30" id="3805" />
+<TGConnectingPoint num="31" id="3806" />
+<TGConnectingPoint num="32" id="3807" />
+<TGConnectingPoint num="33" id="3808" />
+<TGConnectingPoint num="34" id="3809" />
+<TGConnectingPoint num="35" id="3810" />
+<TGConnectingPoint num="36" id="3811" />
+<TGConnectingPoint num="37" id="3812" />
+<TGConnectingPoint num="38" id="3813" />
+<TGConnectingPoint num="39" id="3814" />
+<TGConnectingPoint num="40" id="3815" />
+<TGConnectingPoint num="41" id="3816" />
+<TGConnectingPoint num="42" id="3817" />
+<TGConnectingPoint num="43" id="3818" />
+<TGConnectingPoint num="44" id="3819" />
+<TGConnectingPoint num="45" id="3820" />
+<TGConnectingPoint num="46" id="3821" />
+<TGConnectingPoint num="47" id="3822" />
+<TGConnectingPoint num="48" id="3823" />
+<TGConnectingPoint num="49" id="3824" />
+<TGConnectingPoint num="50" id="3825" />
+<TGConnectingPoint num="51" id="3826" />
+<TGConnectingPoint num="52" id="3827" />
+<TGConnectingPoint num="53" id="3828" />
+<TGConnectingPoint num="54" id="3829" />
+<TGConnectingPoint num="55" id="3830" />
+<TGConnectingPoint num="56" id="3831" />
+<TGConnectingPoint num="57" id="3832" />
+<TGConnectingPoint num="58" id="3833" />
+<TGConnectingPoint num="59" id="3834" />
+<TGConnectingPoint num="60" id="3835" />
+<TGConnectingPoint num="61" id="3836" />
+<TGConnectingPoint num="62" id="3837" />
+<TGConnectingPoint num="63" id="3838" />
+<TGConnectingPoint num="64" id="3839" />
+<TGConnectingPoint num="65" id="3840" />
+<TGConnectingPoint num="66" id="3841" />
+<TGConnectingPoint num="67" id="3842" />
+<TGConnectingPoint num="68" id="3843" />
+<TGConnectingPoint num="69" id="3844" />
+<TGConnectingPoint num="70" id="3845" />
+<TGConnectingPoint num="71" id="3846" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3849" index="5" uid="6abe616a-a7dd-4f1c-8e9e-ef7f6ac0a232" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3848" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="3856" index="0" uid="c649bd3c-ced7-4b80-a00e-77533c3dbf8c" >
+<cdparam x="466" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3855" />
+<P1  x="466" y="390" id="4101" />
+<P2  x="500" y="265" id="4172" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3854" index="15" uid="2a0026ef-5983-49b6-adbf-772f25198cba" >
+<father id="3856" num="0" />
+<cdparam x="483" y="327" />
+<sizeparam width="936" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3850" />
+<TGConnectingPoint num="1" id="3851" />
+<TGConnectingPoint num="2" id="3852" />
+<TGConnectingPoint num="3" id="3853" />
+<extraparam>
+<guard value="(CoffeeMachine.x == 0)&amp;&amp;((CoffeeMachine.COFFEE_MACHINE_STATE_MACHINE_CURRENT_TIME-CoffeeMachine.x_time) &gt;= CoffeeMachine.Wallet.maxUserDelay)" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3863" index="1" uid="1d5bd9df-094b-4a25-a179-f61b880b438b" >
+<cdparam x="466" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3862" />
+<P1  x="466" y="390" id="4069" />
+<P2  x="450" y="440" id="3991" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3861" index="16" uid="88d18db8-d914-4969-8eb5-e483ff1dd1cc" >
+<father id="3863" num="0" />
+<cdparam x="458" y="415" />
+<sizeparam width="136" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3857" />
+<TGConnectingPoint num="1" id="3858" />
+<TGConnectingPoint num="2" id="3859" />
+<TGConnectingPoint num="3" id="3860" />
+<extraparam>
+<guard value="CoffeeMachine.x == 1" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3870" index="2" uid="ff3b8183-abfe-4179-8da8-9864d683aa03" >
+<cdparam x="415" y="665" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3869" />
+<P1  x="415" y="665" id="3907" />
+<P2  x="500" y="265" id="4140" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3868" index="17" uid="3805f962-2a2f-4e38-babe-ba93b1372abb" >
+<father id="3870" num="0" />
+<cdparam x="457" y="465" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3864" />
+<TGConnectingPoint num="1" id="3865" />
+<TGConnectingPoint num="2" id="3866" />
+<TGConnectingPoint num="3" id="3867" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3877" index="3" uid="62709a46-d0b2-404d-bc1a-ad297039b3a4" >
+<cdparam x="450" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3876" />
+<P1  x="450" y="490" id="3996" />
+<P2  x="466" y="540" id="3918" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3875" index="18" uid="d1b9c626-af4a-4053-a6c1-f555374e776c" >
+<father id="3877" num="0" />
+<cdparam x="458" y="515" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3871" />
+<TGConnectingPoint num="1" id="3872" />
+<TGConnectingPoint num="2" id="3873" />
+<TGConnectingPoint num="3" id="3874" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3884" index="4" uid="c98d531e-43c5-47cb-b168-8e34c1d4ff62" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3883" />
+<P1  x="450" y="190" id="4215" />
+<P2  x="450" y="240" id="4137" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3882" index="19" uid="08307e0f-211c-47a9-af88-1c7a68c45dd3" >
+<father id="3884" num="0" />
+<cdparam x="450" y="215" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3878" />
+<TGConnectingPoint num="1" id="3879" />
+<TGConnectingPoint num="2" id="3880" />
+<TGConnectingPoint num="3" id="3881" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3891" index="5" uid="a4f5e31c-34ac-4c67-9381-ac9345a39d03" >
+<cdparam x="466" y="590" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3890" />
+<P1  x="466" y="590" id="3923" />
+<P2  x="415" y="635" id="3906" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3889" index="20" uid="702e926d-b7fa-44c7-bc0e-b4bd9242abce" >
+<father id="3891" num="0" />
+<cdparam x="440" y="612" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3885" />
+<TGConnectingPoint num="1" id="3886" />
+<TGConnectingPoint num="2" id="3887" />
+<TGConnectingPoint num="3" id="3888" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3898" index="6" uid="0331603f-c99d-4b9e-a8f0-bfbfdf8c83f3" >
+<cdparam x="450" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3897" />
+<P1  x="450" y="290" id="4142" />
+<P2  x="466" y="340" id="4064" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3896" index="21" uid="df67b36e-3fab-4067-817e-3cfdabde2be0" >
+<father id="3898" num="0" />
+<cdparam x="458" y="315" />
+<sizeparam width="188" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3892" />
+<TGConnectingPoint num="1" id="3893" />
+<TGConnectingPoint num="2" id="3894" />
+<TGConnectingPoint num="3" id="3895" />
+<extraparam>
+<guard value="CoffeeMachine.nbOfCoins == 2" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="3905" index="7" uid="79964194-bfe2-4a81-82d9-e71127814ecc" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3904" />
+<P1  x="407" y="60" id="4282" />
+<P2  x="450" y="140" id="4210" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3903" index="22" uid="2ca46cb0-3239-4ddc-9172-c76227b8aa4b" >
+<father id="3905" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3899" />
+<TGConnectingPoint num="1" id="3900" />
+<TGConnectingPoint num="2" id="3901" />
+<TGConnectingPoint num="3" id="3902" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="3916" index="8" uid="2ad976fe-106d-4840-8940-c5fc3959b9b2" >
+<cdparam x="392" y="640" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="push()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3906" />
+<TGConnectingPoint num="1" id="3907" />
+<TGConnectingPoint num="2" id="3908" />
+<TGConnectingPoint num="3" id="3909" />
+<TGConnectingPoint num="4" id="3910" />
+<TGConnectingPoint num="5" id="3911" />
+<TGConnectingPoint num="6" id="3912" />
+<TGConnectingPoint num="7" id="3913" />
+<TGConnectingPoint num="8" id="3914" />
+<TGConnectingPoint num="9" id="3915" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3989" index="9" uid="13b666a5-fc85-4983-9124-3fe3f49cefbf" >
+<cdparam x="400" y="540" />
+<sizeparam width="132" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="WaitRetrieve" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3917" />
+<TGConnectingPoint num="1" id="3918" />
+<TGConnectingPoint num="2" id="3919" />
+<TGConnectingPoint num="3" id="3920" />
+<TGConnectingPoint num="4" id="3921" />
+<TGConnectingPoint num="5" id="3922" />
+<TGConnectingPoint num="6" id="3923" />
+<TGConnectingPoint num="7" id="3924" />
+<TGConnectingPoint num="8" id="3925" />
+<TGConnectingPoint num="9" id="3926" />
+<TGConnectingPoint num="10" id="3927" />
+<TGConnectingPoint num="11" id="3928" />
+<TGConnectingPoint num="12" id="3929" />
+<TGConnectingPoint num="13" id="3930" />
+<TGConnectingPoint num="14" id="3931" />
+<TGConnectingPoint num="15" id="3932" />
+<TGConnectingPoint num="16" id="3933" />
+<TGConnectingPoint num="17" id="3934" />
+<TGConnectingPoint num="18" id="3935" />
+<TGConnectingPoint num="19" id="3936" />
+<TGConnectingPoint num="20" id="3937" />
+<TGConnectingPoint num="21" id="3938" />
+<TGConnectingPoint num="22" id="3939" />
+<TGConnectingPoint num="23" id="3940" />
+<TGConnectingPoint num="24" id="3941" />
+<TGConnectingPoint num="25" id="3942" />
+<TGConnectingPoint num="26" id="3943" />
+<TGConnectingPoint num="27" id="3944" />
+<TGConnectingPoint num="28" id="3945" />
+<TGConnectingPoint num="29" id="3946" />
+<TGConnectingPoint num="30" id="3947" />
+<TGConnectingPoint num="31" id="3948" />
+<TGConnectingPoint num="32" id="3949" />
+<TGConnectingPoint num="33" id="3950" />
+<TGConnectingPoint num="34" id="3951" />
+<TGConnectingPoint num="35" id="3952" />
+<TGConnectingPoint num="36" id="3953" />
+<TGConnectingPoint num="37" id="3954" />
+<TGConnectingPoint num="38" id="3955" />
+<TGConnectingPoint num="39" id="3956" />
+<TGConnectingPoint num="40" id="3957" />
+<TGConnectingPoint num="41" id="3958" />
+<TGConnectingPoint num="42" id="3959" />
+<TGConnectingPoint num="43" id="3960" />
+<TGConnectingPoint num="44" id="3961" />
+<TGConnectingPoint num="45" id="3962" />
+<TGConnectingPoint num="46" id="3963" />
+<TGConnectingPoint num="47" id="3964" />
+<TGConnectingPoint num="48" id="3965" />
+<TGConnectingPoint num="49" id="3966" />
+<TGConnectingPoint num="50" id="3967" />
+<TGConnectingPoint num="51" id="3968" />
+<TGConnectingPoint num="52" id="3969" />
+<TGConnectingPoint num="53" id="3970" />
+<TGConnectingPoint num="54" id="3971" />
+<TGConnectingPoint num="55" id="3972" />
+<TGConnectingPoint num="56" id="3973" />
+<TGConnectingPoint num="57" id="3974" />
+<TGConnectingPoint num="58" id="3975" />
+<TGConnectingPoint num="59" id="3976" />
+<TGConnectingPoint num="60" id="3977" />
+<TGConnectingPoint num="61" id="3978" />
+<TGConnectingPoint num="62" id="3979" />
+<TGConnectingPoint num="63" id="3980" />
+<TGConnectingPoint num="64" id="3981" />
+<TGConnectingPoint num="65" id="3982" />
+<TGConnectingPoint num="66" id="3983" />
+<TGConnectingPoint num="67" id="3984" />
+<TGConnectingPoint num="68" id="3985" />
+<TGConnectingPoint num="69" id="3986" />
+<TGConnectingPoint num="70" id="3987" />
+<TGConnectingPoint num="71" id="3988" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4062" index="10" uid="b932f410-d697-4824-b3bf-2c4d7d362fdb" >
+<cdparam x="400" y="440" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Brewing" />
+<new d="false" />
+<TGConnectingPoint num="0" id="3990" />
+<TGConnectingPoint num="1" id="3991" />
+<TGConnectingPoint num="2" id="3992" />
+<TGConnectingPoint num="3" id="3993" />
+<TGConnectingPoint num="4" id="3994" />
+<TGConnectingPoint num="5" id="3995" />
+<TGConnectingPoint num="6" id="3996" />
+<TGConnectingPoint num="7" id="3997" />
+<TGConnectingPoint num="8" id="3998" />
+<TGConnectingPoint num="9" id="3999" />
+<TGConnectingPoint num="10" id="4000" />
+<TGConnectingPoint num="11" id="4001" />
+<TGConnectingPoint num="12" id="4002" />
+<TGConnectingPoint num="13" id="4003" />
+<TGConnectingPoint num="14" id="4004" />
+<TGConnectingPoint num="15" id="4005" />
+<TGConnectingPoint num="16" id="4006" />
+<TGConnectingPoint num="17" id="4007" />
+<TGConnectingPoint num="18" id="4008" />
+<TGConnectingPoint num="19" id="4009" />
+<TGConnectingPoint num="20" id="4010" />
+<TGConnectingPoint num="21" id="4011" />
+<TGConnectingPoint num="22" id="4012" />
+<TGConnectingPoint num="23" id="4013" />
+<TGConnectingPoint num="24" id="4014" />
+<TGConnectingPoint num="25" id="4015" />
+<TGConnectingPoint num="26" id="4016" />
+<TGConnectingPoint num="27" id="4017" />
+<TGConnectingPoint num="28" id="4018" />
+<TGConnectingPoint num="29" id="4019" />
+<TGConnectingPoint num="30" id="4020" />
+<TGConnectingPoint num="31" id="4021" />
+<TGConnectingPoint num="32" id="4022" />
+<TGConnectingPoint num="33" id="4023" />
+<TGConnectingPoint num="34" id="4024" />
+<TGConnectingPoint num="35" id="4025" />
+<TGConnectingPoint num="36" id="4026" />
+<TGConnectingPoint num="37" id="4027" />
+<TGConnectingPoint num="38" id="4028" />
+<TGConnectingPoint num="39" id="4029" />
+<TGConnectingPoint num="40" id="4030" />
+<TGConnectingPoint num="41" id="4031" />
+<TGConnectingPoint num="42" id="4032" />
+<TGConnectingPoint num="43" id="4033" />
+<TGConnectingPoint num="44" id="4034" />
+<TGConnectingPoint num="45" id="4035" />
+<TGConnectingPoint num="46" id="4036" />
+<TGConnectingPoint num="47" id="4037" />
+<TGConnectingPoint num="48" id="4038" />
+<TGConnectingPoint num="49" id="4039" />
+<TGConnectingPoint num="50" id="4040" />
+<TGConnectingPoint num="51" id="4041" />
+<TGConnectingPoint num="52" id="4042" />
+<TGConnectingPoint num="53" id="4043" />
+<TGConnectingPoint num="54" id="4044" />
+<TGConnectingPoint num="55" id="4045" />
+<TGConnectingPoint num="56" id="4046" />
+<TGConnectingPoint num="57" id="4047" />
+<TGConnectingPoint num="58" id="4048" />
+<TGConnectingPoint num="59" id="4049" />
+<TGConnectingPoint num="60" id="4050" />
+<TGConnectingPoint num="61" id="4051" />
+<TGConnectingPoint num="62" id="4052" />
+<TGConnectingPoint num="63" id="4053" />
+<TGConnectingPoint num="64" id="4054" />
+<TGConnectingPoint num="65" id="4055" />
+<TGConnectingPoint num="66" id="4056" />
+<TGConnectingPoint num="67" id="4057" />
+<TGConnectingPoint num="68" id="4058" />
+<TGConnectingPoint num="69" id="4059" />
+<TGConnectingPoint num="70" id="4060" />
+<TGConnectingPoint num="71" id="4061" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4135" index="11" uid="a4099374-218f-4522-8d54-e053ed15dd7d" >
+<cdparam x="400" y="340" />
+<sizeparam width="132" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="AwaitingCoin" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4063" />
+<TGConnectingPoint num="1" id="4064" />
+<TGConnectingPoint num="2" id="4065" />
+<TGConnectingPoint num="3" id="4066" />
+<TGConnectingPoint num="4" id="4067" />
+<TGConnectingPoint num="5" id="4068" />
+<TGConnectingPoint num="6" id="4069" />
+<TGConnectingPoint num="7" id="4070" />
+<TGConnectingPoint num="8" id="4071" />
+<TGConnectingPoint num="9" id="4072" />
+<TGConnectingPoint num="10" id="4073" />
+<TGConnectingPoint num="11" id="4074" />
+<TGConnectingPoint num="12" id="4075" />
+<TGConnectingPoint num="13" id="4076" />
+<TGConnectingPoint num="14" id="4077" />
+<TGConnectingPoint num="15" id="4078" />
+<TGConnectingPoint num="16" id="4079" />
+<TGConnectingPoint num="17" id="4080" />
+<TGConnectingPoint num="18" id="4081" />
+<TGConnectingPoint num="19" id="4082" />
+<TGConnectingPoint num="20" id="4083" />
+<TGConnectingPoint num="21" id="4084" />
+<TGConnectingPoint num="22" id="4085" />
+<TGConnectingPoint num="23" id="4086" />
+<TGConnectingPoint num="24" id="4087" />
+<TGConnectingPoint num="25" id="4088" />
+<TGConnectingPoint num="26" id="4089" />
+<TGConnectingPoint num="27" id="4090" />
+<TGConnectingPoint num="28" id="4091" />
+<TGConnectingPoint num="29" id="4092" />
+<TGConnectingPoint num="30" id="4093" />
+<TGConnectingPoint num="31" id="4094" />
+<TGConnectingPoint num="32" id="4095" />
+<TGConnectingPoint num="33" id="4096" />
+<TGConnectingPoint num="34" id="4097" />
+<TGConnectingPoint num="35" id="4098" />
+<TGConnectingPoint num="36" id="4099" />
+<TGConnectingPoint num="37" id="4100" />
+<TGConnectingPoint num="38" id="4101" />
+<TGConnectingPoint num="39" id="4102" />
+<TGConnectingPoint num="40" id="4103" />
+<TGConnectingPoint num="41" id="4104" />
+<TGConnectingPoint num="42" id="4105" />
+<TGConnectingPoint num="43" id="4106" />
+<TGConnectingPoint num="44" id="4107" />
+<TGConnectingPoint num="45" id="4108" />
+<TGConnectingPoint num="46" id="4109" />
+<TGConnectingPoint num="47" id="4110" />
+<TGConnectingPoint num="48" id="4111" />
+<TGConnectingPoint num="49" id="4112" />
+<TGConnectingPoint num="50" id="4113" />
+<TGConnectingPoint num="51" id="4114" />
+<TGConnectingPoint num="52" id="4115" />
+<TGConnectingPoint num="53" id="4116" />
+<TGConnectingPoint num="54" id="4117" />
+<TGConnectingPoint num="55" id="4118" />
+<TGConnectingPoint num="56" id="4119" />
+<TGConnectingPoint num="57" id="4120" />
+<TGConnectingPoint num="58" id="4121" />
+<TGConnectingPoint num="59" id="4122" />
+<TGConnectingPoint num="60" id="4123" />
+<TGConnectingPoint num="61" id="4124" />
+<TGConnectingPoint num="62" id="4125" />
+<TGConnectingPoint num="63" id="4126" />
+<TGConnectingPoint num="64" id="4127" />
+<TGConnectingPoint num="65" id="4128" />
+<TGConnectingPoint num="66" id="4129" />
+<TGConnectingPoint num="67" id="4130" />
+<TGConnectingPoint num="68" id="4131" />
+<TGConnectingPoint num="69" id="4132" />
+<TGConnectingPoint num="70" id="4133" />
+<TGConnectingPoint num="71" id="4134" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4208" index="12" uid="4fdec169-c44f-4166-8fd6-4db3c0c319a9" >
+<cdparam x="400" y="240" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Idle" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4136" />
+<TGConnectingPoint num="1" id="4137" />
+<TGConnectingPoint num="2" id="4138" />
+<TGConnectingPoint num="3" id="4139" />
+<TGConnectingPoint num="4" id="4140" />
+<TGConnectingPoint num="5" id="4141" />
+<TGConnectingPoint num="6" id="4142" />
+<TGConnectingPoint num="7" id="4143" />
+<TGConnectingPoint num="8" id="4144" />
+<TGConnectingPoint num="9" id="4145" />
+<TGConnectingPoint num="10" id="4146" />
+<TGConnectingPoint num="11" id="4147" />
+<TGConnectingPoint num="12" id="4148" />
+<TGConnectingPoint num="13" id="4149" />
+<TGConnectingPoint num="14" id="4150" />
+<TGConnectingPoint num="15" id="4151" />
+<TGConnectingPoint num="16" id="4152" />
+<TGConnectingPoint num="17" id="4153" />
+<TGConnectingPoint num="18" id="4154" />
+<TGConnectingPoint num="19" id="4155" />
+<TGConnectingPoint num="20" id="4156" />
+<TGConnectingPoint num="21" id="4157" />
+<TGConnectingPoint num="22" id="4158" />
+<TGConnectingPoint num="23" id="4159" />
+<TGConnectingPoint num="24" id="4160" />
+<TGConnectingPoint num="25" id="4161" />
+<TGConnectingPoint num="26" id="4162" />
+<TGConnectingPoint num="27" id="4163" />
+<TGConnectingPoint num="28" id="4164" />
+<TGConnectingPoint num="29" id="4165" />
+<TGConnectingPoint num="30" id="4166" />
+<TGConnectingPoint num="31" id="4167" />
+<TGConnectingPoint num="32" id="4168" />
+<TGConnectingPoint num="33" id="4169" />
+<TGConnectingPoint num="34" id="4170" />
+<TGConnectingPoint num="35" id="4171" />
+<TGConnectingPoint num="36" id="4172" />
+<TGConnectingPoint num="37" id="4173" />
+<TGConnectingPoint num="38" id="4174" />
+<TGConnectingPoint num="39" id="4175" />
+<TGConnectingPoint num="40" id="4176" />
+<TGConnectingPoint num="41" id="4177" />
+<TGConnectingPoint num="42" id="4178" />
+<TGConnectingPoint num="43" id="4179" />
+<TGConnectingPoint num="44" id="4180" />
+<TGConnectingPoint num="45" id="4181" />
+<TGConnectingPoint num="46" id="4182" />
+<TGConnectingPoint num="47" id="4183" />
+<TGConnectingPoint num="48" id="4184" />
+<TGConnectingPoint num="49" id="4185" />
+<TGConnectingPoint num="50" id="4186" />
+<TGConnectingPoint num="51" id="4187" />
+<TGConnectingPoint num="52" id="4188" />
+<TGConnectingPoint num="53" id="4189" />
+<TGConnectingPoint num="54" id="4190" />
+<TGConnectingPoint num="55" id="4191" />
+<TGConnectingPoint num="56" id="4192" />
+<TGConnectingPoint num="57" id="4193" />
+<TGConnectingPoint num="58" id="4194" />
+<TGConnectingPoint num="59" id="4195" />
+<TGConnectingPoint num="60" id="4196" />
+<TGConnectingPoint num="61" id="4197" />
+<TGConnectingPoint num="62" id="4198" />
+<TGConnectingPoint num="63" id="4199" />
+<TGConnectingPoint num="64" id="4200" />
+<TGConnectingPoint num="65" id="4201" />
+<TGConnectingPoint num="66" id="4202" />
+<TGConnectingPoint num="67" id="4203" />
+<TGConnectingPoint num="68" id="4204" />
+<TGConnectingPoint num="69" id="4205" />
+<TGConnectingPoint num="70" id="4206" />
+<TGConnectingPoint num="71" id="4207" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4281" index="13" uid="05757890-f09a-405a-98b7-c31a1b2609b9" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4209" />
+<TGConnectingPoint num="1" id="4210" />
+<TGConnectingPoint num="2" id="4211" />
+<TGConnectingPoint num="3" id="4212" />
+<TGConnectingPoint num="4" id="4213" />
+<TGConnectingPoint num="5" id="4214" />
+<TGConnectingPoint num="6" id="4215" />
+<TGConnectingPoint num="7" id="4216" />
+<TGConnectingPoint num="8" id="4217" />
+<TGConnectingPoint num="9" id="4218" />
+<TGConnectingPoint num="10" id="4219" />
+<TGConnectingPoint num="11" id="4220" />
+<TGConnectingPoint num="12" id="4221" />
+<TGConnectingPoint num="13" id="4222" />
+<TGConnectingPoint num="14" id="4223" />
+<TGConnectingPoint num="15" id="4224" />
+<TGConnectingPoint num="16" id="4225" />
+<TGConnectingPoint num="17" id="4226" />
+<TGConnectingPoint num="18" id="4227" />
+<TGConnectingPoint num="19" id="4228" />
+<TGConnectingPoint num="20" id="4229" />
+<TGConnectingPoint num="21" id="4230" />
+<TGConnectingPoint num="22" id="4231" />
+<TGConnectingPoint num="23" id="4232" />
+<TGConnectingPoint num="24" id="4233" />
+<TGConnectingPoint num="25" id="4234" />
+<TGConnectingPoint num="26" id="4235" />
+<TGConnectingPoint num="27" id="4236" />
+<TGConnectingPoint num="28" id="4237" />
+<TGConnectingPoint num="29" id="4238" />
+<TGConnectingPoint num="30" id="4239" />
+<TGConnectingPoint num="31" id="4240" />
+<TGConnectingPoint num="32" id="4241" />
+<TGConnectingPoint num="33" id="4242" />
+<TGConnectingPoint num="34" id="4243" />
+<TGConnectingPoint num="35" id="4244" />
+<TGConnectingPoint num="36" id="4245" />
+<TGConnectingPoint num="37" id="4246" />
+<TGConnectingPoint num="38" id="4247" />
+<TGConnectingPoint num="39" id="4248" />
+<TGConnectingPoint num="40" id="4249" />
+<TGConnectingPoint num="41" id="4250" />
+<TGConnectingPoint num="42" id="4251" />
+<TGConnectingPoint num="43" id="4252" />
+<TGConnectingPoint num="44" id="4253" />
+<TGConnectingPoint num="45" id="4254" />
+<TGConnectingPoint num="46" id="4255" />
+<TGConnectingPoint num="47" id="4256" />
+<TGConnectingPoint num="48" id="4257" />
+<TGConnectingPoint num="49" id="4258" />
+<TGConnectingPoint num="50" id="4259" />
+<TGConnectingPoint num="51" id="4260" />
+<TGConnectingPoint num="52" id="4261" />
+<TGConnectingPoint num="53" id="4262" />
+<TGConnectingPoint num="54" id="4263" />
+<TGConnectingPoint num="55" id="4264" />
+<TGConnectingPoint num="56" id="4265" />
+<TGConnectingPoint num="57" id="4266" />
+<TGConnectingPoint num="58" id="4267" />
+<TGConnectingPoint num="59" id="4268" />
+<TGConnectingPoint num="60" id="4269" />
+<TGConnectingPoint num="61" id="4270" />
+<TGConnectingPoint num="62" id="4271" />
+<TGConnectingPoint num="63" id="4272" />
+<TGConnectingPoint num="64" id="4273" />
+<TGConnectingPoint num="65" id="4274" />
+<TGConnectingPoint num="66" id="4275" />
+<TGConnectingPoint num="67" id="4276" />
+<TGConnectingPoint num="68" id="4277" />
+<TGConnectingPoint num="69" id="4278" />
+<TGConnectingPoint num="70" id="4279" />
+<TGConnectingPoint num="71" id="4280" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="4283" index="14" uid="734eacd0-6019-4edc-93dc-6618eb12595b" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4282" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="Design__20230623_175303" tabs="Block Diagram$Coffee_Machine$Button$Coin$Beverage" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<considerTimingOperators value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="4285" index="0" uid="4b3934df-0738-4736-a969-185f9792d4f8" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4284" />
+<P1  x="618" y="140" id="4293" />
+<P2  x="532" y="200" id="4374" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in beveragePrepared()" />
+<oso value="out beveragePrepared()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="4287" index="1" uid="7b771484-4522-4fc2-85b3-e50a767f3e53" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4286" />
+<P1  x="221" y="40" id="4431" />
+<P2  x="618" y="49" id="4290" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in prepareBeverage(int beverageType)" />
+<oso value="out prepareBeverage(int beverageType)" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="4289" index="2" uid="563a1979-f81a-4c95-920d-8f732a093607" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4288" />
+<P1  x="115" y="248" id="4419" />
+<P2  x="105" y="383" id="4331" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in ejectCoin()" />
+<oso value="out ejectCoin()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5000" id="4330" index="3" uid="7fa76a2f-14b0-4f72-9334-8bdaff7703c7" >
+<cdparam x="618" y="49" />
+<sizeparam width="299" height="183" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Beverage" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4290" />
+<TGConnectingPoint num="1" id="4291" />
+<TGConnectingPoint num="2" id="4292" />
+<TGConnectingPoint num="3" id="4293" />
+<TGConnectingPoint num="4" id="4294" />
+<TGConnectingPoint num="5" id="4295" />
+<TGConnectingPoint num="6" id="4296" />
+<TGConnectingPoint num="7" id="4297" />
+<TGConnectingPoint num="8" id="4298" />
+<TGConnectingPoint num="9" id="4299" />
+<TGConnectingPoint num="10" id="4300" />
+<TGConnectingPoint num="11" id="4301" />
+<TGConnectingPoint num="12" id="4302" />
+<TGConnectingPoint num="13" id="4303" />
+<TGConnectingPoint num="14" id="4304" />
+<TGConnectingPoint num="15" id="4305" />
+<TGConnectingPoint num="16" id="4306" />
+<TGConnectingPoint num="17" id="4307" />
+<TGConnectingPoint num="18" id="4308" />
+<TGConnectingPoint num="19" id="4309" />
+<TGConnectingPoint num="20" id="4310" />
+<TGConnectingPoint num="21" id="4311" />
+<TGConnectingPoint num="22" id="4312" />
+<TGConnectingPoint num="23" id="4313" />
+<TGConnectingPoint num="24" id="4314" />
+<TGConnectingPoint num="25" id="4315" />
+<TGConnectingPoint num="26" id="4316" />
+<TGConnectingPoint num="27" id="4317" />
+<TGConnectingPoint num="28" id="4318" />
+<TGConnectingPoint num="29" id="4319" />
+<TGConnectingPoint num="30" id="4320" />
+<TGConnectingPoint num="31" id="4321" />
+<TGConnectingPoint num="32" id="4322" />
+<TGConnectingPoint num="33" id="4323" />
+<TGConnectingPoint num="34" id="4324" />
+<TGConnectingPoint num="35" id="4325" />
+<TGConnectingPoint num="36" id="4326" />
+<TGConnectingPoint num="37" id="4327" />
+<TGConnectingPoint num="38" id="4328" />
+<TGConnectingPoint num="39" id="4329" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="beverageType" value="0" type="8" typeOther="" />
+<Signal value="in prepareBeverage(int beverageType)" attached="true" />
+<Signal value="out beveragePrepared()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4371" index="4" uid="91d404fc-e66e-4bc5-aaf4-608c93eeb6d7" >
+<cdparam x="105" y="383" />
+<sizeparam width="253" height="170" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Coin" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4331" />
+<TGConnectingPoint num="1" id="4332" />
+<TGConnectingPoint num="2" id="4333" />
+<TGConnectingPoint num="3" id="4334" />
+<TGConnectingPoint num="4" id="4335" />
+<TGConnectingPoint num="5" id="4336" />
+<TGConnectingPoint num="6" id="4337" />
+<TGConnectingPoint num="7" id="4338" />
+<TGConnectingPoint num="8" id="4339" />
+<TGConnectingPoint num="9" id="4340" />
+<TGConnectingPoint num="10" id="4341" />
+<TGConnectingPoint num="11" id="4342" />
+<TGConnectingPoint num="12" id="4343" />
+<TGConnectingPoint num="13" id="4344" />
+<TGConnectingPoint num="14" id="4345" />
+<TGConnectingPoint num="15" id="4346" />
+<TGConnectingPoint num="16" id="4347" />
+<TGConnectingPoint num="17" id="4348" />
+<TGConnectingPoint num="18" id="4349" />
+<TGConnectingPoint num="19" id="4350" />
+<TGConnectingPoint num="20" id="4351" />
+<TGConnectingPoint num="21" id="4352" />
+<TGConnectingPoint num="22" id="4353" />
+<TGConnectingPoint num="23" id="4354" />
+<TGConnectingPoint num="24" id="4355" />
+<TGConnectingPoint num="25" id="4356" />
+<TGConnectingPoint num="26" id="4357" />
+<TGConnectingPoint num="27" id="4358" />
+<TGConnectingPoint num="28" id="4359" />
+<TGConnectingPoint num="29" id="4360" />
+<TGConnectingPoint num="30" id="4361" />
+<TGConnectingPoint num="31" id="4362" />
+<TGConnectingPoint num="32" id="4363" />
+<TGConnectingPoint num="33" id="4364" />
+<TGConnectingPoint num="34" id="4365" />
+<TGConnectingPoint num="35" id="4366" />
+<TGConnectingPoint num="36" id="4367" />
+<TGConnectingPoint num="37" id="4368" />
+<TGConnectingPoint num="38" id="4369" />
+<TGConnectingPoint num="39" id="4370" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="coinValue" value="0" type="8" typeOther="" />
+<Signal value="out coinInserted()" attached="false" />
+<Signal value="in coinInserted()" attached="false" />
+<Signal value="in ejectCoin()" attached="true" />
+<Signal value="out coinEjected()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4412" index="5" uid="71007c67-25d0-4aeb-8e2b-f57b52b5bf2a" >
+<cdparam x="309" y="200" />
+<sizeparam width="223" height="124" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Button" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4372" />
+<TGConnectingPoint num="1" id="4373" />
+<TGConnectingPoint num="2" id="4374" />
+<TGConnectingPoint num="3" id="4375" />
+<TGConnectingPoint num="4" id="4376" />
+<TGConnectingPoint num="5" id="4377" />
+<TGConnectingPoint num="6" id="4378" />
+<TGConnectingPoint num="7" id="4379" />
+<TGConnectingPoint num="8" id="4380" />
+<TGConnectingPoint num="9" id="4381" />
+<TGConnectingPoint num="10" id="4382" />
+<TGConnectingPoint num="11" id="4383" />
+<TGConnectingPoint num="12" id="4384" />
+<TGConnectingPoint num="13" id="4385" />
+<TGConnectingPoint num="14" id="4386" />
+<TGConnectingPoint num="15" id="4387" />
+<TGConnectingPoint num="16" id="4388" />
+<TGConnectingPoint num="17" id="4389" />
+<TGConnectingPoint num="18" id="4390" />
+<TGConnectingPoint num="19" id="4391" />
+<TGConnectingPoint num="20" id="4392" />
+<TGConnectingPoint num="21" id="4393" />
+<TGConnectingPoint num="22" id="4394" />
+<TGConnectingPoint num="23" id="4395" />
+<TGConnectingPoint num="24" id="4396" />
+<TGConnectingPoint num="25" id="4397" />
+<TGConnectingPoint num="26" id="4398" />
+<TGConnectingPoint num="27" id="4399" />
+<TGConnectingPoint num="28" id="4400" />
+<TGConnectingPoint num="29" id="4401" />
+<TGConnectingPoint num="30" id="4402" />
+<TGConnectingPoint num="31" id="4403" />
+<TGConnectingPoint num="32" id="4404" />
+<TGConnectingPoint num="33" id="4405" />
+<TGConnectingPoint num="34" id="4406" />
+<TGConnectingPoint num="35" id="4407" />
+<TGConnectingPoint num="36" id="4408" />
+<TGConnectingPoint num="37" id="4409" />
+<TGConnectingPoint num="38" id="4410" />
+<TGConnectingPoint num="39" id="4411" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="buttonType" value="0" type="8" typeOther="" />
+<Signal value="out prepareBeverage(int beverageType)" attached="false" />
+<Signal value="in beveragePrepared()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4453" index="6" uid="135d2ca0-43bf-412d-b374-28d4130a5da9" >
+<cdparam x="10" y="40" />
+<sizeparam width="211" height="208" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Coffee_Machine" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4413" />
+<TGConnectingPoint num="1" id="4414" />
+<TGConnectingPoint num="2" id="4415" />
+<TGConnectingPoint num="3" id="4416" />
+<TGConnectingPoint num="4" id="4417" />
+<TGConnectingPoint num="5" id="4418" />
+<TGConnectingPoint num="6" id="4419" />
+<TGConnectingPoint num="7" id="4420" />
+<TGConnectingPoint num="8" id="4421" />
+<TGConnectingPoint num="9" id="4422" />
+<TGConnectingPoint num="10" id="4423" />
+<TGConnectingPoint num="11" id="4424" />
+<TGConnectingPoint num="12" id="4425" />
+<TGConnectingPoint num="13" id="4426" />
+<TGConnectingPoint num="14" id="4427" />
+<TGConnectingPoint num="15" id="4428" />
+<TGConnectingPoint num="16" id="4429" />
+<TGConnectingPoint num="17" id="4430" />
+<TGConnectingPoint num="18" id="4431" />
+<TGConnectingPoint num="19" id="4432" />
+<TGConnectingPoint num="20" id="4433" />
+<TGConnectingPoint num="21" id="4434" />
+<TGConnectingPoint num="22" id="4435" />
+<TGConnectingPoint num="23" id="4436" />
+<TGConnectingPoint num="24" id="4437" />
+<TGConnectingPoint num="25" id="4438" />
+<TGConnectingPoint num="26" id="4439" />
+<TGConnectingPoint num="27" id="4440" />
+<TGConnectingPoint num="28" id="4441" />
+<TGConnectingPoint num="29" id="4442" />
+<TGConnectingPoint num="30" id="4443" />
+<TGConnectingPoint num="31" id="4444" />
+<TGConnectingPoint num="32" id="4445" />
+<TGConnectingPoint num="33" id="4446" />
+<TGConnectingPoint num="34" id="4447" />
+<TGConnectingPoint num="35" id="4448" />
+<TGConnectingPoint num="36" id="4449" />
+<TGConnectingPoint num="37" id="4450" />
+<TGConnectingPoint num="38" id="4451" />
+<TGConnectingPoint num="39" id="4452" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="isCoinInserted" value="false" type="4" typeOther="" />
+<Attribute access="0" var="0" id="firstCoinTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="beverageSelectionTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="beveragePreparationTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="isBeveragePrepared" value="false" type="4" typeOther="" />
+<Signal value="in coinInserted()" attached="false" />
+<Signal value="out ejectCoin()" attached="true" />
+<Signal value="out prepareBeverage(int beverageType)" attached="true" />
+<Signal value="in coin1Inserted()" attached="false" />
+<Signal value="in coin2Inserted()" attached="false" />
+<Signal value="in selectionTimeout()" attached="false" />
+<Signal value="in beverageTimeout()" attached="false" />
+<Signal value="in teaButtonPressed()" attached="false" />
+<Signal value="in coffeeButtonPressed()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Coffee_Machine" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4460" index="0" uid="462dbd6b-5f7a-4bc7-b2a3-668c9321ab57" >
+<cdparam x="182" y="36" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4459" />
+<P1  x="182" y="36" id="4463" />
+<P2  x="185" y="76" id="4461" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4458" index="3" uid="62013a95-23be-4975-9a12-ed183782de63" >
+<father id="4460" num="0" />
+<cdparam x="183" y="56" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4454" />
+<TGConnectingPoint num="1" id="4455" />
+<TGConnectingPoint num="2" id="4456" />
+<TGConnectingPoint num="3" id="4457" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="4462" index="1" uid="8ea31501-12cb-47c8-93b1-d814c216d44d" >
+<cdparam x="175" y="81" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4461" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="4464" index="2" uid="60fd36c2-715f-467c-9d35-66fecffdc048" >
+<cdparam x="175" y="16" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4463" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Button" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4471" index="0" uid="7f3393ce-cb7c-47c5-99e9-91fcda4a8f92" >
+<cdparam x="191" y="58" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4470" />
+<P1  x="191" y="58" id="4474" />
+<P2  x="201" y="96" id="4472" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4469" index="3" uid="3dcd0b79-e4da-408d-ae80-060e8de2e840" >
+<father id="4471" num="0" />
+<cdparam x="196" y="77" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4465" />
+<TGConnectingPoint num="1" id="4466" />
+<TGConnectingPoint num="2" id="4467" />
+<TGConnectingPoint num="3" id="4468" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="4473" index="1" uid="966a6647-4a39-4920-ab2f-737fc5ca2ce5" >
+<cdparam x="191" y="101" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4472" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="4475" index="2" uid="ea20d0fb-7ea2-44cb-846e-e20df2fe66e7" >
+<cdparam x="184" y="38" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4474" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Coin" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4482" index="0" uid="dbdbbc80-a161-4dc5-a74f-3fa852853284" >
+<cdparam x="211" y="67" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4481" />
+<P1  x="211" y="67" id="4485" />
+<P2  x="217" y="102" id="4483" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4480" index="3" uid="96b8ff32-4557-4bfb-b652-4e98194e4a93" >
+<father id="4482" num="0" />
+<cdparam x="214" y="84" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4476" />
+<TGConnectingPoint num="1" id="4477" />
+<TGConnectingPoint num="2" id="4478" />
+<TGConnectingPoint num="3" id="4479" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="4484" index="1" uid="8404e460-ccff-474c-8c00-7d3f3c7d9c6a" >
+<cdparam x="207" y="107" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4483" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="4486" index="2" uid="30385ae9-56e2-427f-b2f3-3e00f38c7dd7" >
+<cdparam x="204" y="47" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4485" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Beverage" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4493" index="0" uid="febd9236-15ac-43f9-8149-a82b0d5546a4" >
+<cdparam x="192" y="110" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4492" />
+<P1  x="192" y="110" id="4496" />
+<P2  x="218" y="181" id="4494" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4491" index="3" uid="0417dc3d-755b-4bf2-a414-69828085be61" >
+<father id="4493" num="0" />
+<cdparam x="205" y="145" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4487" />
+<TGConnectingPoint num="1" id="4488" />
+<TGConnectingPoint num="2" id="4489" />
+<TGConnectingPoint num="3" id="4490" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="4495" index="1" uid="d9f6a53e-01bd-4655-a9ec-e318da5b5432" >
+<cdparam x="208" y="186" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4494" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="4497" index="2" uid="e4a2e05b-974b-4542-8eff-94cc702a54f7" >
+<cdparam x="185" y="90" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4496" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="Design__20230623_181115" tabs="Block Diagram$Beverage$Coin$Button$Coffee_Machine" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<considerTimingOperators value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="4499" index="0" uid="f40a44b9-097e-4dbf-9231-7ea14b220096" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4498" />
+<P1  x="115" y="248" id="4510" />
+<P2  x="105" y="383" id="4586" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<iso value="in coinInserted()" />
+<osd value="out coinInserted()" />
+<isd value="in ejectCoin()" />
+<oso value="out ejectCoin()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="4501" index="1" uid="bd67f699-c868-48e7-b2aa-68f199b2fbd3" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4500" />
+<P1  x="221" y="40" id="4506" />
+<P2  x="618" y="49" id="4627" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in prepareBeverage(int beverageType)" />
+<oso value="out prepareBeverage(int beverageType)" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="5002" id="4503" index="2" uid="9da9e513-26f2-4d05-a206-a75fb8eca909" >
+<cdparam x="0" y="0" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="4502" />
+<P1  x="618" y="186" id="4639" />
+<P2  x="532" y="200" id="4547" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in beveragePrepared()" />
+<oso value="out beveragePrepared()" />
+<FIFOType asynchronous="false" synchronousCH="true" size="1024" blocking="false" private="false" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5000" id="4544" index="3" uid="cfcd5722-fa28-40a9-8770-49d65f9d44b1" >
+<cdparam x="10" y="40" />
+<sizeparam width="211" height="208" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Coffee_Machine" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4504" />
+<TGConnectingPoint num="1" id="4505" />
+<TGConnectingPoint num="2" id="4506" />
+<TGConnectingPoint num="3" id="4507" />
+<TGConnectingPoint num="4" id="4508" />
+<TGConnectingPoint num="5" id="4509" />
+<TGConnectingPoint num="6" id="4510" />
+<TGConnectingPoint num="7" id="4511" />
+<TGConnectingPoint num="8" id="4512" />
+<TGConnectingPoint num="9" id="4513" />
+<TGConnectingPoint num="10" id="4514" />
+<TGConnectingPoint num="11" id="4515" />
+<TGConnectingPoint num="12" id="4516" />
+<TGConnectingPoint num="13" id="4517" />
+<TGConnectingPoint num="14" id="4518" />
+<TGConnectingPoint num="15" id="4519" />
+<TGConnectingPoint num="16" id="4520" />
+<TGConnectingPoint num="17" id="4521" />
+<TGConnectingPoint num="18" id="4522" />
+<TGConnectingPoint num="19" id="4523" />
+<TGConnectingPoint num="20" id="4524" />
+<TGConnectingPoint num="21" id="4525" />
+<TGConnectingPoint num="22" id="4526" />
+<TGConnectingPoint num="23" id="4527" />
+<TGConnectingPoint num="24" id="4528" />
+<TGConnectingPoint num="25" id="4529" />
+<TGConnectingPoint num="26" id="4530" />
+<TGConnectingPoint num="27" id="4531" />
+<TGConnectingPoint num="28" id="4532" />
+<TGConnectingPoint num="29" id="4533" />
+<TGConnectingPoint num="30" id="4534" />
+<TGConnectingPoint num="31" id="4535" />
+<TGConnectingPoint num="32" id="4536" />
+<TGConnectingPoint num="33" id="4537" />
+<TGConnectingPoint num="34" id="4538" />
+<TGConnectingPoint num="35" id="4539" />
+<TGConnectingPoint num="36" id="4540" />
+<TGConnectingPoint num="37" id="4541" />
+<TGConnectingPoint num="38" id="4542" />
+<TGConnectingPoint num="39" id="4543" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="isCoinInserted" value="false" type="4" typeOther="" />
+<Attribute access="0" var="0" id="firstCoinTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="beverageSelectionTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="beveragePreparationTime" value="0" type="8" typeOther="" />
+<Attribute access="0" var="0" id="isBeveragePrepared" value="false" type="4" typeOther="" />
+<Signal value="in coinInserted()" attached="true" />
+<Signal value="out ejectCoin()" attached="true" />
+<Signal value="out prepareBeverage(int beverageType)" attached="true" />
+<Signal value="in coin1Inserted()" attached="false" />
+<Signal value="in coin2Inserted()" attached="false" />
+<Signal value="in selectionTimeout()" attached="false" />
+<Signal value="in beverageTimeout()" attached="false" />
+<Signal value="in teaButtonPressed()" attached="false" />
+<Signal value="in coffeeButtonPressed()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4585" index="4" uid="68d761db-3e11-4362-a54c-19b4c4671fa8" >
+<cdparam x="309" y="200" />
+<sizeparam width="223" height="124" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Button" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4545" />
+<TGConnectingPoint num="1" id="4546" />
+<TGConnectingPoint num="2" id="4547" />
+<TGConnectingPoint num="3" id="4548" />
+<TGConnectingPoint num="4" id="4549" />
+<TGConnectingPoint num="5" id="4550" />
+<TGConnectingPoint num="6" id="4551" />
+<TGConnectingPoint num="7" id="4552" />
+<TGConnectingPoint num="8" id="4553" />
+<TGConnectingPoint num="9" id="4554" />
+<TGConnectingPoint num="10" id="4555" />
+<TGConnectingPoint num="11" id="4556" />
+<TGConnectingPoint num="12" id="4557" />
+<TGConnectingPoint num="13" id="4558" />
+<TGConnectingPoint num="14" id="4559" />
+<TGConnectingPoint num="15" id="4560" />
+<TGConnectingPoint num="16" id="4561" />
+<TGConnectingPoint num="17" id="4562" />
+<TGConnectingPoint num="18" id="4563" />
+<TGConnectingPoint num="19" id="4564" />
+<TGConnectingPoint num="20" id="4565" />
+<TGConnectingPoint num="21" id="4566" />
+<TGConnectingPoint num="22" id="4567" />
+<TGConnectingPoint num="23" id="4568" />
+<TGConnectingPoint num="24" id="4569" />
+<TGConnectingPoint num="25" id="4570" />
+<TGConnectingPoint num="26" id="4571" />
+<TGConnectingPoint num="27" id="4572" />
+<TGConnectingPoint num="28" id="4573" />
+<TGConnectingPoint num="29" id="4574" />
+<TGConnectingPoint num="30" id="4575" />
+<TGConnectingPoint num="31" id="4576" />
+<TGConnectingPoint num="32" id="4577" />
+<TGConnectingPoint num="33" id="4578" />
+<TGConnectingPoint num="34" id="4579" />
+<TGConnectingPoint num="35" id="4580" />
+<TGConnectingPoint num="36" id="4581" />
+<TGConnectingPoint num="37" id="4582" />
+<TGConnectingPoint num="38" id="4583" />
+<TGConnectingPoint num="39" id="4584" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="buttonType" value="0" type="8" typeOther="" />
+<Signal value="out prepareBeverage(int beverageType)" attached="false" />
+<Signal value="in beveragePrepared()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4626" index="5" uid="1f2faee5-a5d7-438b-b9d0-6c498e1b8b45" >
+<cdparam x="105" y="383" />
+<sizeparam width="253" height="170" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Coin" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4586" />
+<TGConnectingPoint num="1" id="4587" />
+<TGConnectingPoint num="2" id="4588" />
+<TGConnectingPoint num="3" id="4589" />
+<TGConnectingPoint num="4" id="4590" />
+<TGConnectingPoint num="5" id="4591" />
+<TGConnectingPoint num="6" id="4592" />
+<TGConnectingPoint num="7" id="4593" />
+<TGConnectingPoint num="8" id="4594" />
+<TGConnectingPoint num="9" id="4595" />
+<TGConnectingPoint num="10" id="4596" />
+<TGConnectingPoint num="11" id="4597" />
+<TGConnectingPoint num="12" id="4598" />
+<TGConnectingPoint num="13" id="4599" />
+<TGConnectingPoint num="14" id="4600" />
+<TGConnectingPoint num="15" id="4601" />
+<TGConnectingPoint num="16" id="4602" />
+<TGConnectingPoint num="17" id="4603" />
+<TGConnectingPoint num="18" id="4604" />
+<TGConnectingPoint num="19" id="4605" />
+<TGConnectingPoint num="20" id="4606" />
+<TGConnectingPoint num="21" id="4607" />
+<TGConnectingPoint num="22" id="4608" />
+<TGConnectingPoint num="23" id="4609" />
+<TGConnectingPoint num="24" id="4610" />
+<TGConnectingPoint num="25" id="4611" />
+<TGConnectingPoint num="26" id="4612" />
+<TGConnectingPoint num="27" id="4613" />
+<TGConnectingPoint num="28" id="4614" />
+<TGConnectingPoint num="29" id="4615" />
+<TGConnectingPoint num="30" id="4616" />
+<TGConnectingPoint num="31" id="4617" />
+<TGConnectingPoint num="32" id="4618" />
+<TGConnectingPoint num="33" id="4619" />
+<TGConnectingPoint num="34" id="4620" />
+<TGConnectingPoint num="35" id="4621" />
+<TGConnectingPoint num="36" id="4622" />
+<TGConnectingPoint num="37" id="4623" />
+<TGConnectingPoint num="38" id="4624" />
+<TGConnectingPoint num="39" id="4625" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="coinValue" value="0" type="8" typeOther="" />
+<Signal value="out coinInserted()" attached="true" />
+<Signal value="in coinInserted()" attached="false" />
+<Signal value="in ejectCoin()" attached="true" />
+<Signal value="out coinEjected()" attached="false" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5000" id="4667" index="6" uid="1280eafd-d6fc-4258-9bc3-686bcf44f699" >
+<cdparam x="618" y="49" />
+<sizeparam width="299" height="183" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Block" value="Beverage" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4627" />
+<TGConnectingPoint num="1" id="4628" />
+<TGConnectingPoint num="2" id="4629" />
+<TGConnectingPoint num="3" id="4630" />
+<TGConnectingPoint num="4" id="4631" />
+<TGConnectingPoint num="5" id="4632" />
+<TGConnectingPoint num="6" id="4633" />
+<TGConnectingPoint num="7" id="4634" />
+<TGConnectingPoint num="8" id="4635" />
+<TGConnectingPoint num="9" id="4636" />
+<TGConnectingPoint num="10" id="4637" />
+<TGConnectingPoint num="11" id="4638" />
+<TGConnectingPoint num="12" id="4639" />
+<TGConnectingPoint num="13" id="4640" />
+<TGConnectingPoint num="14" id="4641" />
+<TGConnectingPoint num="15" id="4642" />
+<TGConnectingPoint num="16" id="4643" />
+<TGConnectingPoint num="17" id="4644" />
+<TGConnectingPoint num="18" id="4645" />
+<TGConnectingPoint num="19" id="4646" />
+<TGConnectingPoint num="20" id="4647" />
+<TGConnectingPoint num="21" id="4648" />
+<TGConnectingPoint num="22" id="4649" />
+<TGConnectingPoint num="23" id="4650" />
+<TGConnectingPoint num="24" id="4651" />
+<TGConnectingPoint num="25" id="4652" />
+<TGConnectingPoint num="26" id="4653" />
+<TGConnectingPoint num="27" id="4654" />
+<TGConnectingPoint num="28" id="4655" />
+<TGConnectingPoint num="29" id="4656" />
+<TGConnectingPoint num="30" id="4657" />
+<TGConnectingPoint num="31" id="4658" />
+<TGConnectingPoint num="32" id="4659" />
+<TGConnectingPoint num="33" id="4660" />
+<TGConnectingPoint num="34" id="4661" />
+<TGConnectingPoint num="35" id="4662" />
+<TGConnectingPoint num="36" id="4663" />
+<TGConnectingPoint num="37" id="4664" />
+<TGConnectingPoint num="38" id="4665" />
+<TGConnectingPoint num="39" id="4666" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Attribute access="0" var="0" id="beverageType" value="0" type="8" typeOther="" />
+<Signal value="in prepareBeverage(int beverageType)" attached="true" />
+<Signal value="out beveragePrepared()" attached="true" />
+</extraparam>
+</COMPONENT>
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Beverage" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4674" index="0" uid="39ba422e-da2f-486f-b5b8-76b35d1c2602" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4673" />
+<P1  x="450" y="190" id="4786" />
+<P2  x="471" y="240" id="4708" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4672" index="8" uid="17a2e788-1419-4733-aec9-f6c3954c412e" >
+<father id="4674" num="0" />
+<cdparam x="460" y="215" />
+<sizeparam width="154" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4668" />
+<TGConnectingPoint num="1" id="4669" />
+<TGConnectingPoint num="2" id="4670" />
+<TGConnectingPoint num="3" id="4671" />
+<extraparam>
+<guard value="prepareBeveragereceived" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4681" index="1" uid="3b074c8b-bec8-4927-8c59-9927fca5e207" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4680" />
+<P1  x="407" y="60" id="4853" />
+<P2  x="450" y="140" id="4781" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4679" index="9" uid="7c9ccd82-297d-42e2-bbb3-bb7c05d08030" >
+<father id="4681" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4675" />
+<TGConnectingPoint num="1" id="4676" />
+<TGConnectingPoint num="2" id="4677" />
+<TGConnectingPoint num="3" id="4678" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4688" index="2" uid="d6298545-4fa6-4508-9681-7f27ff8d9002" >
+<cdparam x="415" y="365" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4687" />
+<P1  x="415" y="365" id="4697" />
+<P2  x="500" y="165" id="4784" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4686" index="10" uid="b28244f6-c6f1-4699-a5be-862370836109" >
+<father id="4688" num="0" />
+<cdparam x="457" y="265" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4682" />
+<TGConnectingPoint num="1" id="4683" />
+<TGConnectingPoint num="2" id="4684" />
+<TGConnectingPoint num="3" id="4685" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4695" index="3" uid="d10be12a-d418-44cf-9282-9907973ef723" >
+<cdparam x="471" y="290" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4694" />
+<P1  x="471" y="290" id="4713" />
+<P2  x="415" y="335" id="4696" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4693" index="11" uid="cdb7c63e-11bb-4958-90a8-d6a49a7d98bb" >
+<father id="4695" num="0" />
+<cdparam x="443" y="312" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4689" />
+<TGConnectingPoint num="1" id="4690" />
+<TGConnectingPoint num="2" id="4691" />
+<TGConnectingPoint num="3" id="4692" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5103" id="4706" index="4" uid="0ff8673f-84fc-42d8-adee-e1fca28cf005" >
+<cdparam x="352" y="340" />
+<sizeparam width="126" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="beveragePrepared()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4696" />
+<TGConnectingPoint num="1" id="4697" />
+<TGConnectingPoint num="2" id="4698" />
+<TGConnectingPoint num="3" id="4699" />
+<TGConnectingPoint num="4" id="4700" />
+<TGConnectingPoint num="5" id="4701" />
+<TGConnectingPoint num="6" id="4702" />
+<TGConnectingPoint num="7" id="4703" />
+<TGConnectingPoint num="8" id="4704" />
+<TGConnectingPoint num="9" id="4705" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="4779" index="5" uid="3e3b7162-400b-458d-82f6-b528d248cc8e" >
+<cdparam x="400" y="240" />
+<sizeparam width="143" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="BeverageReady" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4707" />
+<TGConnectingPoint num="1" id="4708" />
+<TGConnectingPoint num="2" id="4709" />
+<TGConnectingPoint num="3" id="4710" />
+<TGConnectingPoint num="4" id="4711" />
+<TGConnectingPoint num="5" id="4712" />
+<TGConnectingPoint num="6" id="4713" />
+<TGConnectingPoint num="7" id="4714" />
+<TGConnectingPoint num="8" id="4715" />
+<TGConnectingPoint num="9" id="4716" />
+<TGConnectingPoint num="10" id="4717" />
+<TGConnectingPoint num="11" id="4718" />
+<TGConnectingPoint num="12" id="4719" />
+<TGConnectingPoint num="13" id="4720" />
+<TGConnectingPoint num="14" id="4721" />
+<TGConnectingPoint num="15" id="4722" />
+<TGConnectingPoint num="16" id="4723" />
+<TGConnectingPoint num="17" id="4724" />
+<TGConnectingPoint num="18" id="4725" />
+<TGConnectingPoint num="19" id="4726" />
+<TGConnectingPoint num="20" id="4727" />
+<TGConnectingPoint num="21" id="4728" />
+<TGConnectingPoint num="22" id="4729" />
+<TGConnectingPoint num="23" id="4730" />
+<TGConnectingPoint num="24" id="4731" />
+<TGConnectingPoint num="25" id="4732" />
+<TGConnectingPoint num="26" id="4733" />
+<TGConnectingPoint num="27" id="4734" />
+<TGConnectingPoint num="28" id="4735" />
+<TGConnectingPoint num="29" id="4736" />
+<TGConnectingPoint num="30" id="4737" />
+<TGConnectingPoint num="31" id="4738" />
+<TGConnectingPoint num="32" id="4739" />
+<TGConnectingPoint num="33" id="4740" />
+<TGConnectingPoint num="34" id="4741" />
+<TGConnectingPoint num="35" id="4742" />
+<TGConnectingPoint num="36" id="4743" />
+<TGConnectingPoint num="37" id="4744" />
+<TGConnectingPoint num="38" id="4745" />
+<TGConnectingPoint num="39" id="4746" />
+<TGConnectingPoint num="40" id="4747" />
+<TGConnectingPoint num="41" id="4748" />
+<TGConnectingPoint num="42" id="4749" />
+<TGConnectingPoint num="43" id="4750" />
+<TGConnectingPoint num="44" id="4751" />
+<TGConnectingPoint num="45" id="4752" />
+<TGConnectingPoint num="46" id="4753" />
+<TGConnectingPoint num="47" id="4754" />
+<TGConnectingPoint num="48" id="4755" />
+<TGConnectingPoint num="49" id="4756" />
+<TGConnectingPoint num="50" id="4757" />
+<TGConnectingPoint num="51" id="4758" />
+<TGConnectingPoint num="52" id="4759" />
+<TGConnectingPoint num="53" id="4760" />
+<TGConnectingPoint num="54" id="4761" />
+<TGConnectingPoint num="55" id="4762" />
+<TGConnectingPoint num="56" id="4763" />
+<TGConnectingPoint num="57" id="4764" />
+<TGConnectingPoint num="58" id="4765" />
+<TGConnectingPoint num="59" id="4766" />
+<TGConnectingPoint num="60" id="4767" />
+<TGConnectingPoint num="61" id="4768" />
+<TGConnectingPoint num="62" id="4769" />
+<TGConnectingPoint num="63" id="4770" />
+<TGConnectingPoint num="64" id="4771" />
+<TGConnectingPoint num="65" id="4772" />
+<TGConnectingPoint num="66" id="4773" />
+<TGConnectingPoint num="67" id="4774" />
+<TGConnectingPoint num="68" id="4775" />
+<TGConnectingPoint num="69" id="4776" />
+<TGConnectingPoint num="70" id="4777" />
+<TGConnectingPoint num="71" id="4778" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="4852" index="6" uid="91456fcb-2ca0-4964-acf4-ea126fa84ee5" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4780" />
+<TGConnectingPoint num="1" id="4781" />
+<TGConnectingPoint num="2" id="4782" />
+<TGConnectingPoint num="3" id="4783" />
+<TGConnectingPoint num="4" id="4784" />
+<TGConnectingPoint num="5" id="4785" />
+<TGConnectingPoint num="6" id="4786" />
+<TGConnectingPoint num="7" id="4787" />
+<TGConnectingPoint num="8" id="4788" />
+<TGConnectingPoint num="9" id="4789" />
+<TGConnectingPoint num="10" id="4790" />
+<TGConnectingPoint num="11" id="4791" />
+<TGConnectingPoint num="12" id="4792" />
+<TGConnectingPoint num="13" id="4793" />
+<TGConnectingPoint num="14" id="4794" />
+<TGConnectingPoint num="15" id="4795" />
+<TGConnectingPoint num="16" id="4796" />
+<TGConnectingPoint num="17" id="4797" />
+<TGConnectingPoint num="18" id="4798" />
+<TGConnectingPoint num="19" id="4799" />
+<TGConnectingPoint num="20" id="4800" />
+<TGConnectingPoint num="21" id="4801" />
+<TGConnectingPoint num="22" id="4802" />
+<TGConnectingPoint num="23" id="4803" />
+<TGConnectingPoint num="24" id="4804" />
+<TGConnectingPoint num="25" id="4805" />
+<TGConnectingPoint num="26" id="4806" />
+<TGConnectingPoint num="27" id="4807" />
+<TGConnectingPoint num="28" id="4808" />
+<TGConnectingPoint num="29" id="4809" />
+<TGConnectingPoint num="30" id="4810" />
+<TGConnectingPoint num="31" id="4811" />
+<TGConnectingPoint num="32" id="4812" />
+<TGConnectingPoint num="33" id="4813" />
+<TGConnectingPoint num="34" id="4814" />
+<TGConnectingPoint num="35" id="4815" />
+<TGConnectingPoint num="36" id="4816" />
+<TGConnectingPoint num="37" id="4817" />
+<TGConnectingPoint num="38" id="4818" />
+<TGConnectingPoint num="39" id="4819" />
+<TGConnectingPoint num="40" id="4820" />
+<TGConnectingPoint num="41" id="4821" />
+<TGConnectingPoint num="42" id="4822" />
+<TGConnectingPoint num="43" id="4823" />
+<TGConnectingPoint num="44" id="4824" />
+<TGConnectingPoint num="45" id="4825" />
+<TGConnectingPoint num="46" id="4826" />
+<TGConnectingPoint num="47" id="4827" />
+<TGConnectingPoint num="48" id="4828" />
+<TGConnectingPoint num="49" id="4829" />
+<TGConnectingPoint num="50" id="4830" />
+<TGConnectingPoint num="51" id="4831" />
+<TGConnectingPoint num="52" id="4832" />
+<TGConnectingPoint num="53" id="4833" />
+<TGConnectingPoint num="54" id="4834" />
+<TGConnectingPoint num="55" id="4835" />
+<TGConnectingPoint num="56" id="4836" />
+<TGConnectingPoint num="57" id="4837" />
+<TGConnectingPoint num="58" id="4838" />
+<TGConnectingPoint num="59" id="4839" />
+<TGConnectingPoint num="60" id="4840" />
+<TGConnectingPoint num="61" id="4841" />
+<TGConnectingPoint num="62" id="4842" />
+<TGConnectingPoint num="63" id="4843" />
+<TGConnectingPoint num="64" id="4844" />
+<TGConnectingPoint num="65" id="4845" />
+<TGConnectingPoint num="66" id="4846" />
+<TGConnectingPoint num="67" id="4847" />
+<TGConnectingPoint num="68" id="4848" />
+<TGConnectingPoint num="69" id="4849" />
+<TGConnectingPoint num="70" id="4850" />
+<TGConnectingPoint num="71" id="4851" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="4854" index="7" uid="92b53be0-2910-4f43-8f4c-72ab3b457a69" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4853" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Coin" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="4861" index="0" uid="3aee321d-2061-476c-9c6c-0058dd5931c5" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4860" />
+<P1  x="407" y="60" id="5232" />
+<P2  x="450" y="140" id="5160" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4859" index="16" uid="0b0e1dcb-c801-45c9-8d7a-c1273c0ec69a" >
+<father id="4861" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4855" />
+<TGConnectingPoint num="1" id="4856" />
+<TGConnectingPoint num="2" id="4857" />
+<TGConnectingPoint num="3" id="4858" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4868" index="1" uid="3eec0ea4-410b-44ac-936d-225b99cbb0b2" >
+<cdparam x="415" y="465" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4867" />
+<P1  x="415" y="465" id="5065" />
+<P2  x="460" y="540" id="4992" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4866" index="17" uid="2fe4b68b-8240-49b5-8df1-72b608daccd2" >
+<father id="4868" num="0" />
+<cdparam x="437" y="502" />
+<sizeparam width="78" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4862" />
+<TGConnectingPoint num="1" id="4863" />
+<TGConnectingPoint num="2" id="4864" />
+<TGConnectingPoint num="3" id="4865" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+<actions value="coinValue=0" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4875" index="2" uid="d6ae9c82-bd41-4030-b0d2-90255680970f" >
+<cdparam x="481" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4874" />
+<P1  x="481" y="390" id="5105" />
+<P2  x="415" y="435" id="5064" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4873" index="18" uid="55526e90-a654-4cf2-b30b-1bf5b17ef672" >
+<father id="4875" num="0" />
+<cdparam x="448" y="412" />
+<sizeparam width="377" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4869" />
+<TGConnectingPoint num="1" id="4870" />
+<TGConnectingPoint num="2" id="4871" />
+<TGConnectingPoint num="3" id="4872" />
+<extraparam>
+<guard value="coinValue == 1andisCoinInsertedand(now()-firstCoinTime)&gt;100" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4882" index="3" uid="06fb5d16-0764-4054-b13d-4960b1e3c88e" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4881" />
+<P1  x="450" y="190" id="5165" />
+<P2  x="415" y="235" id="5148" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4880" index="19" uid="1505fec6-9178-487d-b6a2-758671556fe4" >
+<father id="4882" num="0" />
+<cdparam x="432" y="212" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4876" />
+<TGConnectingPoint num="1" id="4877" />
+<TGConnectingPoint num="2" id="4878" />
+<TGConnectingPoint num="3" id="4879" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4889" index="4" uid="3d307351-a80f-4c46-95ef-af1f8756b4d3" >
+<cdparam x="466" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4888" />
+<P1  x="466" y="390" id="5113" />
+<P2  x="788" y="440" id="4919" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4887" index="20" uid="28af0292-b9e8-4cb0-aa1b-7d216a9cbaa6" >
+<father id="4889" num="0" />
+<cdparam x="627" y="415" />
+<sizeparam width="199" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4883" />
+<TGConnectingPoint num="1" id="4884" />
+<TGConnectingPoint num="2" id="4885" />
+<TGConnectingPoint num="3" id="4886" />
+<extraparam>
+<guard value="coinValue == 2andisCoinInserted" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4896" index="5" uid="bbe8ca9c-a957-41a9-b719-871559646228" >
+<cdparam x="788" y="490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4895" />
+<P1  x="788" y="490" id="4924" />
+<P2  x="500" y="171" id="5185" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4894" index="21" uid="10f71736-c9cf-4859-ab74-0cd50bffc3a8" >
+<father id="4896" num="0" />
+<cdparam x="644" y="330" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4890" />
+<TGConnectingPoint num="1" id="4891" />
+<TGConnectingPoint num="2" id="4892" />
+<TGConnectingPoint num="3" id="4893" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4903" index="6" uid="1997e1ff-6e69-47f6-b167-7af56d0b8ee6" >
+<cdparam x="466" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4902" />
+<P1  x="466" y="390" id="5081" />
+<P2  x="500" y="165" id="5195" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4901" index="22" uid="e834d77e-26a7-44a6-b0e5-285ceede6c7e" >
+<father id="4903" num="0" />
+<cdparam x="483" y="277" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4897" />
+<TGConnectingPoint num="1" id="4898" />
+<TGConnectingPoint num="2" id="4899" />
+<TGConnectingPoint num="3" id="4900" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4910" index="7" uid="cde45a4e-a2bd-4bc4-9dcc-dbd3fd136e6e" >
+<cdparam x="460" y="590" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4909" />
+<P1  x="460" y="590" id="4997" />
+<P2  x="500" y="165" id="5163" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4908" index="23" uid="7420a6f9-f53a-49eb-9203-769600e50e45" >
+<father id="4910" num="0" />
+<cdparam x="480" y="377" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4904" />
+<TGConnectingPoint num="1" id="4905" />
+<TGConnectingPoint num="2" id="4906" />
+<TGConnectingPoint num="3" id="4907" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="4917" index="8" uid="fb303f5b-f012-4043-92ad-2f73e0dc88df" >
+<cdparam x="415" y="265" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="4916" />
+<P1  x="415" y="265" id="5149" />
+<P2  x="466" y="340" id="5076" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4915" index="24" uid="fdc814a3-0cac-4fa9-bf1b-2bb72f603db1" >
+<father id="4917" num="0" />
+<cdparam x="440" y="302" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4911" />
+<TGConnectingPoint num="1" id="4912" />
+<TGConnectingPoint num="2" id="4913" />
+<TGConnectingPoint num="3" id="4914" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5106" id="4990" index="9" uid="78ee2516-d07e-4819-8096-f88f89fc65b0" >
+<cdparam x="700" y="440" />
+<sizeparam width="176" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="TwoCoinsInserted" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4918" />
+<TGConnectingPoint num="1" id="4919" />
+<TGConnectingPoint num="2" id="4920" />
+<TGConnectingPoint num="3" id="4921" />
+<TGConnectingPoint num="4" id="4922" />
+<TGConnectingPoint num="5" id="4923" />
+<TGConnectingPoint num="6" id="4924" />
+<TGConnectingPoint num="7" id="4925" />
+<TGConnectingPoint num="8" id="4926" />
+<TGConnectingPoint num="9" id="4927" />
+<TGConnectingPoint num="10" id="4928" />
+<TGConnectingPoint num="11" id="4929" />
+<TGConnectingPoint num="12" id="4930" />
+<TGConnectingPoint num="13" id="4931" />
+<TGConnectingPoint num="14" id="4932" />
+<TGConnectingPoint num="15" id="4933" />
+<TGConnectingPoint num="16" id="4934" />
+<TGConnectingPoint num="17" id="4935" />
+<TGConnectingPoint num="18" id="4936" />
+<TGConnectingPoint num="19" id="4937" />
+<TGConnectingPoint num="20" id="4938" />
+<TGConnectingPoint num="21" id="4939" />
+<TGConnectingPoint num="22" id="4940" />
+<TGConnectingPoint num="23" id="4941" />
+<TGConnectingPoint num="24" id="4942" />
+<TGConnectingPoint num="25" id="4943" />
+<TGConnectingPoint num="26" id="4944" />
+<TGConnectingPoint num="27" id="4945" />
+<TGConnectingPoint num="28" id="4946" />
+<TGConnectingPoint num="29" id="4947" />
+<TGConnectingPoint num="30" id="4948" />
+<TGConnectingPoint num="31" id="4949" />
+<TGConnectingPoint num="32" id="4950" />
+<TGConnectingPoint num="33" id="4951" />
+<TGConnectingPoint num="34" id="4952" />
+<TGConnectingPoint num="35" id="4953" />
+<TGConnectingPoint num="36" id="4954" />
+<TGConnectingPoint num="37" id="4955" />
+<TGConnectingPoint num="38" id="4956" />
+<TGConnectingPoint num="39" id="4957" />
+<TGConnectingPoint num="40" id="4958" />
+<TGConnectingPoint num="41" id="4959" />
+<TGConnectingPoint num="42" id="4960" />
+<TGConnectingPoint num="43" id="4961" />
+<TGConnectingPoint num="44" id="4962" />
+<TGConnectingPoint num="45" id="4963" />
+<TGConnectingPoint num="46" id="4964" />
+<TGConnectingPoint num="47" id="4965" />
+<TGConnectingPoint num="48" id="4966" />
+<TGConnectingPoint num="49" id="4967" />
+<TGConnectingPoint num="50" id="4968" />
+<TGConnectingPoint num="51" id="4969" />
+<TGConnectingPoint num="52" id="4970" />
+<TGConnectingPoint num="53" id="4971" />
+<TGConnectingPoint num="54" id="4972" />
+<TGConnectingPoint num="55" id="4973" />
+<TGConnectingPoint num="56" id="4974" />
+<TGConnectingPoint num="57" id="4975" />
+<TGConnectingPoint num="58" id="4976" />
+<TGConnectingPoint num="59" id="4977" />
+<TGConnectingPoint num="60" id="4978" />
+<TGConnectingPoint num="61" id="4979" />
+<TGConnectingPoint num="62" id="4980" />
+<TGConnectingPoint num="63" id="4981" />
+<TGConnectingPoint num="64" id="4982" />
+<TGConnectingPoint num="65" id="4983" />
+<TGConnectingPoint num="66" id="4984" />
+<TGConnectingPoint num="67" id="4985" />
+<TGConnectingPoint num="68" id="4986" />
+<TGConnectingPoint num="69" id="4987" />
+<TGConnectingPoint num="70" id="4988" />
+<TGConnectingPoint num="71" id="4989" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="5063" index="10" uid="aa299c2f-9980-42d0-b0de-9615f1850da4" >
+<cdparam x="400" y="540" />
+<sizeparam width="121" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="CoinEjected" />
+<new d="false" />
+<TGConnectingPoint num="0" id="4991" />
+<TGConnectingPoint num="1" id="4992" />
+<TGConnectingPoint num="2" id="4993" />
+<TGConnectingPoint num="3" id="4994" />
+<TGConnectingPoint num="4" id="4995" />
+<TGConnectingPoint num="5" id="4996" />
+<TGConnectingPoint num="6" id="4997" />
+<TGConnectingPoint num="7" id="4998" />
+<TGConnectingPoint num="8" id="4999" />
+<TGConnectingPoint num="9" id="5000" />
+<TGConnectingPoint num="10" id="5001" />
+<TGConnectingPoint num="11" id="5002" />
+<TGConnectingPoint num="12" id="5003" />
+<TGConnectingPoint num="13" id="5004" />
+<TGConnectingPoint num="14" id="5005" />
+<TGConnectingPoint num="15" id="5006" />
+<TGConnectingPoint num="16" id="5007" />
+<TGConnectingPoint num="17" id="5008" />
+<TGConnectingPoint num="18" id="5009" />
+<TGConnectingPoint num="19" id="5010" />
+<TGConnectingPoint num="20" id="5011" />
+<TGConnectingPoint num="21" id="5012" />
+<TGConnectingPoint num="22" id="5013" />
+<TGConnectingPoint num="23" id="5014" />
+<TGConnectingPoint num="24" id="5015" />
+<TGConnectingPoint num="25" id="5016" />
+<TGConnectingPoint num="26" id="5017" />
+<TGConnectingPoint num="27" id="5018" />
+<TGConnectingPoint num="28" id="5019" />
+<TGConnectingPoint num="29" id="5020" />
+<TGConnectingPoint num="30" id="5021" />
+<TGConnectingPoint num="31" id="5022" />
+<TGConnectingPoint num="32" id="5023" />
+<TGConnectingPoint num="33" id="5024" />
+<TGConnectingPoint num="34" id="5025" />
+<TGConnectingPoint num="35" id="5026" />
+<TGConnectingPoint num="36" id="5027" />
+<TGConnectingPoint num="37" id="5028" />
+<TGConnectingPoint num="38" id="5029" />
+<TGConnectingPoint num="39" id="5030" />
+<TGConnectingPoint num="40" id="5031" />
+<TGConnectingPoint num="41" id="5032" />
+<TGConnectingPoint num="42" id="5033" />
+<TGConnectingPoint num="43" id="5034" />
+<TGConnectingPoint num="44" id="5035" />
+<TGConnectingPoint num="45" id="5036" />
+<TGConnectingPoint num="46" id="5037" />
+<TGConnectingPoint num="47" id="5038" />
+<TGConnectingPoint num="48" id="5039" />
+<TGConnectingPoint num="49" id="5040" />
+<TGConnectingPoint num="50" id="5041" />
+<TGConnectingPoint num="51" id="5042" />
+<TGConnectingPoint num="52" id="5043" />
+<TGConnectingPoint num="53" id="5044" />
+<TGConnectingPoint num="54" id="5045" />
+<TGConnectingPoint num="55" id="5046" />
+<TGConnectingPoint num="56" id="5047" />
+<TGConnectingPoint num="57" id="5048" />
+<TGConnectingPoint num="58" id="5049" />
+<TGConnectingPoint num="59" id="5050" />
+<TGConnectingPoint num="60" id="5051" />
+<TGConnectingPoint num="61" id="5052" />
+<TGConnectingPoint num="62" id="5053" />
+<TGConnectingPoint num="63" id="5054" />
+<TGConnectingPoint num="64" id="5055" />
+<TGConnectingPoint num="65" id="5056" />
+<TGConnectingPoint num="66" id="5057" />
+<TGConnectingPoint num="67" id="5058" />
+<TGConnectingPoint num="68" id="5059" />
+<TGConnectingPoint num="69" id="5060" />
+<TGConnectingPoint num="70" id="5061" />
+<TGConnectingPoint num="71" id="5062" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="5074" index="11" uid="cd000e10-6f22-42d4-ac68-fe5f423a33a4" >
+<cdparam x="373" y="440" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="coinEjected()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5064" />
+<TGConnectingPoint num="1" id="5065" />
+<TGConnectingPoint num="2" id="5066" />
+<TGConnectingPoint num="3" id="5067" />
+<TGConnectingPoint num="4" id="5068" />
+<TGConnectingPoint num="5" id="5069" />
+<TGConnectingPoint num="6" id="5070" />
+<TGConnectingPoint num="7" id="5071" />
+<TGConnectingPoint num="8" id="5072" />
+<TGConnectingPoint num="9" id="5073" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="5147" index="12" uid="20caebc7-fa1a-450d-a5e2-06cc78f37eed" >
+<cdparam x="400" y="340" />
+<sizeparam width="132" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="CoinInserted" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5075" />
+<TGConnectingPoint num="1" id="5076" />
+<TGConnectingPoint num="2" id="5077" />
+<TGConnectingPoint num="3" id="5078" />
+<TGConnectingPoint num="4" id="5079" />
+<TGConnectingPoint num="5" id="5080" />
+<TGConnectingPoint num="6" id="5081" />
+<TGConnectingPoint num="7" id="5082" />
+<TGConnectingPoint num="8" id="5083" />
+<TGConnectingPoint num="9" id="5084" />
+<TGConnectingPoint num="10" id="5085" />
+<TGConnectingPoint num="11" id="5086" />
+<TGConnectingPoint num="12" id="5087" />
+<TGConnectingPoint num="13" id="5088" />
+<TGConnectingPoint num="14" id="5089" />
+<TGConnectingPoint num="15" id="5090" />
+<TGConnectingPoint num="16" id="5091" />
+<TGConnectingPoint num="17" id="5092" />
+<TGConnectingPoint num="18" id="5093" />
+<TGConnectingPoint num="19" id="5094" />
+<TGConnectingPoint num="20" id="5095" />
+<TGConnectingPoint num="21" id="5096" />
+<TGConnectingPoint num="22" id="5097" />
+<TGConnectingPoint num="23" id="5098" />
+<TGConnectingPoint num="24" id="5099" />
+<TGConnectingPoint num="25" id="5100" />
+<TGConnectingPoint num="26" id="5101" />
+<TGConnectingPoint num="27" id="5102" />
+<TGConnectingPoint num="28" id="5103" />
+<TGConnectingPoint num="29" id="5104" />
+<TGConnectingPoint num="30" id="5105" />
+<TGConnectingPoint num="31" id="5106" />
+<TGConnectingPoint num="32" id="5107" />
+<TGConnectingPoint num="33" id="5108" />
+<TGConnectingPoint num="34" id="5109" />
+<TGConnectingPoint num="35" id="5110" />
+<TGConnectingPoint num="36" id="5111" />
+<TGConnectingPoint num="37" id="5112" />
+<TGConnectingPoint num="38" id="5113" />
+<TGConnectingPoint num="39" id="5114" />
+<TGConnectingPoint num="40" id="5115" />
+<TGConnectingPoint num="41" id="5116" />
+<TGConnectingPoint num="42" id="5117" />
+<TGConnectingPoint num="43" id="5118" />
+<TGConnectingPoint num="44" id="5119" />
+<TGConnectingPoint num="45" id="5120" />
+<TGConnectingPoint num="46" id="5121" />
+<TGConnectingPoint num="47" id="5122" />
+<TGConnectingPoint num="48" id="5123" />
+<TGConnectingPoint num="49" id="5124" />
+<TGConnectingPoint num="50" id="5125" />
+<TGConnectingPoint num="51" id="5126" />
+<TGConnectingPoint num="52" id="5127" />
+<TGConnectingPoint num="53" id="5128" />
+<TGConnectingPoint num="54" id="5129" />
+<TGConnectingPoint num="55" id="5130" />
+<TGConnectingPoint num="56" id="5131" />
+<TGConnectingPoint num="57" id="5132" />
+<TGConnectingPoint num="58" id="5133" />
+<TGConnectingPoint num="59" id="5134" />
+<TGConnectingPoint num="60" id="5135" />
+<TGConnectingPoint num="61" id="5136" />
+<TGConnectingPoint num="62" id="5137" />
+<TGConnectingPoint num="63" id="5138" />
+<TGConnectingPoint num="64" id="5139" />
+<TGConnectingPoint num="65" id="5140" />
+<TGConnectingPoint num="66" id="5141" />
+<TGConnectingPoint num="67" id="5142" />
+<TGConnectingPoint num="68" id="5143" />
+<TGConnectingPoint num="69" id="5144" />
+<TGConnectingPoint num="70" id="5145" />
+<TGConnectingPoint num="71" id="5146" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="5158" index="13" uid="886d69b7-8fec-49fe-879a-0a8f950729dc" >
+<cdparam x="371" y="240" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="coinInserted()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5148" />
+<TGConnectingPoint num="1" id="5149" />
+<TGConnectingPoint num="2" id="5150" />
+<TGConnectingPoint num="3" id="5151" />
+<TGConnectingPoint num="4" id="5152" />
+<TGConnectingPoint num="5" id="5153" />
+<TGConnectingPoint num="6" id="5154" />
+<TGConnectingPoint num="7" id="5155" />
+<TGConnectingPoint num="8" id="5156" />
+<TGConnectingPoint num="9" id="5157" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="5231" index="14" uid="644ebadc-0a08-488c-912d-6cfd68db352b" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5159" />
+<TGConnectingPoint num="1" id="5160" />
+<TGConnectingPoint num="2" id="5161" />
+<TGConnectingPoint num="3" id="5162" />
+<TGConnectingPoint num="4" id="5163" />
+<TGConnectingPoint num="5" id="5164" />
+<TGConnectingPoint num="6" id="5165" />
+<TGConnectingPoint num="7" id="5166" />
+<TGConnectingPoint num="8" id="5167" />
+<TGConnectingPoint num="9" id="5168" />
+<TGConnectingPoint num="10" id="5169" />
+<TGConnectingPoint num="11" id="5170" />
+<TGConnectingPoint num="12" id="5171" />
+<TGConnectingPoint num="13" id="5172" />
+<TGConnectingPoint num="14" id="5173" />
+<TGConnectingPoint num="15" id="5174" />
+<TGConnectingPoint num="16" id="5175" />
+<TGConnectingPoint num="17" id="5176" />
+<TGConnectingPoint num="18" id="5177" />
+<TGConnectingPoint num="19" id="5178" />
+<TGConnectingPoint num="20" id="5179" />
+<TGConnectingPoint num="21" id="5180" />
+<TGConnectingPoint num="22" id="5181" />
+<TGConnectingPoint num="23" id="5182" />
+<TGConnectingPoint num="24" id="5183" />
+<TGConnectingPoint num="25" id="5184" />
+<TGConnectingPoint num="26" id="5185" />
+<TGConnectingPoint num="27" id="5186" />
+<TGConnectingPoint num="28" id="5187" />
+<TGConnectingPoint num="29" id="5188" />
+<TGConnectingPoint num="30" id="5189" />
+<TGConnectingPoint num="31" id="5190" />
+<TGConnectingPoint num="32" id="5191" />
+<TGConnectingPoint num="33" id="5192" />
+<TGConnectingPoint num="34" id="5193" />
+<TGConnectingPoint num="35" id="5194" />
+<TGConnectingPoint num="36" id="5195" />
+<TGConnectingPoint num="37" id="5196" />
+<TGConnectingPoint num="38" id="5197" />
+<TGConnectingPoint num="39" id="5198" />
+<TGConnectingPoint num="40" id="5199" />
+<TGConnectingPoint num="41" id="5200" />
+<TGConnectingPoint num="42" id="5201" />
+<TGConnectingPoint num="43" id="5202" />
+<TGConnectingPoint num="44" id="5203" />
+<TGConnectingPoint num="45" id="5204" />
+<TGConnectingPoint num="46" id="5205" />
+<TGConnectingPoint num="47" id="5206" />
+<TGConnectingPoint num="48" id="5207" />
+<TGConnectingPoint num="49" id="5208" />
+<TGConnectingPoint num="50" id="5209" />
+<TGConnectingPoint num="51" id="5210" />
+<TGConnectingPoint num="52" id="5211" />
+<TGConnectingPoint num="53" id="5212" />
+<TGConnectingPoint num="54" id="5213" />
+<TGConnectingPoint num="55" id="5214" />
+<TGConnectingPoint num="56" id="5215" />
+<TGConnectingPoint num="57" id="5216" />
+<TGConnectingPoint num="58" id="5217" />
+<TGConnectingPoint num="59" id="5218" />
+<TGConnectingPoint num="60" id="5219" />
+<TGConnectingPoint num="61" id="5220" />
+<TGConnectingPoint num="62" id="5221" />
+<TGConnectingPoint num="63" id="5222" />
+<TGConnectingPoint num="64" id="5223" />
+<TGConnectingPoint num="65" id="5224" />
+<TGConnectingPoint num="66" id="5225" />
+<TGConnectingPoint num="67" id="5226" />
+<TGConnectingPoint num="68" id="5227" />
+<TGConnectingPoint num="69" id="5228" />
+<TGConnectingPoint num="70" id="5229" />
+<TGConnectingPoint num="71" id="5230" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="5233" index="15" uid="23c59b03-918a-4d0e-aea7-b11edd998e4a" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5232" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Button" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="5240" index="0" uid="c5fe365a-79e7-4cf4-8b86-716fede6b69f" >
+<cdparam x="415" y="265" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="5239" />
+<P1  x="415" y="265" id="5354" />
+<P2  x="499" y="340" id="5281" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5238" index="10" uid="c4afb8ab-1411-4849-b6e9-be0ce548a1a1" >
+<father id="5240" num="0" />
+<cdparam x="457" y="302" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5234" />
+<TGConnectingPoint num="1" id="5235" />
+<TGConnectingPoint num="2" id="5236" />
+<TGConnectingPoint num="3" id="5237" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="5247" index="1" uid="45bccbc7-fd89-4cf6-93ad-d9f6818d40c1" >
+<cdparam x="450" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="5246" />
+<P1  x="450" y="190" id="5370" />
+<P2  x="415" y="235" id="5353" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5245" index="11" uid="ebd27c2f-e4e6-45be-966f-a97d98fafa46" >
+<father id="5247" num="0" />
+<cdparam x="432" y="212" />
+<sizeparam width="97" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5241" />
+<TGConnectingPoint num="1" id="5242" />
+<TGConnectingPoint num="2" id="5243" />
+<TGConnectingPoint num="3" id="5244" />
+<extraparam>
+<guard value="buttonType &gt; 0" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="5254" index="2" uid="1f4916a0-672b-44ad-a6bf-fe26f3c2299a" >
+<cdparam x="415" y="465" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="5253" />
+<P1  x="415" y="465" id="5270" />
+<P2  x="500" y="165" id="5368" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5252" index="12" uid="d75ec1b0-5e67-40f4-9a40-49b787b3a2a8" >
+<father id="5254" num="0" />
+<cdparam x="457" y="315" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5248" />
+<TGConnectingPoint num="1" id="5249" />
+<TGConnectingPoint num="2" id="5250" />
+<TGConnectingPoint num="3" id="5251" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="5261" index="3" uid="4b42f4c3-9a4a-4037-baf2-32a5a2358536" >
+<cdparam x="499" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="5260" />
+<P1  x="499" y="390" id="5286" />
+<P2  x="415" y="435" id="5269" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5259" index="13" uid="51c644a0-9c7c-481d-999e-39d57f1c757d" >
+<father id="5261" num="0" />
+<cdparam x="457" y="412" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5255" />
+<TGConnectingPoint num="1" id="5256" />
+<TGConnectingPoint num="2" id="5257" />
+<TGConnectingPoint num="3" id="5258" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="5268" index="4" uid="67647579-4e6d-4cf1-836b-e9ef4d832f09" >
+<cdparam x="407" y="60" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="5267" />
+<P1  x="407" y="60" id="5437" />
+<P2  x="450" y="140" id="5365" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="5266" index="14" uid="7516c356-f29c-4086-98fa-1fa9dc2e6405" >
+<father id="5268" num="0" />
+<cdparam x="428" y="100" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5262" />
+<TGConnectingPoint num="1" id="5263" />
+<TGConnectingPoint num="2" id="5264" />
+<TGConnectingPoint num="3" id="5265" />
+<extraparam>
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<extraDelay1 value="" enabled="true"/>
+<extraDelay2 value="" enabled="true"/>
+<delayDistributionLaw value="0" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="5279" index="5" uid="a8f3e1fa-2fb1-4a81-8112-20e3af270aa8" >
+<cdparam x="348" y="440" />
+<sizeparam width="134" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Receive signal" value="beveragePrepared()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5269" />
+<TGConnectingPoint num="1" id="5270" />
+<TGConnectingPoint num="2" id="5271" />
+<TGConnectingPoint num="3" id="5272" />
+<TGConnectingPoint num="4" id="5273" />
+<TGConnectingPoint num="5" id="5274" />
+<TGConnectingPoint num="6" id="5275" />
+<TGConnectingPoint num="7" id="5276" />
+<TGConnectingPoint num="8" id="5277" />
+<TGConnectingPoint num="9" id="5278" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="5352" index="6" uid="8ba43621-cccd-4562-9276-05db237c7095" >
+<cdparam x="400" y="340" />
+<sizeparam width="198" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Beverage_Preparing" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5280" />
+<TGConnectingPoint num="1" id="5281" />
+<TGConnectingPoint num="2" id="5282" />
+<TGConnectingPoint num="3" id="5283" />
+<TGConnectingPoint num="4" id="5284" />
+<TGConnectingPoint num="5" id="5285" />
+<TGConnectingPoint num="6" id="5286" />
+<TGConnectingPoint num="7" id="5287" />
+<TGConnectingPoint num="8" id="5288" />
+<TGConnectingPoint num="9" id="5289" />
+<TGConnectingPoint num="10" id="5290" />
+<TGConnectingPoint num="11" id="5291" />
+<TGConnectingPoint num="12" id="5292" />
+<TGConnectingPoint num="13" id="5293" />
+<TGConnectingPoint num="14" id="5294" />
+<TGConnectingPoint num="15" id="5295" />
+<TGConnectingPoint num="16" id="5296" />
+<TGConnectingPoint num="17" id="5297" />
+<TGConnectingPoint num="18" id="5298" />
+<TGConnectingPoint num="19" id="5299" />
+<TGConnectingPoint num="20" id="5300" />
+<TGConnectingPoint num="21" id="5301" />
+<TGConnectingPoint num="22" id="5302" />
+<TGConnectingPoint num="23" id="5303" />
+<TGConnectingPoint num="24" id="5304" />
+<TGConnectingPoint num="25" id="5305" />
+<TGConnectingPoint num="26" id="5306" />
+<TGConnectingPoint num="27" id="5307" />
+<TGConnectingPoint num="28" id="5308" />
+<TGConnectingPoint num="29" id="5309" />
+<TGConnectingPoint num="30" id="5310" />
+<TGConnectingPoint num="31" id="5311" />
+<TGConnectingPoint num="32" id="5312" />
+<TGConnectingPoint num="33" id="5313" />
+<TGConnectingPoint num="34" id="5314" />
+<TGConnectingPoint num="35" id="5315" />
+<TGConnectingPoint num="36" id="5316" />
+<TGConnectingPoint num="37" id="5317" />
+<TGConnectingPoint num="38" id="5318" />
+<TGConnectingPoint num="39" id="5319" />
+<TGConnectingPoint num="40" id="5320" />
+<TGConnectingPoint num="41" id="5321" />
+<TGConnectingPoint num="42" id="5322" />
+<TGConnectingPoint num="43" id="5323" />
+<TGConnectingPoint num="44" id="5324" />
+<TGConnectingPoint num="45" id="5325" />
+<TGConnectingPoint num="46" id="5326" />
+<TGConnectingPoint num="47" id="5327" />
+<TGConnectingPoint num="48" id="5328" />
+<TGConnectingPoint num="49" id="5329" />
+<TGConnectingPoint num="50" id="5330" />
+<TGConnectingPoint num="51" id="5331" />
+<TGConnectingPoint num="52" id="5332" />
+<TGConnectingPoint num="53" id="5333" />
+<TGConnectingPoint num="54" id="5334" />
+<TGConnectingPoint num="55" id="5335" />
+<TGConnectingPoint num="56" id="5336" />
+<TGConnectingPoint num="57" id="5337" />
+<TGConnectingPoint num="58" id="5338" />
+<TGConnectingPoint num="59" id="5339" />
+<TGConnectingPoint num="60" id="5340" />
+<TGConnectingPoint num="61" id="5341" />
+<TGConnectingPoint num="62" id="5342" />
+<TGConnectingPoint num="63" id="5343" />
+<TGConnectingPoint num="64" id="5344" />
+<TGConnectingPoint num="65" id="5345" />
+<TGConnectingPoint num="66" id="5346" />
+<TGConnectingPoint num="67" id="5347" />
+<TGConnectingPoint num="68" id="5348" />
+<TGConnectingPoint num="69" id="5349" />
+<TGConnectingPoint num="70" id="5350" />
+<TGConnectingPoint num="71" id="5351" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="5363" index="7" uid="db3f7493-0f8d-4d52-93a8-4fbffa79e02a" >
+<cdparam x="356" y="240" />
+<sizeparam width="118" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="prepareBeverage()" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5353" />
+<TGConnectingPoint num="1" id="5354" />
+<TGConnectingPoint num="2" id="5355" />
+<TGConnectingPoint num="3" id="5356" />
+<TGConnectingPoint num="4" id="5357" />
+<TGConnectingPoint num="5" id="5358" />
+<TGConnectingPoint num="6" id="5359" />
+<TGConnectingPoint num="7" id="5360" />
+<TGConnectingPoint num="8" id="5361" />
+<TGConnectingPoint num="9" id="5362" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="5436" index="8" uid="94bc1b67-a898-44e0-8340-d6b01df12e3c" >
+<cdparam x="400" y="140" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="state" value="Start" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5364" />
+<TGConnectingPoint num="1" id="5365" />
+<TGConnectingPoint num="2" id="5366" />
+<TGConnectingPoint num="3" id="5367" />
+<TGConnectingPoint num="4" id="5368" />
+<TGConnectingPoint num="5" id="5369" />
+<TGConnectingPoint num="6" id="5370" />
+<TGConnectingPoint num="7" id="5371" />
+<TGConnectingPoint num="8" id="5372" />
+<TGConnectingPoint num="9" id="5373" />
+<TGConnectingPoint num="10" id="5374" />
+<TGConnectingPoint num="11" id="5375" />
+<TGConnectingPoint num="12" id="5376" />
+<TGConnectingPoint num="13" id="5377" />
+<TGConnectingPoint num="14" id="5378" />
+<TGConnectingPoint num="15" id="5379" />
+<TGConnectingPoint num="16" id="5380" />
+<TGConnectingPoint num="17" id="5381" />
+<TGConnectingPoint num="18" id="5382" />
+<TGConnectingPoint num="19" id="5383" />
+<TGConnectingPoint num="20" id="5384" />
+<TGConnectingPoint num="21" id="5385" />
+<TGConnectingPoint num="22" id="5386" />
+<TGConnectingPoint num="23" id="5387" />
+<TGConnectingPoint num="24" id="5388" />
+<TGConnectingPoint num="25" id="5389" />
+<TGConnectingPoint num="26" id="5390" />
+<TGConnectingPoint num="27" id="5391" />
+<TGConnectingPoint num="28" id="5392" />
+<TGConnectingPoint num="29" id="5393" />
+<TGConnectingPoint num="30" id="5394" />
+<TGConnectingPoint num="31" id="5395" />
+<TGConnectingPoint num="32" id="5396" />
+<TGConnectingPoint num="33" id="5397" />
+<TGConnectingPoint num="34" id="5398" />
+<TGConnectingPoint num="35" id="5399" />
+<TGConnectingPoint num="36" id="5400" />
+<TGConnectingPoint num="37" id="5401" />
+<TGConnectingPoint num="38" id="5402" />
+<TGConnectingPoint num="39" id="5403" />
+<TGConnectingPoint num="40" id="5404" />
+<TGConnectingPoint num="41" id="5405" />
+<TGConnectingPoint num="42" id="5406" />
+<TGConnectingPoint num="43" id="5407" />
+<TGConnectingPoint num="44" id="5408" />
+<TGConnectingPoint num="45" id="5409" />
+<TGConnectingPoint num="46" id="5410" />
+<TGConnectingPoint num="47" id="5411" />
+<TGConnectingPoint num="48" id="5412" />
+<TGConnectingPoint num="49" id="5413" />
+<TGConnectingPoint num="50" id="5414" />
+<TGConnectingPoint num="51" id="5415" />
+<TGConnectingPoint num="52" id="5416" />
+<TGConnectingPoint num="53" id="5417" />
+<TGConnectingPoint num="54" id="5418" />
+<TGConnectingPoint num="55" id="5419" />
+<TGConnectingPoint num="56" id="5420" />
+<TGConnectingPoint num="57" id="5421" />
+<TGConnectingPoint num="58" id="5422" />
+<TGConnectingPoint num="59" id="5423" />
+<TGConnectingPoint num="60" id="5424" />
+<TGConnectingPoint num="61" id="5425" />
+<TGConnectingPoint num="62" id="5426" />
+<TGConnectingPoint num="63" id="5427" />
+<TGConnectingPoint num="64" id="5428" />
+<TGConnectingPoint num="65" id="5429" />
+<TGConnectingPoint num="66" id="5430" />
+<TGConnectingPoint num="67" id="5431" />
+<TGConnectingPoint num="68" id="5432" />
+<TGConnectingPoint num="69" id="5433" />
+<TGConnectingPoint num="70" id="5434" />
+<TGConnectingPoint num="71" id="5435" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="5438" index="9" uid="08c81dce-fee7-44bc-8d83-ac88fca2fde9" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5437" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Coffee_Machine" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="5100" id="5440" index="0" uid="6783dffb-27cd-4f4a-9a14-78d855c0a282" >
+<cdparam x="400" y="40" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="5439" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
 </TURTLEGMODELING>
\ No newline at end of file
diff --git a/modeling/AVATAR/testDependencyGraphs.xml b/modeling/AVATAR/testDependencyGraphs.xml
index 2b80de0ce6ce87ebca4dc40ad0a2140ddea9f252..5093d4a84fbfb0867509afd7f226ce9c738f0cb6 100644
--- a/modeling/AVATAR/testDependencyGraphs.xml
+++ b/modeling/AVATAR/testDependencyGraphs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="11" LAST_SELECTED_SUB_TAB="4">
+<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="13" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="Avatar Requirement" nameTab="Requirements" >
 <AvatarRDPanel name="AVATARRD" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
@@ -258,7 +258,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="2" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -312,7 +312,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="y" value="" type="4" typeOther="" />
+<Attribute access="0" var="0" id="y" value="" type="4" typeOther="" />
 <Signal value="in recv()" attached="true" />
 </extraparam>
 </COMPONENT>
@@ -367,7 +367,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="2" type="8" typeOther="" />
 <Signal value="out send1(int x)" attached="true" />
 <Signal value="out send2()" attached="true" />
 <Signal value="in recv1()" attached="true" />
@@ -424,8 +424,8 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="z" value="" type="8" typeOther="" />
-<Attribute access="0" id="r" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="z" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="r" value="" type="8" typeOther="" />
 <Signal value="in recv1(int x)" attached="true" />
 <Signal value="out send1()" attached="true" />
 </extraparam>
@@ -1923,11 +1923,11 @@ Double-click to edit
 </COMPONENT>
 <SUBCOMPONENT type="5000" id="957" index="3" uid="08f5deac-ff7e-424d-9124-5dd57f0a2ebe" >
 <father id="1039" num="0" />
-<cdparam x="438" y="98" />
-<sizeparam width="129" height="110" minWidth="7" minHeight="3" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="571" y="103" />
+<sizeparam width="123" height="110" minWidth="7" minHeight="3" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="146" minY="0" maxY="71" />
-<infoparam name="Block0" value="Instance1" />
+<cdrectangleparam minX="0" maxX="152" minY="0" maxY="71" />
+<infoparam name="Block0" value="Instance2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="917" />
 <TGConnectingPoint num="1" id="918" />
@@ -1976,11 +1976,11 @@ Double-click to edit
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5000" id="998" index="4" uid="08f5deac-ff7e-424d-9124-5dd57f0a2ebe" >
 <father id="1039" num="1" />
-<cdparam x="571" y="103" />
-<sizeparam width="123" height="110" minWidth="7" minHeight="3" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="438" y="98" />
+<sizeparam width="129" height="110" minWidth="7" minHeight="3" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="152" minY="0" maxY="71" />
-<infoparam name="Block0" value="Instance2" />
+<cdrectangleparam minX="0" maxX="146" minY="0" maxY="71" />
+<infoparam name="Block0" value="Instance1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="958" />
 <TGConnectingPoint num="1" id="959" />
@@ -3039,13 +3039,13 @@ Double-click to edit
 <Signal value="in answer()" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="1508" index="4" uid="1f2ca3b6-69b5-4809-9120-4e63b74dd9d9" >
+<SUBCOMPONENT type="5000" id="1508" index="4" uid="38090441-87bf-4259-b51d-053be523a93e" >
 <father id="1590" num="0" />
-<cdparam x="515" y="287" />
-<sizeparam width="176" height="110" minWidth="6" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="712" y="285" />
+<sizeparam width="187" height="115" minWidth="6" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="269" minY="0" maxY="197" />
-<infoparam name="Block0" value="Client1" />
+<cdrectangleparam minX="0" maxX="258" minY="0" maxY="192" />
+<infoparam name="Block0" value="Client2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="1468" />
 <TGConnectingPoint num="1" id="1469" />
@@ -3092,13 +3092,13 @@ Double-click to edit
 <CryptoBlock value="false" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="1549" index="5" uid="38090441-87bf-4259-b51d-053be523a93e" >
+<SUBCOMPONENT type="5000" id="1549" index="5" uid="1f2ca3b6-69b5-4809-9120-4e63b74dd9d9" >
 <father id="1590" num="1" />
-<cdparam x="712" y="285" />
-<sizeparam width="187" height="115" minWidth="6" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="515" y="287" />
+<sizeparam width="176" height="110" minWidth="6" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="258" minY="0" maxY="192" />
-<infoparam name="Block0" value="Client2" />
+<cdrectangleparam minX="0" maxX="269" minY="0" maxY="197" />
+<infoparam name="Block0" value="Client1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="1509" />
 <TGConnectingPoint num="1" id="1510" />
@@ -4062,8 +4062,8 @@ Double-click to edit
 <infoparam name="connector" value="" />
 <TGConnectingPoint num="0" id="1977" />
 <TGConnectingPoint num="1" id="1978" />
-<P1  x="744" y="381" id="2029" />
-<P2  x="823" y="405" id="1987" />
+<P1  x="744" y="381" id="1988" />
+<P2  x="823" y="405" id="2028" />
 <Point x="744" y="404" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -4153,13 +4153,13 @@ Double-click to edit
 <Signal value="out stored()" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="2022" index="5" uid="1c21ee3a-d0b2-4f9a-92bf-e9341f5daaa1" >
+<SUBCOMPONENT type="5000" id="2022" index="5" uid="b9daba4a-7b74-4e52-8bd9-b5bc9df56d86" >
 <father id="2104" num="0" />
-<cdparam x="823" y="261" />
-<sizeparam width="124" height="144" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="681" y="262" />
+<sizeparam width="127" height="119" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="163" minY="0" maxY="109" />
-<infoparam name="Block" value="Center1" />
+<cdrectangleparam minX="0" maxX="160" minY="0" maxY="134" />
+<infoparam name="Block" value="Filter" />
 <new d="false" />
 <TGConnectingPoint num="0" id="1982" />
 <TGConnectingPoint num="1" id="1983" />
@@ -4204,16 +4204,16 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Signal value="in query()" attached="true" />
+<Signal value="out query()" attached="true" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="2063" index="6" uid="b9daba4a-7b74-4e52-8bd9-b5bc9df56d86" >
+<SUBCOMPONENT type="5000" id="2063" index="6" uid="1c21ee3a-d0b2-4f9a-92bf-e9341f5daaa1" >
 <father id="2104" num="1" />
-<cdparam x="681" y="262" />
-<sizeparam width="127" height="119" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="823" y="261" />
+<sizeparam width="124" height="144" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="160" minY="0" maxY="134" />
-<infoparam name="Block" value="Filter" />
+<cdrectangleparam minX="0" maxX="163" minY="0" maxY="109" />
+<infoparam name="Block" value="Center1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="2023" />
 <TGConnectingPoint num="1" id="2024" />
@@ -4258,7 +4258,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Signal value="out query()" attached="true" />
+<Signal value="in query()" attached="true" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -4316,13 +4316,13 @@ Double-click to edit
 <Signal value="in stored()" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="2145" index="7" uid="b0f72ee8-81dc-4a55-b945-936ed82b727e" >
+<SUBCOMPONENT type="5000" id="2145" index="7" uid="d32fb600-eac8-4ee5-aa40-e223c4804bf6" >
 <father id="2227" num="0" />
-<cdparam x="290" y="269" />
-<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="423" y="269" />
+<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
-<infoparam name="Block" value="Sensor1" />
+<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
+<infoparam name="Block" value="Sensor2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="2105" />
 <TGConnectingPoint num="1" id="2106" />
@@ -4369,13 +4369,13 @@ Double-click to edit
 <CryptoBlock value="false" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="2186" index="8" uid="d32fb600-eac8-4ee5-aa40-e223c4804bf6" >
+<SUBCOMPONENT type="5000" id="2186" index="8" uid="b0f72ee8-81dc-4a55-b945-936ed82b727e" >
 <father id="2227" num="1" />
-<cdparam x="423" y="269" />
-<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="290" y="269" />
+<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
-<infoparam name="Block" value="Sensor2" />
+<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
+<infoparam name="Block" value="Sensor1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="2146" />
 <TGConnectingPoint num="1" id="2147" />
@@ -7466,13 +7466,13 @@ Double-click to edit
 <Signal value="out value()" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="3822" index="4" uid="6155d44b-78ff-4a9f-a5a7-7da434425ea3" >
+<SUBCOMPONENT type="5000" id="3822" index="4" uid="92fda49d-a79d-4389-9c6b-2eaceddb537c" >
 <father id="3904" num="0" />
-<cdparam x="422" y="269" />
-<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="289" y="269" />
+<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
-<infoparam name="Block" value="Sensor2" />
+<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
+<infoparam name="Block" value="Sensor1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="3782" />
 <TGConnectingPoint num="1" id="3783" />
@@ -7519,13 +7519,13 @@ Double-click to edit
 <CryptoBlock value="false" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="3863" index="5" uid="92fda49d-a79d-4389-9c6b-2eaceddb537c" >
+<SUBCOMPONENT type="5000" id="3863" index="5" uid="6155d44b-78ff-4a9f-a5a7-7da434425ea3" >
 <father id="3904" num="1" />
-<cdparam x="289" y="269" />
-<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="422" y="269" />
+<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
-<infoparam name="Block" value="Sensor1" />
+<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
+<infoparam name="Block" value="Sensor2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="3823" />
 <TGConnectingPoint num="1" id="3824" />
@@ -9065,7 +9065,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="2" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -9119,7 +9119,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="y" value="" type="4" typeOther="" />
+<Attribute access="0" var="0" id="y" value="" type="4" typeOther="" />
 <Signal value="in recv()" attached="true" />
 </extraparam>
 </COMPONENT>
@@ -9174,7 +9174,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="2" type="8" typeOther="" />
 <Signal value="out send1(int x)" attached="true" />
 <Signal value="out send2()" attached="true" />
 <Signal value="in recv1()" attached="true" />
@@ -9231,8 +9231,8 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="z" value="" type="8" typeOther="" />
-<Attribute access="0" id="r" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="z" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="r" value="" type="8" typeOther="" />
 <Signal value="in recv1(int x)" attached="true" />
 <Signal value="out send1()" attached="true" />
 </extraparam>
@@ -10963,7 +10963,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="3" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="3" type="8" typeOther="" />
 <Signal value="in msg1()" attached="true" />
 <Signal value="in msg2()" attached="true" />
 </extraparam>
@@ -11019,7 +11019,7 @@ Double-click to edit
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Attribute access="0" id="x" value="2" type="8" typeOther="" />
+<Attribute access="0" var="0" id="x" value="2" type="8" typeOther="" />
 <Signal value="out msg1()" attached="true" />
 <Signal value="out msg2()" attached="true" />
 </extraparam>
@@ -11041,7 +11041,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5746" index="12" uid="46b5b066-8d1e-404b-96bd-86c17a78beeb" >
 <father id="5748" num="0" />
 <cdparam x="565" y="401" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11076,7 +11076,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5753" index="13" uid="0b4e6ac2-97bc-4f2a-8b07-b54f3599077f" >
 <father id="5755" num="0" />
 <cdparam x="545" y="273" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11111,7 +11111,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5760" index="14" uid="5ee01ed3-0959-4094-a29c-f1ccf2080bac" >
 <father id="5762" num="0" />
 <cdparam x="377" y="547" />
-<sizeparam width="55" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="60" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11146,7 +11146,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5767" index="15" uid="71baeec0-08ea-40ce-8c90-f2ac7cf85bc2" >
 <father id="5769" num="0" />
 <cdparam x="373" y="398" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11181,7 +11181,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5774" index="16" uid="ec6eafda-5d5f-4871-8b77-77459ac08856" >
 <father id="5776" num="0" />
 <cdparam x="293" y="280" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11216,7 +11216,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="5781" index="17" uid="c32d72c2-37de-4671-9f8a-9dfdb85dae14" >
 <father id="5783" num="0" />
 <cdparam x="424" y="164" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11557,7 +11557,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6031" index="15" uid="97a9f251-58c0-4f57-8cfe-2185be5ca03e" >
 <father id="6033" num="0" />
 <cdparam x="441" y="648" />
-<sizeparam width="55" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="60" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11592,7 +11592,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6038" index="16" uid="56832f7d-41e3-453d-a98a-2dd3b5775b33" >
 <father id="6040" num="0" />
 <cdparam x="575" y="330" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11627,7 +11627,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6045" index="17" uid="a71f2850-e5b6-4947-b994-2e05b2821989" >
 <father id="6047" num="0" />
 <cdparam x="527" y="234" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11662,7 +11662,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6052" index="18" uid="e4b48b68-7c88-4e85-98c2-1933521af167" >
 <father id="6054" num="0" />
 <cdparam x="392" y="363" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11697,7 +11697,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6059" index="19" uid="7d995a47-1fa9-4e59-88ed-531a14a19c94" >
 <father id="6061" num="0" />
 <cdparam x="391" y="247" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11732,7 +11732,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6066" index="20" uid="181d5ac1-5315-4656-b5d7-9c5d7a0a20de" >
 <father id="6068" num="0" />
 <cdparam x="358" y="510" />
-<sizeparam width="55" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="60" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -11767,7 +11767,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6073" index="21" uid="db760f33-bd88-44b4-a5fb-82432c7ad5f0" >
 <father id="6075" num="0" />
 <cdparam x="407" y="130" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12379,13 +12379,13 @@ Double-click to edit
 <Signal value="out send()" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="6518" index="4" uid="43282290-9205-4695-af2f-679eeaecf8a2" >
+<SUBCOMPONENT type="5000" id="6518" index="4" uid="89f8a02e-086a-4156-9b9c-ad1b6138c38e" >
 <father id="6600" num="0" />
-<cdparam x="289" y="269" />
-<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="422" y="269" />
+<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
-<infoparam name="Block" value="S1" />
+<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
+<infoparam name="Block" value="S2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="6478" />
 <TGConnectingPoint num="1" id="6479" />
@@ -12432,13 +12432,13 @@ Double-click to edit
 <CryptoBlock value="false" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="6559" index="5" uid="89f8a02e-086a-4156-9b9c-ad1b6138c38e" >
+<SUBCOMPONENT type="5000" id="6559" index="5" uid="43282290-9205-4695-af2f-679eeaecf8a2" >
 <father id="6600" num="1" />
-<cdparam x="422" y="269" />
-<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="289" y="269" />
+<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
-<infoparam name="Block" value="S2" />
+<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
+<infoparam name="Block" value="S1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="6519" />
 <TGConnectingPoint num="1" id="6520" />
@@ -12516,7 +12516,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6607" index="5" uid="444c2ac8-53a5-4739-a9c0-45e0728b8126" >
 <father id="6609" num="0" />
 <cdparam x="464" y="180" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12551,7 +12551,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6614" index="6" uid="a8a6d0cd-4168-46ce-b492-497e62353843" >
 <father id="6616" num="0" />
 <cdparam x="475" y="126" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12630,7 +12630,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6636" index="5" uid="9ced7d47-32f6-458a-a87d-3e8d3c687555" >
 <father id="6638" num="0" />
 <cdparam x="361" y="239" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12665,7 +12665,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6643" index="6" uid="9e9c8ae9-2a55-45b8-849c-b4efe88f58b4" >
 <father id="6645" num="0" />
 <cdparam x="369" y="192" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12743,8 +12743,8 @@ Double-click to edit
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="6665" index="13" uid="b408fdb5-bfaf-417a-b453-f9e3e5553e4c" >
 <father id="6667" num="0" />
-<cdparam x="525" y="130" />
-<sizeparam width="63" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="517" y="104" />
+<sizeparam width="63" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12773,13 +12773,13 @@ Double-click to edit
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="6673" />
 <P1  x="449" y="211" id="6805" />
-<P2  x="449" y="228" id="6995" />
+<P2  x="449" y="248" id="6995" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="6672" index="14" uid="ed208e54-8bae-42ce-9335-3edbd6abf64d" >
 <father id="6674" num="0" />
-<cdparam x="444" y="323" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="467" y="220" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12791,8 +12791,8 @@ Double-click to edit
 <TGConnectingPoint num="3" id="6671" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
-<afterMin value="" enabled="true"/>
-<afterMax value="" enabled="true"/>
+<afterMin value="10" enabled="true"/>
+<afterMax value="10" enabled="true"/>
 <extraDelay1 value="" enabled="true"/>
 <extraDelay2 value="" enabled="true"/>
 <delayDistributionLaw value="0" enabled="true"/>
@@ -12807,14 +12807,14 @@ Double-click to edit
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="6680" />
-<P1  x="474" y="304" id="6984" />
-<P2  x="474" y="327" id="6882" />
+<P1  x="474" y="324" id="6984" />
+<P2  x="474" y="371" id="6882" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="6679" index="15" uid="a484c77c-a7ae-419b-857e-109c9b9c2cb8" >
 <father id="6681" num="0" />
 <cdparam x="472" y="495" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12842,14 +12842,14 @@ Double-click to edit
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="6687" />
-<P1  x="449" y="258" id="6996" />
-<P2  x="449" y="274" id="6971" />
+<P1  x="449" y="278" id="6996" />
+<P2  x="449" y="294" id="6971" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="6686" index="16" uid="e67a3cc7-364e-4681-8fb5-def9c78b9714" >
 <father id="6688" num="0" />
 <cdparam x="442" y="396" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12883,8 +12883,8 @@ Double-click to edit
 <new d="false" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="6693" index="17" uid="df3c2f3b-eb76-43cb-9ee5-04bcbe7e6dca" >
 <father id="6695" num="0" />
-<cdparam x="401" y="172" />
-<sizeparam width="63" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="371" y="156" />
+<sizeparam width="63" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -12919,7 +12919,7 @@ Double-click to edit
 </CONNECTOR><SUBCOMPONENT type="-1" id="6700" index="18" uid="faf64c1f-47fd-48d2-97d6-2a41fef3d31e" >
 <father id="6702" num="0" />
 <cdparam x="410" y="105" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -13112,7 +13112,7 @@ Double-click to edit
 </COMPONENT>
 
 <COMPONENT type="5106" id="6921" index="8" uid="9f9b21d7-71d3-4cf6-944d-8fd75e4e0a4d" >
-<cdparam x="424" y="327" />
+<cdparam x="424" y="371" />
 <sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
@@ -13196,7 +13196,7 @@ Double-click to edit
 </COMPONENT>
 
 <COMPONENT type="5106" id="6994" index="9" uid="74a47ada-e200-4d35-982a-239b057f2ef5" >
-<cdparam x="412" y="274" />
+<cdparam x="412" y="294" />
 <sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
@@ -13280,7 +13280,7 @@ Double-click to edit
 </COMPONENT>
 
 <COMPONENT type="5104" id="7005" index="10" uid="986b2eee-ddc0-4da7-91aa-0ecacb1f726a" >
-<cdparam x="424" y="233" />
+<cdparam x="424" y="253" />
 <sizeparam width="50" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
@@ -13469,53 +13469,53 @@ Double-click to edit
 <Validated value="" />
 <Ignored value="" />
 
-<COMPONENT type="5000" id="7132" index="0" uid="d0af57df-a2f0-4dcf-b824-363aa35e1df0" >
+<COMPONENT type="5000" id="7750" index="0" uid="d0af57df-a2f0-4dcf-b824-363aa35e1df0" >
 <cdparam x="686" y="287" />
 <sizeparam width="127" height="119" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Block" value="Receiver" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7092" />
-<TGConnectingPoint num="1" id="7093" />
-<TGConnectingPoint num="2" id="7094" />
-<TGConnectingPoint num="3" id="7095" />
-<TGConnectingPoint num="4" id="7096" />
-<TGConnectingPoint num="5" id="7097" />
-<TGConnectingPoint num="6" id="7098" />
-<TGConnectingPoint num="7" id="7099" />
-<TGConnectingPoint num="8" id="7100" />
-<TGConnectingPoint num="9" id="7101" />
-<TGConnectingPoint num="10" id="7102" />
-<TGConnectingPoint num="11" id="7103" />
-<TGConnectingPoint num="12" id="7104" />
-<TGConnectingPoint num="13" id="7105" />
-<TGConnectingPoint num="14" id="7106" />
-<TGConnectingPoint num="15" id="7107" />
-<TGConnectingPoint num="16" id="7108" />
-<TGConnectingPoint num="17" id="7109" />
-<TGConnectingPoint num="18" id="7110" />
-<TGConnectingPoint num="19" id="7111" />
-<TGConnectingPoint num="20" id="7112" />
-<TGConnectingPoint num="21" id="7113" />
-<TGConnectingPoint num="22" id="7114" />
-<TGConnectingPoint num="23" id="7115" />
-<TGConnectingPoint num="24" id="7116" />
-<TGConnectingPoint num="25" id="7117" />
-<TGConnectingPoint num="26" id="7118" />
-<TGConnectingPoint num="27" id="7119" />
-<TGConnectingPoint num="28" id="7120" />
-<TGConnectingPoint num="29" id="7121" />
-<TGConnectingPoint num="30" id="7122" />
-<TGConnectingPoint num="31" id="7123" />
-<TGConnectingPoint num="32" id="7124" />
-<TGConnectingPoint num="33" id="7125" />
-<TGConnectingPoint num="34" id="7126" />
-<TGConnectingPoint num="35" id="7127" />
-<TGConnectingPoint num="36" id="7128" />
-<TGConnectingPoint num="37" id="7129" />
-<TGConnectingPoint num="38" id="7130" />
-<TGConnectingPoint num="39" id="7131" />
+<TGConnectingPoint num="0" id="7710" />
+<TGConnectingPoint num="1" id="7711" />
+<TGConnectingPoint num="2" id="7712" />
+<TGConnectingPoint num="3" id="7713" />
+<TGConnectingPoint num="4" id="7714" />
+<TGConnectingPoint num="5" id="7715" />
+<TGConnectingPoint num="6" id="7716" />
+<TGConnectingPoint num="7" id="7717" />
+<TGConnectingPoint num="8" id="7718" />
+<TGConnectingPoint num="9" id="7719" />
+<TGConnectingPoint num="10" id="7720" />
+<TGConnectingPoint num="11" id="7721" />
+<TGConnectingPoint num="12" id="7722" />
+<TGConnectingPoint num="13" id="7723" />
+<TGConnectingPoint num="14" id="7724" />
+<TGConnectingPoint num="15" id="7725" />
+<TGConnectingPoint num="16" id="7726" />
+<TGConnectingPoint num="17" id="7727" />
+<TGConnectingPoint num="18" id="7728" />
+<TGConnectingPoint num="19" id="7729" />
+<TGConnectingPoint num="20" id="7730" />
+<TGConnectingPoint num="21" id="7731" />
+<TGConnectingPoint num="22" id="7732" />
+<TGConnectingPoint num="23" id="7733" />
+<TGConnectingPoint num="24" id="7734" />
+<TGConnectingPoint num="25" id="7735" />
+<TGConnectingPoint num="26" id="7736" />
+<TGConnectingPoint num="27" id="7737" />
+<TGConnectingPoint num="28" id="7738" />
+<TGConnectingPoint num="29" id="7739" />
+<TGConnectingPoint num="30" id="7740" />
+<TGConnectingPoint num="31" id="7741" />
+<TGConnectingPoint num="32" id="7742" />
+<TGConnectingPoint num="33" id="7743" />
+<TGConnectingPoint num="34" id="7744" />
+<TGConnectingPoint num="35" id="7745" />
+<TGConnectingPoint num="36" id="7746" />
+<TGConnectingPoint num="37" id="7747" />
+<TGConnectingPoint num="38" id="7748" />
+<TGConnectingPoint num="39" id="7749" />
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
@@ -13526,28 +13526,28 @@ Double-click to edit
 </AVATARBlockDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Receiver" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<CONNECTOR type="5102" id="7139" index="0" uid="af665017-a57c-4266-8f84-e2a0da0370a9" >
+<CONNECTOR type="5102" id="7757" index="0" uid="af665017-a57c-4266-8f84-e2a0da0370a9" >
 <cdparam x="487" y="154" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="7138" />
-<P1  x="487" y="154" id="7326" />
-<P2  x="659" y="173" id="7230" />
+<TGConnectingPoint num="0" id="7756" />
+<P1  x="487" y="154" id="7944" />
+<P2  x="659" y="173" id="7848" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="7137" index="7" uid="84a34a09-a48c-434c-b045-fae5c399b678" >
-<father id="7139" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7755" index="7" uid="84a34a09-a48c-434c-b045-fae5c399b678" >
+<father id="7757" num="0" />
 <cdparam x="575" y="155" />
-<sizeparam width="63" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="68" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7133" />
-<TGConnectingPoint num="1" id="7134" />
-<TGConnectingPoint num="2" id="7135" />
-<TGConnectingPoint num="3" id="7136" />
+<TGConnectingPoint num="0" id="7751" />
+<TGConnectingPoint num="1" id="7752" />
+<TGConnectingPoint num="2" id="7753" />
+<TGConnectingPoint num="3" id="7754" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="2" enabled="true"/>
@@ -13561,28 +13561,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="7146" index="1" uid="433748fd-03bc-4751-b0a4-435d4d718858" >
+<CONNECTOR type="5102" id="7764" index="1" uid="433748fd-03bc-4751-b0a4-435d4d718858" >
 <cdparam x="449" y="173" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="7145" />
-<P1  x="449" y="173" id="7362" />
-<P2  x="450" y="238" id="7171" />
+<TGConnectingPoint num="0" id="7763" />
+<P1  x="449" y="173" id="7980" />
+<P2  x="450" y="238" id="7789" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="7144" index="8" uid="7825d398-1130-4c12-a03b-78dde0424916" >
-<father id="7146" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7762" index="8" uid="7825d398-1130-4c12-a03b-78dde0424916" >
+<father id="7764" num="0" />
 <cdparam x="452" y="206" />
-<sizeparam width="63" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="68" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7140" />
-<TGConnectingPoint num="1" id="7141" />
-<TGConnectingPoint num="2" id="7142" />
-<TGConnectingPoint num="3" id="7143" />
+<TGConnectingPoint num="0" id="7758" />
+<TGConnectingPoint num="1" id="7759" />
+<TGConnectingPoint num="2" id="7760" />
+<TGConnectingPoint num="3" id="7761" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="5" enabled="true"/>
@@ -13596,28 +13596,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="7153" index="2" uid="be4daf58-76a4-441d-8b1b-29667d77d1b1" >
+<CONNECTOR type="5102" id="7771" index="2" uid="be4daf58-76a4-441d-8b1b-29667d77d1b1" >
 <cdparam x="408" y="88" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="7152" />
-<P1  x="408" y="88" id="7373" />
-<P2  x="412" y="123" id="7340" />
+<TGConnectingPoint num="0" id="7770" />
+<P1  x="408" y="88" id="7991" />
+<P2  x="412" y="123" id="7958" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="7151" index="9" uid="4baac32a-ff97-49a0-8bbd-6c0a3f1e7f2c" >
-<father id="7153" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7769" index="9" uid="4baac32a-ff97-49a0-8bbd-6c0a3f1e7f2c" >
+<father id="7771" num="0" />
 <cdparam x="410" y="105" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7147" />
-<TGConnectingPoint num="1" id="7148" />
-<TGConnectingPoint num="2" id="7149" />
-<TGConnectingPoint num="3" id="7150" />
+<TGConnectingPoint num="0" id="7765" />
+<TGConnectingPoint num="1" id="7766" />
+<TGConnectingPoint num="2" id="7767" />
+<TGConnectingPoint num="3" id="7768" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -13631,7 +13631,7 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="7226" index="3" uid="609117a7-fdfd-406f-a956-e05e7b9fee4c" >
+<COMPONENT type="5106" id="7844" index="3" uid="609117a7-fdfd-406f-a956-e05e7b9fee4c" >
 <cdparam x="373" y="238" />
 <sizeparam width="209" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -13639,83 +13639,83 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="BeforeReceivingRECV" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7154" />
-<TGConnectingPoint num="1" id="7155" />
-<TGConnectingPoint num="2" id="7156" />
-<TGConnectingPoint num="3" id="7157" />
-<TGConnectingPoint num="4" id="7158" />
-<TGConnectingPoint num="5" id="7159" />
-<TGConnectingPoint num="6" id="7160" />
-<TGConnectingPoint num="7" id="7161" />
-<TGConnectingPoint num="8" id="7162" />
-<TGConnectingPoint num="9" id="7163" />
-<TGConnectingPoint num="10" id="7164" />
-<TGConnectingPoint num="11" id="7165" />
-<TGConnectingPoint num="12" id="7166" />
-<TGConnectingPoint num="13" id="7167" />
-<TGConnectingPoint num="14" id="7168" />
-<TGConnectingPoint num="15" id="7169" />
-<TGConnectingPoint num="16" id="7170" />
-<TGConnectingPoint num="17" id="7171" />
-<TGConnectingPoint num="18" id="7172" />
-<TGConnectingPoint num="19" id="7173" />
-<TGConnectingPoint num="20" id="7174" />
-<TGConnectingPoint num="21" id="7175" />
-<TGConnectingPoint num="22" id="7176" />
-<TGConnectingPoint num="23" id="7177" />
-<TGConnectingPoint num="24" id="7178" />
-<TGConnectingPoint num="25" id="7179" />
-<TGConnectingPoint num="26" id="7180" />
-<TGConnectingPoint num="27" id="7181" />
-<TGConnectingPoint num="28" id="7182" />
-<TGConnectingPoint num="29" id="7183" />
-<TGConnectingPoint num="30" id="7184" />
-<TGConnectingPoint num="31" id="7185" />
-<TGConnectingPoint num="32" id="7186" />
-<TGConnectingPoint num="33" id="7187" />
-<TGConnectingPoint num="34" id="7188" />
-<TGConnectingPoint num="35" id="7189" />
-<TGConnectingPoint num="36" id="7190" />
-<TGConnectingPoint num="37" id="7191" />
-<TGConnectingPoint num="38" id="7192" />
-<TGConnectingPoint num="39" id="7193" />
-<TGConnectingPoint num="40" id="7194" />
-<TGConnectingPoint num="41" id="7195" />
-<TGConnectingPoint num="42" id="7196" />
-<TGConnectingPoint num="43" id="7197" />
-<TGConnectingPoint num="44" id="7198" />
-<TGConnectingPoint num="45" id="7199" />
-<TGConnectingPoint num="46" id="7200" />
-<TGConnectingPoint num="47" id="7201" />
-<TGConnectingPoint num="48" id="7202" />
-<TGConnectingPoint num="49" id="7203" />
-<TGConnectingPoint num="50" id="7204" />
-<TGConnectingPoint num="51" id="7205" />
-<TGConnectingPoint num="52" id="7206" />
-<TGConnectingPoint num="53" id="7207" />
-<TGConnectingPoint num="54" id="7208" />
-<TGConnectingPoint num="55" id="7209" />
-<TGConnectingPoint num="56" id="7210" />
-<TGConnectingPoint num="57" id="7211" />
-<TGConnectingPoint num="58" id="7212" />
-<TGConnectingPoint num="59" id="7213" />
-<TGConnectingPoint num="60" id="7214" />
-<TGConnectingPoint num="61" id="7215" />
-<TGConnectingPoint num="62" id="7216" />
-<TGConnectingPoint num="63" id="7217" />
-<TGConnectingPoint num="64" id="7218" />
-<TGConnectingPoint num="65" id="7219" />
-<TGConnectingPoint num="66" id="7220" />
-<TGConnectingPoint num="67" id="7221" />
-<TGConnectingPoint num="68" id="7222" />
-<TGConnectingPoint num="69" id="7223" />
-<TGConnectingPoint num="70" id="7224" />
-<TGConnectingPoint num="71" id="7225" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="7299" index="4" uid="1bfef3cf-d5c7-46b6-b4c8-69c1b4d05ad0" >
+<TGConnectingPoint num="0" id="7772" />
+<TGConnectingPoint num="1" id="7773" />
+<TGConnectingPoint num="2" id="7774" />
+<TGConnectingPoint num="3" id="7775" />
+<TGConnectingPoint num="4" id="7776" />
+<TGConnectingPoint num="5" id="7777" />
+<TGConnectingPoint num="6" id="7778" />
+<TGConnectingPoint num="7" id="7779" />
+<TGConnectingPoint num="8" id="7780" />
+<TGConnectingPoint num="9" id="7781" />
+<TGConnectingPoint num="10" id="7782" />
+<TGConnectingPoint num="11" id="7783" />
+<TGConnectingPoint num="12" id="7784" />
+<TGConnectingPoint num="13" id="7785" />
+<TGConnectingPoint num="14" id="7786" />
+<TGConnectingPoint num="15" id="7787" />
+<TGConnectingPoint num="16" id="7788" />
+<TGConnectingPoint num="17" id="7789" />
+<TGConnectingPoint num="18" id="7790" />
+<TGConnectingPoint num="19" id="7791" />
+<TGConnectingPoint num="20" id="7792" />
+<TGConnectingPoint num="21" id="7793" />
+<TGConnectingPoint num="22" id="7794" />
+<TGConnectingPoint num="23" id="7795" />
+<TGConnectingPoint num="24" id="7796" />
+<TGConnectingPoint num="25" id="7797" />
+<TGConnectingPoint num="26" id="7798" />
+<TGConnectingPoint num="27" id="7799" />
+<TGConnectingPoint num="28" id="7800" />
+<TGConnectingPoint num="29" id="7801" />
+<TGConnectingPoint num="30" id="7802" />
+<TGConnectingPoint num="31" id="7803" />
+<TGConnectingPoint num="32" id="7804" />
+<TGConnectingPoint num="33" id="7805" />
+<TGConnectingPoint num="34" id="7806" />
+<TGConnectingPoint num="35" id="7807" />
+<TGConnectingPoint num="36" id="7808" />
+<TGConnectingPoint num="37" id="7809" />
+<TGConnectingPoint num="38" id="7810" />
+<TGConnectingPoint num="39" id="7811" />
+<TGConnectingPoint num="40" id="7812" />
+<TGConnectingPoint num="41" id="7813" />
+<TGConnectingPoint num="42" id="7814" />
+<TGConnectingPoint num="43" id="7815" />
+<TGConnectingPoint num="44" id="7816" />
+<TGConnectingPoint num="45" id="7817" />
+<TGConnectingPoint num="46" id="7818" />
+<TGConnectingPoint num="47" id="7819" />
+<TGConnectingPoint num="48" id="7820" />
+<TGConnectingPoint num="49" id="7821" />
+<TGConnectingPoint num="50" id="7822" />
+<TGConnectingPoint num="51" id="7823" />
+<TGConnectingPoint num="52" id="7824" />
+<TGConnectingPoint num="53" id="7825" />
+<TGConnectingPoint num="54" id="7826" />
+<TGConnectingPoint num="55" id="7827" />
+<TGConnectingPoint num="56" id="7828" />
+<TGConnectingPoint num="57" id="7829" />
+<TGConnectingPoint num="58" id="7830" />
+<TGConnectingPoint num="59" id="7831" />
+<TGConnectingPoint num="60" id="7832" />
+<TGConnectingPoint num="61" id="7833" />
+<TGConnectingPoint num="62" id="7834" />
+<TGConnectingPoint num="63" id="7835" />
+<TGConnectingPoint num="64" id="7836" />
+<TGConnectingPoint num="65" id="7837" />
+<TGConnectingPoint num="66" id="7838" />
+<TGConnectingPoint num="67" id="7839" />
+<TGConnectingPoint num="68" id="7840" />
+<TGConnectingPoint num="69" id="7841" />
+<TGConnectingPoint num="70" id="7842" />
+<TGConnectingPoint num="71" id="7843" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="7917" index="4" uid="1bfef3cf-d5c7-46b6-b4c8-69c1b4d05ad0" >
 <cdparam x="659" y="150" />
 <sizeparam width="100" height="46" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -13723,83 +13723,83 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="END3" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7227" />
-<TGConnectingPoint num="1" id="7228" />
-<TGConnectingPoint num="2" id="7229" />
-<TGConnectingPoint num="3" id="7230" />
-<TGConnectingPoint num="4" id="7231" />
-<TGConnectingPoint num="5" id="7232" />
-<TGConnectingPoint num="6" id="7233" />
-<TGConnectingPoint num="7" id="7234" />
-<TGConnectingPoint num="8" id="7235" />
-<TGConnectingPoint num="9" id="7236" />
-<TGConnectingPoint num="10" id="7237" />
-<TGConnectingPoint num="11" id="7238" />
-<TGConnectingPoint num="12" id="7239" />
-<TGConnectingPoint num="13" id="7240" />
-<TGConnectingPoint num="14" id="7241" />
-<TGConnectingPoint num="15" id="7242" />
-<TGConnectingPoint num="16" id="7243" />
-<TGConnectingPoint num="17" id="7244" />
-<TGConnectingPoint num="18" id="7245" />
-<TGConnectingPoint num="19" id="7246" />
-<TGConnectingPoint num="20" id="7247" />
-<TGConnectingPoint num="21" id="7248" />
-<TGConnectingPoint num="22" id="7249" />
-<TGConnectingPoint num="23" id="7250" />
-<TGConnectingPoint num="24" id="7251" />
-<TGConnectingPoint num="25" id="7252" />
-<TGConnectingPoint num="26" id="7253" />
-<TGConnectingPoint num="27" id="7254" />
-<TGConnectingPoint num="28" id="7255" />
-<TGConnectingPoint num="29" id="7256" />
-<TGConnectingPoint num="30" id="7257" />
-<TGConnectingPoint num="31" id="7258" />
-<TGConnectingPoint num="32" id="7259" />
-<TGConnectingPoint num="33" id="7260" />
-<TGConnectingPoint num="34" id="7261" />
-<TGConnectingPoint num="35" id="7262" />
-<TGConnectingPoint num="36" id="7263" />
-<TGConnectingPoint num="37" id="7264" />
-<TGConnectingPoint num="38" id="7265" />
-<TGConnectingPoint num="39" id="7266" />
-<TGConnectingPoint num="40" id="7267" />
-<TGConnectingPoint num="41" id="7268" />
-<TGConnectingPoint num="42" id="7269" />
-<TGConnectingPoint num="43" id="7270" />
-<TGConnectingPoint num="44" id="7271" />
-<TGConnectingPoint num="45" id="7272" />
-<TGConnectingPoint num="46" id="7273" />
-<TGConnectingPoint num="47" id="7274" />
-<TGConnectingPoint num="48" id="7275" />
-<TGConnectingPoint num="49" id="7276" />
-<TGConnectingPoint num="50" id="7277" />
-<TGConnectingPoint num="51" id="7278" />
-<TGConnectingPoint num="52" id="7279" />
-<TGConnectingPoint num="53" id="7280" />
-<TGConnectingPoint num="54" id="7281" />
-<TGConnectingPoint num="55" id="7282" />
-<TGConnectingPoint num="56" id="7283" />
-<TGConnectingPoint num="57" id="7284" />
-<TGConnectingPoint num="58" id="7285" />
-<TGConnectingPoint num="59" id="7286" />
-<TGConnectingPoint num="60" id="7287" />
-<TGConnectingPoint num="61" id="7288" />
-<TGConnectingPoint num="62" id="7289" />
-<TGConnectingPoint num="63" id="7290" />
-<TGConnectingPoint num="64" id="7291" />
-<TGConnectingPoint num="65" id="7292" />
-<TGConnectingPoint num="66" id="7293" />
-<TGConnectingPoint num="67" id="7294" />
-<TGConnectingPoint num="68" id="7295" />
-<TGConnectingPoint num="69" id="7296" />
-<TGConnectingPoint num="70" id="7297" />
-<TGConnectingPoint num="71" id="7298" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="7372" index="5" uid="db03640d-5efe-4992-82d3-6cd9180068f5" >
+<TGConnectingPoint num="0" id="7845" />
+<TGConnectingPoint num="1" id="7846" />
+<TGConnectingPoint num="2" id="7847" />
+<TGConnectingPoint num="3" id="7848" />
+<TGConnectingPoint num="4" id="7849" />
+<TGConnectingPoint num="5" id="7850" />
+<TGConnectingPoint num="6" id="7851" />
+<TGConnectingPoint num="7" id="7852" />
+<TGConnectingPoint num="8" id="7853" />
+<TGConnectingPoint num="9" id="7854" />
+<TGConnectingPoint num="10" id="7855" />
+<TGConnectingPoint num="11" id="7856" />
+<TGConnectingPoint num="12" id="7857" />
+<TGConnectingPoint num="13" id="7858" />
+<TGConnectingPoint num="14" id="7859" />
+<TGConnectingPoint num="15" id="7860" />
+<TGConnectingPoint num="16" id="7861" />
+<TGConnectingPoint num="17" id="7862" />
+<TGConnectingPoint num="18" id="7863" />
+<TGConnectingPoint num="19" id="7864" />
+<TGConnectingPoint num="20" id="7865" />
+<TGConnectingPoint num="21" id="7866" />
+<TGConnectingPoint num="22" id="7867" />
+<TGConnectingPoint num="23" id="7868" />
+<TGConnectingPoint num="24" id="7869" />
+<TGConnectingPoint num="25" id="7870" />
+<TGConnectingPoint num="26" id="7871" />
+<TGConnectingPoint num="27" id="7872" />
+<TGConnectingPoint num="28" id="7873" />
+<TGConnectingPoint num="29" id="7874" />
+<TGConnectingPoint num="30" id="7875" />
+<TGConnectingPoint num="31" id="7876" />
+<TGConnectingPoint num="32" id="7877" />
+<TGConnectingPoint num="33" id="7878" />
+<TGConnectingPoint num="34" id="7879" />
+<TGConnectingPoint num="35" id="7880" />
+<TGConnectingPoint num="36" id="7881" />
+<TGConnectingPoint num="37" id="7882" />
+<TGConnectingPoint num="38" id="7883" />
+<TGConnectingPoint num="39" id="7884" />
+<TGConnectingPoint num="40" id="7885" />
+<TGConnectingPoint num="41" id="7886" />
+<TGConnectingPoint num="42" id="7887" />
+<TGConnectingPoint num="43" id="7888" />
+<TGConnectingPoint num="44" id="7889" />
+<TGConnectingPoint num="45" id="7890" />
+<TGConnectingPoint num="46" id="7891" />
+<TGConnectingPoint num="47" id="7892" />
+<TGConnectingPoint num="48" id="7893" />
+<TGConnectingPoint num="49" id="7894" />
+<TGConnectingPoint num="50" id="7895" />
+<TGConnectingPoint num="51" id="7896" />
+<TGConnectingPoint num="52" id="7897" />
+<TGConnectingPoint num="53" id="7898" />
+<TGConnectingPoint num="54" id="7899" />
+<TGConnectingPoint num="55" id="7900" />
+<TGConnectingPoint num="56" id="7901" />
+<TGConnectingPoint num="57" id="7902" />
+<TGConnectingPoint num="58" id="7903" />
+<TGConnectingPoint num="59" id="7904" />
+<TGConnectingPoint num="60" id="7905" />
+<TGConnectingPoint num="61" id="7906" />
+<TGConnectingPoint num="62" id="7907" />
+<TGConnectingPoint num="63" id="7908" />
+<TGConnectingPoint num="64" id="7909" />
+<TGConnectingPoint num="65" id="7910" />
+<TGConnectingPoint num="66" id="7911" />
+<TGConnectingPoint num="67" id="7912" />
+<TGConnectingPoint num="68" id="7913" />
+<TGConnectingPoint num="69" id="7914" />
+<TGConnectingPoint num="70" id="7915" />
+<TGConnectingPoint num="71" id="7916" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="7990" index="5" uid="db03640d-5efe-4992-82d3-6cd9180068f5" >
 <cdparam x="387" y="123" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -13807,90 +13807,90 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="Waiting" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7300" />
-<TGConnectingPoint num="1" id="7301" />
-<TGConnectingPoint num="2" id="7302" />
-<TGConnectingPoint num="3" id="7303" />
-<TGConnectingPoint num="4" id="7304" />
-<TGConnectingPoint num="5" id="7305" />
-<TGConnectingPoint num="6" id="7306" />
-<TGConnectingPoint num="7" id="7307" />
-<TGConnectingPoint num="8" id="7308" />
-<TGConnectingPoint num="9" id="7309" />
-<TGConnectingPoint num="10" id="7310" />
-<TGConnectingPoint num="11" id="7311" />
-<TGConnectingPoint num="12" id="7312" />
-<TGConnectingPoint num="13" id="7313" />
-<TGConnectingPoint num="14" id="7314" />
-<TGConnectingPoint num="15" id="7315" />
-<TGConnectingPoint num="16" id="7316" />
-<TGConnectingPoint num="17" id="7317" />
-<TGConnectingPoint num="18" id="7318" />
-<TGConnectingPoint num="19" id="7319" />
-<TGConnectingPoint num="20" id="7320" />
-<TGConnectingPoint num="21" id="7321" />
-<TGConnectingPoint num="22" id="7322" />
-<TGConnectingPoint num="23" id="7323" />
-<TGConnectingPoint num="24" id="7324" />
-<TGConnectingPoint num="25" id="7325" />
-<TGConnectingPoint num="26" id="7326" />
-<TGConnectingPoint num="27" id="7327" />
-<TGConnectingPoint num="28" id="7328" />
-<TGConnectingPoint num="29" id="7329" />
-<TGConnectingPoint num="30" id="7330" />
-<TGConnectingPoint num="31" id="7331" />
-<TGConnectingPoint num="32" id="7332" />
-<TGConnectingPoint num="33" id="7333" />
-<TGConnectingPoint num="34" id="7334" />
-<TGConnectingPoint num="35" id="7335" />
-<TGConnectingPoint num="36" id="7336" />
-<TGConnectingPoint num="37" id="7337" />
-<TGConnectingPoint num="38" id="7338" />
-<TGConnectingPoint num="39" id="7339" />
-<TGConnectingPoint num="40" id="7340" />
-<TGConnectingPoint num="41" id="7341" />
-<TGConnectingPoint num="42" id="7342" />
-<TGConnectingPoint num="43" id="7343" />
-<TGConnectingPoint num="44" id="7344" />
-<TGConnectingPoint num="45" id="7345" />
-<TGConnectingPoint num="46" id="7346" />
-<TGConnectingPoint num="47" id="7347" />
-<TGConnectingPoint num="48" id="7348" />
-<TGConnectingPoint num="49" id="7349" />
-<TGConnectingPoint num="50" id="7350" />
-<TGConnectingPoint num="51" id="7351" />
-<TGConnectingPoint num="52" id="7352" />
-<TGConnectingPoint num="53" id="7353" />
-<TGConnectingPoint num="54" id="7354" />
-<TGConnectingPoint num="55" id="7355" />
-<TGConnectingPoint num="56" id="7356" />
-<TGConnectingPoint num="57" id="7357" />
-<TGConnectingPoint num="58" id="7358" />
-<TGConnectingPoint num="59" id="7359" />
-<TGConnectingPoint num="60" id="7360" />
-<TGConnectingPoint num="61" id="7361" />
-<TGConnectingPoint num="62" id="7362" />
-<TGConnectingPoint num="63" id="7363" />
-<TGConnectingPoint num="64" id="7364" />
-<TGConnectingPoint num="65" id="7365" />
-<TGConnectingPoint num="66" id="7366" />
-<TGConnectingPoint num="67" id="7367" />
-<TGConnectingPoint num="68" id="7368" />
-<TGConnectingPoint num="69" id="7369" />
-<TGConnectingPoint num="70" id="7370" />
-<TGConnectingPoint num="71" id="7371" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="7374" index="6" uid="400a3c7a-00df-4093-a694-d08c98e74088" >
+<TGConnectingPoint num="0" id="7918" />
+<TGConnectingPoint num="1" id="7919" />
+<TGConnectingPoint num="2" id="7920" />
+<TGConnectingPoint num="3" id="7921" />
+<TGConnectingPoint num="4" id="7922" />
+<TGConnectingPoint num="5" id="7923" />
+<TGConnectingPoint num="6" id="7924" />
+<TGConnectingPoint num="7" id="7925" />
+<TGConnectingPoint num="8" id="7926" />
+<TGConnectingPoint num="9" id="7927" />
+<TGConnectingPoint num="10" id="7928" />
+<TGConnectingPoint num="11" id="7929" />
+<TGConnectingPoint num="12" id="7930" />
+<TGConnectingPoint num="13" id="7931" />
+<TGConnectingPoint num="14" id="7932" />
+<TGConnectingPoint num="15" id="7933" />
+<TGConnectingPoint num="16" id="7934" />
+<TGConnectingPoint num="17" id="7935" />
+<TGConnectingPoint num="18" id="7936" />
+<TGConnectingPoint num="19" id="7937" />
+<TGConnectingPoint num="20" id="7938" />
+<TGConnectingPoint num="21" id="7939" />
+<TGConnectingPoint num="22" id="7940" />
+<TGConnectingPoint num="23" id="7941" />
+<TGConnectingPoint num="24" id="7942" />
+<TGConnectingPoint num="25" id="7943" />
+<TGConnectingPoint num="26" id="7944" />
+<TGConnectingPoint num="27" id="7945" />
+<TGConnectingPoint num="28" id="7946" />
+<TGConnectingPoint num="29" id="7947" />
+<TGConnectingPoint num="30" id="7948" />
+<TGConnectingPoint num="31" id="7949" />
+<TGConnectingPoint num="32" id="7950" />
+<TGConnectingPoint num="33" id="7951" />
+<TGConnectingPoint num="34" id="7952" />
+<TGConnectingPoint num="35" id="7953" />
+<TGConnectingPoint num="36" id="7954" />
+<TGConnectingPoint num="37" id="7955" />
+<TGConnectingPoint num="38" id="7956" />
+<TGConnectingPoint num="39" id="7957" />
+<TGConnectingPoint num="40" id="7958" />
+<TGConnectingPoint num="41" id="7959" />
+<TGConnectingPoint num="42" id="7960" />
+<TGConnectingPoint num="43" id="7961" />
+<TGConnectingPoint num="44" id="7962" />
+<TGConnectingPoint num="45" id="7963" />
+<TGConnectingPoint num="46" id="7964" />
+<TGConnectingPoint num="47" id="7965" />
+<TGConnectingPoint num="48" id="7966" />
+<TGConnectingPoint num="49" id="7967" />
+<TGConnectingPoint num="50" id="7968" />
+<TGConnectingPoint num="51" id="7969" />
+<TGConnectingPoint num="52" id="7970" />
+<TGConnectingPoint num="53" id="7971" />
+<TGConnectingPoint num="54" id="7972" />
+<TGConnectingPoint num="55" id="7973" />
+<TGConnectingPoint num="56" id="7974" />
+<TGConnectingPoint num="57" id="7975" />
+<TGConnectingPoint num="58" id="7976" />
+<TGConnectingPoint num="59" id="7977" />
+<TGConnectingPoint num="60" id="7978" />
+<TGConnectingPoint num="61" id="7979" />
+<TGConnectingPoint num="62" id="7980" />
+<TGConnectingPoint num="63" id="7981" />
+<TGConnectingPoint num="64" id="7982" />
+<TGConnectingPoint num="65" id="7983" />
+<TGConnectingPoint num="66" id="7984" />
+<TGConnectingPoint num="67" id="7985" />
+<TGConnectingPoint num="68" id="7986" />
+<TGConnectingPoint num="69" id="7987" />
+<TGConnectingPoint num="70" id="7988" />
+<TGConnectingPoint num="71" id="7989" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="7992" index="6" uid="400a3c7a-00df-4093-a694-d08c98e74088" >
 <cdparam x="401" y="68" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7373" />
+<TGConnectingPoint num="0" id="7991" />
 </COMPONENT>
 
 
@@ -13901,1697 +13901,337 @@ Double-click to edit
 
 
 
-<Modeling type="Graph" nameTab="Graph" >
-<GraphDPanel name="AUT graph" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" fontModifier="1.0" >
-<COMPONENT type="5050" id="7407" index="0" uid="cc2b29ed-71ed-4f33-96a1-bae74e71a45f" >
-<cdparam x="995" y="30" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="0 / Other / start" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7375" />
-<TGConnectingPoint num="1" id="7376" />
-<TGConnectingPoint num="2" id="7377" />
-<TGConnectingPoint num="3" id="7378" />
-<TGConnectingPoint num="4" id="7379" />
-<TGConnectingPoint num="5" id="7380" />
-<TGConnectingPoint num="6" id="7381" />
-<TGConnectingPoint num="7" id="7382" />
-<TGConnectingPoint num="8" id="7383" />
-<TGConnectingPoint num="9" id="7384" />
-<TGConnectingPoint num="10" id="7385" />
-<TGConnectingPoint num="11" id="7386" />
-<TGConnectingPoint num="12" id="7387" />
-<TGConnectingPoint num="13" id="7388" />
-<TGConnectingPoint num="14" id="7389" />
-<TGConnectingPoint num="15" id="7390" />
-<TGConnectingPoint num="16" id="7391" />
-<TGConnectingPoint num="17" id="7392" />
-<TGConnectingPoint num="18" id="7393" />
-<TGConnectingPoint num="19" id="7394" />
-<TGConnectingPoint num="20" id="7395" />
-<TGConnectingPoint num="21" id="7396" />
-<TGConnectingPoint num="22" id="7397" />
-<TGConnectingPoint num="23" id="7398" />
-<TGConnectingPoint num="24" id="7399" />
-<TGConnectingPoint num="25" id="7400" />
-<TGConnectingPoint num="26" id="7401" />
-<TGConnectingPoint num="27" id="7402" />
-<TGConnectingPoint num="28" id="7403" />
-<TGConnectingPoint num="29" id="7404" />
-<TGConnectingPoint num="30" id="7405" />
-<TGConnectingPoint num="31" id="7406" />
-<color value="-16711936" />
-</COMPONENT>
+<Modeling type="AVATAR Design" nameTab="Modelsward2023Toy_Before" tabs="Block Diagram$Sender$S1$S2$Receiver$Other" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<considerTimingOperators value="true" />
+<Validated value="Other;Receiver;Sender;S1;S2;" />
+<Ignored value="" />
 
-<COMPONENT type="5050" id="7440" index="1" uid="979ec00d-250b-4db1-b893-9f3cce1a26d2" >
-<cdparam x="996" y="141" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5002" id="7093" index="0" uid="daa36774-6e57-4f7c-a4b0-686a051e015a" >
+<cdparam x="578" y="346" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="" />
+<TGConnectingPoint num="0" id="7092" />
+<P1  x="578" y="346" id="7271" />
+<P2  x="686" y="346" id="7138" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<isd value="in recv()" />
+<oso value="out send()" />
+<FIFOType asynchronous="true" synchronousCH="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="5000" id="7134" index="1" uid="958f2b5d-6d6d-4c73-b0f1-e7da099a294d" >
+<cdparam x="866" y="285" />
+<sizeparam width="132" height="121" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="1 / Other / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7408" />
-<TGConnectingPoint num="1" id="7409" />
-<TGConnectingPoint num="2" id="7410" />
-<TGConnectingPoint num="3" id="7411" />
-<TGConnectingPoint num="4" id="7412" />
-<TGConnectingPoint num="5" id="7413" />
-<TGConnectingPoint num="6" id="7414" />
-<TGConnectingPoint num="7" id="7415" />
-<TGConnectingPoint num="8" id="7416" />
-<TGConnectingPoint num="9" id="7417" />
-<TGConnectingPoint num="10" id="7418" />
-<TGConnectingPoint num="11" id="7419" />
-<TGConnectingPoint num="12" id="7420" />
-<TGConnectingPoint num="13" id="7421" />
-<TGConnectingPoint num="14" id="7422" />
-<TGConnectingPoint num="15" id="7423" />
-<TGConnectingPoint num="16" id="7424" />
-<TGConnectingPoint num="17" id="7425" />
-<TGConnectingPoint num="18" id="7426" />
-<TGConnectingPoint num="19" id="7427" />
-<TGConnectingPoint num="20" id="7428" />
-<TGConnectingPoint num="21" id="7429" />
-<TGConnectingPoint num="22" id="7430" />
-<TGConnectingPoint num="23" id="7431" />
-<TGConnectingPoint num="24" id="7432" />
-<TGConnectingPoint num="25" id="7433" />
-<TGConnectingPoint num="26" id="7434" />
-<TGConnectingPoint num="27" id="7435" />
-<TGConnectingPoint num="28" id="7436" />
-<TGConnectingPoint num="29" id="7437" />
-<TGConnectingPoint num="30" id="7438" />
-<TGConnectingPoint num="31" id="7439" />
+<infoparam name="Block" value="Other" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7094" />
+<TGConnectingPoint num="1" id="7095" />
+<TGConnectingPoint num="2" id="7096" />
+<TGConnectingPoint num="3" id="7097" />
+<TGConnectingPoint num="4" id="7098" />
+<TGConnectingPoint num="5" id="7099" />
+<TGConnectingPoint num="6" id="7100" />
+<TGConnectingPoint num="7" id="7101" />
+<TGConnectingPoint num="8" id="7102" />
+<TGConnectingPoint num="9" id="7103" />
+<TGConnectingPoint num="10" id="7104" />
+<TGConnectingPoint num="11" id="7105" />
+<TGConnectingPoint num="12" id="7106" />
+<TGConnectingPoint num="13" id="7107" />
+<TGConnectingPoint num="14" id="7108" />
+<TGConnectingPoint num="15" id="7109" />
+<TGConnectingPoint num="16" id="7110" />
+<TGConnectingPoint num="17" id="7111" />
+<TGConnectingPoint num="18" id="7112" />
+<TGConnectingPoint num="19" id="7113" />
+<TGConnectingPoint num="20" id="7114" />
+<TGConnectingPoint num="21" id="7115" />
+<TGConnectingPoint num="22" id="7116" />
+<TGConnectingPoint num="23" id="7117" />
+<TGConnectingPoint num="24" id="7118" />
+<TGConnectingPoint num="25" id="7119" />
+<TGConnectingPoint num="26" id="7120" />
+<TGConnectingPoint num="27" id="7121" />
+<TGConnectingPoint num="28" id="7122" />
+<TGConnectingPoint num="29" id="7123" />
+<TGConnectingPoint num="30" id="7124" />
+<TGConnectingPoint num="31" id="7125" />
+<TGConnectingPoint num="32" id="7126" />
+<TGConnectingPoint num="33" id="7127" />
+<TGConnectingPoint num="34" id="7128" />
+<TGConnectingPoint num="35" id="7129" />
+<TGConnectingPoint num="36" id="7130" />
+<TGConnectingPoint num="37" id="7131" />
+<TGConnectingPoint num="38" id="7132" />
+<TGConnectingPoint num="39" id="7133" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5050" id="7473" index="2" uid="8bccd771-c5bc-4c6c-adb5-6cbef9666b2d" >
-<cdparam x="999" y="222" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5000" id="7175" index="2" uid="6d8f387c-997b-4073-a149-a020ac367c58" >
+<cdparam x="686" y="287" />
+<sizeparam width="127" height="119" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="2 / Other / stop" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7441" />
-<TGConnectingPoint num="1" id="7442" />
-<TGConnectingPoint num="2" id="7443" />
-<TGConnectingPoint num="3" id="7444" />
-<TGConnectingPoint num="4" id="7445" />
-<TGConnectingPoint num="5" id="7446" />
-<TGConnectingPoint num="6" id="7447" />
-<TGConnectingPoint num="7" id="7448" />
-<TGConnectingPoint num="8" id="7449" />
-<TGConnectingPoint num="9" id="7450" />
-<TGConnectingPoint num="10" id="7451" />
-<TGConnectingPoint num="11" id="7452" />
-<TGConnectingPoint num="12" id="7453" />
-<TGConnectingPoint num="13" id="7454" />
-<TGConnectingPoint num="14" id="7455" />
-<TGConnectingPoint num="15" id="7456" />
-<TGConnectingPoint num="16" id="7457" />
-<TGConnectingPoint num="17" id="7458" />
-<TGConnectingPoint num="18" id="7459" />
-<TGConnectingPoint num="19" id="7460" />
-<TGConnectingPoint num="20" id="7461" />
-<TGConnectingPoint num="21" id="7462" />
-<TGConnectingPoint num="22" id="7463" />
-<TGConnectingPoint num="23" id="7464" />
-<TGConnectingPoint num="24" id="7465" />
-<TGConnectingPoint num="25" id="7466" />
-<TGConnectingPoint num="26" id="7467" />
-<TGConnectingPoint num="27" id="7468" />
-<TGConnectingPoint num="28" id="7469" />
-<TGConnectingPoint num="29" id="7470" />
-<TGConnectingPoint num="30" id="7471" />
-<TGConnectingPoint num="31" id="7472" />
-<color value="-65536" />
+<infoparam name="Block" value="Receiver" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7135" />
+<TGConnectingPoint num="1" id="7136" />
+<TGConnectingPoint num="2" id="7137" />
+<TGConnectingPoint num="3" id="7138" />
+<TGConnectingPoint num="4" id="7139" />
+<TGConnectingPoint num="5" id="7140" />
+<TGConnectingPoint num="6" id="7141" />
+<TGConnectingPoint num="7" id="7142" />
+<TGConnectingPoint num="8" id="7143" />
+<TGConnectingPoint num="9" id="7144" />
+<TGConnectingPoint num="10" id="7145" />
+<TGConnectingPoint num="11" id="7146" />
+<TGConnectingPoint num="12" id="7147" />
+<TGConnectingPoint num="13" id="7148" />
+<TGConnectingPoint num="14" id="7149" />
+<TGConnectingPoint num="15" id="7150" />
+<TGConnectingPoint num="16" id="7151" />
+<TGConnectingPoint num="17" id="7152" />
+<TGConnectingPoint num="18" id="7153" />
+<TGConnectingPoint num="19" id="7154" />
+<TGConnectingPoint num="20" id="7155" />
+<TGConnectingPoint num="21" id="7156" />
+<TGConnectingPoint num="22" id="7157" />
+<TGConnectingPoint num="23" id="7158" />
+<TGConnectingPoint num="24" id="7159" />
+<TGConnectingPoint num="25" id="7160" />
+<TGConnectingPoint num="26" id="7161" />
+<TGConnectingPoint num="27" id="7162" />
+<TGConnectingPoint num="28" id="7163" />
+<TGConnectingPoint num="29" id="7164" />
+<TGConnectingPoint num="30" id="7165" />
+<TGConnectingPoint num="31" id="7166" />
+<TGConnectingPoint num="32" id="7167" />
+<TGConnectingPoint num="33" id="7168" />
+<TGConnectingPoint num="34" id="7169" />
+<TGConnectingPoint num="35" id="7170" />
+<TGConnectingPoint num="36" id="7171" />
+<TGConnectingPoint num="37" id="7172" />
+<TGConnectingPoint num="38" id="7173" />
+<TGConnectingPoint num="39" id="7174" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Signal value="in recv()" attached="true" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5050" id="7506" index="3" uid="541fbce7-5538-41cb-89d9-0d65affe344a" >
-<cdparam x="842" y="350" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5000" id="7298" index="3" uid="3d1dd9c5-32f1-478f-93f0-fb00d7c0dfbf" >
+<cdparam x="278" y="177" />
+<sizeparam width="300" height="226" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="3 / Receiver / start" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7474" />
-<TGConnectingPoint num="1" id="7475" />
-<TGConnectingPoint num="2" id="7476" />
-<TGConnectingPoint num="3" id="7477" />
-<TGConnectingPoint num="4" id="7478" />
-<TGConnectingPoint num="5" id="7479" />
-<TGConnectingPoint num="6" id="7480" />
-<TGConnectingPoint num="7" id="7481" />
-<TGConnectingPoint num="8" id="7482" />
-<TGConnectingPoint num="9" id="7483" />
-<TGConnectingPoint num="10" id="7484" />
-<TGConnectingPoint num="11" id="7485" />
-<TGConnectingPoint num="12" id="7486" />
-<TGConnectingPoint num="13" id="7487" />
-<TGConnectingPoint num="14" id="7488" />
-<TGConnectingPoint num="15" id="7489" />
-<TGConnectingPoint num="16" id="7490" />
-<TGConnectingPoint num="17" id="7491" />
-<TGConnectingPoint num="18" id="7492" />
-<TGConnectingPoint num="19" id="7493" />
-<TGConnectingPoint num="20" id="7494" />
-<TGConnectingPoint num="21" id="7495" />
-<TGConnectingPoint num="22" id="7496" />
-<TGConnectingPoint num="23" id="7497" />
-<TGConnectingPoint num="24" id="7498" />
-<TGConnectingPoint num="25" id="7499" />
-<TGConnectingPoint num="26" id="7500" />
-<TGConnectingPoint num="27" id="7501" />
-<TGConnectingPoint num="28" id="7502" />
-<TGConnectingPoint num="29" id="7503" />
-<TGConnectingPoint num="30" id="7504" />
-<TGConnectingPoint num="31" id="7505" />
-<color value="-16711936" />
+<infoparam name="Block" value="Sender" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7258" />
+<TGConnectingPoint num="1" id="7259" />
+<TGConnectingPoint num="2" id="7260" />
+<TGConnectingPoint num="3" id="7261" />
+<TGConnectingPoint num="4" id="7262" />
+<TGConnectingPoint num="5" id="7263" />
+<TGConnectingPoint num="6" id="7264" />
+<TGConnectingPoint num="7" id="7265" />
+<TGConnectingPoint num="8" id="7266" />
+<TGConnectingPoint num="9" id="7267" />
+<TGConnectingPoint num="10" id="7268" />
+<TGConnectingPoint num="11" id="7269" />
+<TGConnectingPoint num="12" id="7270" />
+<TGConnectingPoint num="13" id="7271" />
+<TGConnectingPoint num="14" id="7272" />
+<TGConnectingPoint num="15" id="7273" />
+<TGConnectingPoint num="16" id="7274" />
+<TGConnectingPoint num="17" id="7275" />
+<TGConnectingPoint num="18" id="7276" />
+<TGConnectingPoint num="19" id="7277" />
+<TGConnectingPoint num="20" id="7278" />
+<TGConnectingPoint num="21" id="7279" />
+<TGConnectingPoint num="22" id="7280" />
+<TGConnectingPoint num="23" id="7281" />
+<TGConnectingPoint num="24" id="7282" />
+<TGConnectingPoint num="25" id="7283" />
+<TGConnectingPoint num="26" id="7284" />
+<TGConnectingPoint num="27" id="7285" />
+<TGConnectingPoint num="28" id="7286" />
+<TGConnectingPoint num="29" id="7287" />
+<TGConnectingPoint num="30" id="7288" />
+<TGConnectingPoint num="31" id="7289" />
+<TGConnectingPoint num="32" id="7290" />
+<TGConnectingPoint num="33" id="7291" />
+<TGConnectingPoint num="34" id="7292" />
+<TGConnectingPoint num="35" id="7293" />
+<TGConnectingPoint num="36" id="7294" />
+<TGConnectingPoint num="37" id="7295" />
+<TGConnectingPoint num="38" id="7296" />
+<TGConnectingPoint num="39" id="7297" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+<Signal value="out send()" attached="true" />
+</extraparam>
 </COMPONENT>
+<SUBCOMPONENT type="5000" id="7216" index="4" uid="89ea6271-f5d7-4ad2-b1f9-7219bd5d9ccd" >
+<father id="7298" num="0" />
+<cdparam x="289" y="269" />
+<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
+<infoparam name="Block" value="S1" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7176" />
+<TGConnectingPoint num="1" id="7177" />
+<TGConnectingPoint num="2" id="7178" />
+<TGConnectingPoint num="3" id="7179" />
+<TGConnectingPoint num="4" id="7180" />
+<TGConnectingPoint num="5" id="7181" />
+<TGConnectingPoint num="6" id="7182" />
+<TGConnectingPoint num="7" id="7183" />
+<TGConnectingPoint num="8" id="7184" />
+<TGConnectingPoint num="9" id="7185" />
+<TGConnectingPoint num="10" id="7186" />
+<TGConnectingPoint num="11" id="7187" />
+<TGConnectingPoint num="12" id="7188" />
+<TGConnectingPoint num="13" id="7189" />
+<TGConnectingPoint num="14" id="7190" />
+<TGConnectingPoint num="15" id="7191" />
+<TGConnectingPoint num="16" id="7192" />
+<TGConnectingPoint num="17" id="7193" />
+<TGConnectingPoint num="18" id="7194" />
+<TGConnectingPoint num="19" id="7195" />
+<TGConnectingPoint num="20" id="7196" />
+<TGConnectingPoint num="21" id="7197" />
+<TGConnectingPoint num="22" id="7198" />
+<TGConnectingPoint num="23" id="7199" />
+<TGConnectingPoint num="24" id="7200" />
+<TGConnectingPoint num="25" id="7201" />
+<TGConnectingPoint num="26" id="7202" />
+<TGConnectingPoint num="27" id="7203" />
+<TGConnectingPoint num="28" id="7204" />
+<TGConnectingPoint num="29" id="7205" />
+<TGConnectingPoint num="30" id="7206" />
+<TGConnectingPoint num="31" id="7207" />
+<TGConnectingPoint num="32" id="7208" />
+<TGConnectingPoint num="33" id="7209" />
+<TGConnectingPoint num="34" id="7210" />
+<TGConnectingPoint num="35" id="7211" />
+<TGConnectingPoint num="36" id="7212" />
+<TGConnectingPoint num="37" id="7213" />
+<TGConnectingPoint num="38" id="7214" />
+<TGConnectingPoint num="39" id="7215" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5000" id="7257" index="5" uid="9fd0eb4c-5f19-4616-a24e-56780b544aae" >
+<father id="7298" num="1" />
+<cdparam x="422" y="269" />
+<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
+<infoparam name="Block" value="S2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7217" />
+<TGConnectingPoint num="1" id="7218" />
+<TGConnectingPoint num="2" id="7219" />
+<TGConnectingPoint num="3" id="7220" />
+<TGConnectingPoint num="4" id="7221" />
+<TGConnectingPoint num="5" id="7222" />
+<TGConnectingPoint num="6" id="7223" />
+<TGConnectingPoint num="7" id="7224" />
+<TGConnectingPoint num="8" id="7225" />
+<TGConnectingPoint num="9" id="7226" />
+<TGConnectingPoint num="10" id="7227" />
+<TGConnectingPoint num="11" id="7228" />
+<TGConnectingPoint num="12" id="7229" />
+<TGConnectingPoint num="13" id="7230" />
+<TGConnectingPoint num="14" id="7231" />
+<TGConnectingPoint num="15" id="7232" />
+<TGConnectingPoint num="16" id="7233" />
+<TGConnectingPoint num="17" id="7234" />
+<TGConnectingPoint num="18" id="7235" />
+<TGConnectingPoint num="19" id="7236" />
+<TGConnectingPoint num="20" id="7237" />
+<TGConnectingPoint num="21" id="7238" />
+<TGConnectingPoint num="22" id="7239" />
+<TGConnectingPoint num="23" id="7240" />
+<TGConnectingPoint num="24" id="7241" />
+<TGConnectingPoint num="25" id="7242" />
+<TGConnectingPoint num="26" id="7243" />
+<TGConnectingPoint num="27" id="7244" />
+<TGConnectingPoint num="28" id="7245" />
+<TGConnectingPoint num="29" id="7246" />
+<TGConnectingPoint num="30" id="7247" />
+<TGConnectingPoint num="31" id="7248" />
+<TGConnectingPoint num="32" id="7249" />
+<TGConnectingPoint num="33" id="7250" />
+<TGConnectingPoint num="34" id="7251" />
+<TGConnectingPoint num="35" id="7252" />
+<TGConnectingPoint num="36" id="7253" />
+<TGConnectingPoint num="37" id="7254" />
+<TGConnectingPoint num="38" id="7255" />
+<TGConnectingPoint num="39" id="7256" />
+<extraparam>
+<blockType data="block" color="-4072719" />
+<CryptoBlock value="false" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="5050" id="7539" index="4" uid="70fe8d04-3cee-4c02-8edb-b6d13e0c8e65" >
-<cdparam x="772" y="279" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Sender" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="5100" id="7300" index="0" uid="b7475cec-eef6-4f9a-aeee-b127ef712566" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="4 / Receiver / Waiting" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7507" />
-<TGConnectingPoint num="1" id="7508" />
-<TGConnectingPoint num="2" id="7509" />
-<TGConnectingPoint num="3" id="7510" />
-<TGConnectingPoint num="4" id="7511" />
-<TGConnectingPoint num="5" id="7512" />
-<TGConnectingPoint num="6" id="7513" />
-<TGConnectingPoint num="7" id="7514" />
-<TGConnectingPoint num="8" id="7515" />
-<TGConnectingPoint num="9" id="7516" />
-<TGConnectingPoint num="10" id="7517" />
-<TGConnectingPoint num="11" id="7518" />
-<TGConnectingPoint num="12" id="7519" />
-<TGConnectingPoint num="13" id="7520" />
-<TGConnectingPoint num="14" id="7521" />
-<TGConnectingPoint num="15" id="7522" />
-<TGConnectingPoint num="16" id="7523" />
-<TGConnectingPoint num="17" id="7524" />
-<TGConnectingPoint num="18" id="7525" />
-<TGConnectingPoint num="19" id="7526" />
-<TGConnectingPoint num="20" id="7527" />
-<TGConnectingPoint num="21" id="7528" />
-<TGConnectingPoint num="22" id="7529" />
-<TGConnectingPoint num="23" id="7530" />
-<TGConnectingPoint num="24" id="7531" />
-<TGConnectingPoint num="25" id="7532" />
-<TGConnectingPoint num="26" id="7533" />
-<TGConnectingPoint num="27" id="7534" />
-<TGConnectingPoint num="28" id="7535" />
-<TGConnectingPoint num="29" id="7536" />
-<TGConnectingPoint num="30" id="7537" />
-<TGConnectingPoint num="31" id="7538" />
+<infoparam name="start state" value="null" />
+<new d="false" />
+<TGConnectingPoint num="0" id="7299" />
 </COMPONENT>
 
-<COMPONENT type="5050" id="7572" index="5" uid="83886161-a1f2-4dd0-bf68-411e1858a130" >
-<cdparam x="773" y="170" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="S1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<CONNECTOR type="5102" id="7307" index="0" uid="6af6cf67-1199-4d90-a566-2831294d109d" >
+<cdparam x="459" y="172" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="7306" />
+<P1  x="459" y="172" id="7318" />
+<P2  x="459" y="185" id="7315" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7305" index="5" uid="bc906f1f-6591-4d76-8cec-710650f55602" >
+<father id="7307" num="0" />
+<cdparam x="464" y="180" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="5 / Receiver / avatar transition" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="7540" />
-<TGConnectingPoint num="1" id="7541" />
-<TGConnectingPoint num="2" id="7542" />
-<TGConnectingPoint num="3" id="7543" />
-<TGConnectingPoint num="4" id="7544" />
-<TGConnectingPoint num="5" id="7545" />
-<TGConnectingPoint num="6" id="7546" />
-<TGConnectingPoint num="7" id="7547" />
-<TGConnectingPoint num="8" id="7548" />
-<TGConnectingPoint num="9" id="7549" />
-<TGConnectingPoint num="10" id="7550" />
-<TGConnectingPoint num="11" id="7551" />
-<TGConnectingPoint num="12" id="7552" />
-<TGConnectingPoint num="13" id="7553" />
-<TGConnectingPoint num="14" id="7554" />
-<TGConnectingPoint num="15" id="7555" />
-<TGConnectingPoint num="16" id="7556" />
-<TGConnectingPoint num="17" id="7557" />
-<TGConnectingPoint num="18" id="7558" />
-<TGConnectingPoint num="19" id="7559" />
-<TGConnectingPoint num="20" id="7560" />
-<TGConnectingPoint num="21" id="7561" />
-<TGConnectingPoint num="22" id="7562" />
-<TGConnectingPoint num="23" id="7563" />
-<TGConnectingPoint num="24" id="7564" />
-<TGConnectingPoint num="25" id="7565" />
-<TGConnectingPoint num="26" id="7566" />
-<TGConnectingPoint num="27" id="7567" />
-<TGConnectingPoint num="28" id="7568" />
-<TGConnectingPoint num="29" id="7569" />
-<TGConnectingPoint num="30" id="7570" />
-<TGConnectingPoint num="31" id="7571" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7605" index="6" uid="b3884498-d4dc-4416-ba8a-0d9c2fd5d713" >
-<cdparam x="774" y="84" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="6 / Receiver / END3" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7573" />
-<TGConnectingPoint num="1" id="7574" />
-<TGConnectingPoint num="2" id="7575" />
-<TGConnectingPoint num="3" id="7576" />
-<TGConnectingPoint num="4" id="7577" />
-<TGConnectingPoint num="5" id="7578" />
-<TGConnectingPoint num="6" id="7579" />
-<TGConnectingPoint num="7" id="7580" />
-<TGConnectingPoint num="8" id="7581" />
-<TGConnectingPoint num="9" id="7582" />
-<TGConnectingPoint num="10" id="7583" />
-<TGConnectingPoint num="11" id="7584" />
-<TGConnectingPoint num="12" id="7585" />
-<TGConnectingPoint num="13" id="7586" />
-<TGConnectingPoint num="14" id="7587" />
-<TGConnectingPoint num="15" id="7588" />
-<TGConnectingPoint num="16" id="7589" />
-<TGConnectingPoint num="17" id="7590" />
-<TGConnectingPoint num="18" id="7591" />
-<TGConnectingPoint num="19" id="7592" />
-<TGConnectingPoint num="20" id="7593" />
-<TGConnectingPoint num="21" id="7594" />
-<TGConnectingPoint num="22" id="7595" />
-<TGConnectingPoint num="23" id="7596" />
-<TGConnectingPoint num="24" id="7597" />
-<TGConnectingPoint num="25" id="7598" />
-<TGConnectingPoint num="26" id="7599" />
-<TGConnectingPoint num="27" id="7600" />
-<TGConnectingPoint num="28" id="7601" />
-<TGConnectingPoint num="29" id="7602" />
-<TGConnectingPoint num="30" id="7603" />
-<TGConnectingPoint num="31" id="7604" />
-<color value="-65536" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7638" index="7" uid="02b69713-3322-466b-94ce-9f9de7921634" >
-<cdparam x="646" y="348" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="7 / Receiver / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7606" />
-<TGConnectingPoint num="1" id="7607" />
-<TGConnectingPoint num="2" id="7608" />
-<TGConnectingPoint num="3" id="7609" />
-<TGConnectingPoint num="4" id="7610" />
-<TGConnectingPoint num="5" id="7611" />
-<TGConnectingPoint num="6" id="7612" />
-<TGConnectingPoint num="7" id="7613" />
-<TGConnectingPoint num="8" id="7614" />
-<TGConnectingPoint num="9" id="7615" />
-<TGConnectingPoint num="10" id="7616" />
-<TGConnectingPoint num="11" id="7617" />
-<TGConnectingPoint num="12" id="7618" />
-<TGConnectingPoint num="13" id="7619" />
-<TGConnectingPoint num="14" id="7620" />
-<TGConnectingPoint num="15" id="7621" />
-<TGConnectingPoint num="16" id="7622" />
-<TGConnectingPoint num="17" id="7623" />
-<TGConnectingPoint num="18" id="7624" />
-<TGConnectingPoint num="19" id="7625" />
-<TGConnectingPoint num="20" id="7626" />
-<TGConnectingPoint num="21" id="7627" />
-<TGConnectingPoint num="22" id="7628" />
-<TGConnectingPoint num="23" id="7629" />
-<TGConnectingPoint num="24" id="7630" />
-<TGConnectingPoint num="25" id="7631" />
-<TGConnectingPoint num="26" id="7632" />
-<TGConnectingPoint num="27" id="7633" />
-<TGConnectingPoint num="28" id="7634" />
-<TGConnectingPoint num="29" id="7635" />
-<TGConnectingPoint num="30" id="7636" />
-<TGConnectingPoint num="31" id="7637" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7671" index="8" uid="bcbfb1bb-8906-4ef0-ac74-592d34f2828f" >
-<cdparam x="316" y="369" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="9 / Receiver / END1" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7639" />
-<TGConnectingPoint num="1" id="7640" />
-<TGConnectingPoint num="2" id="7641" />
-<TGConnectingPoint num="3" id="7642" />
-<TGConnectingPoint num="4" id="7643" />
-<TGConnectingPoint num="5" id="7644" />
-<TGConnectingPoint num="6" id="7645" />
-<TGConnectingPoint num="7" id="7646" />
-<TGConnectingPoint num="8" id="7647" />
-<TGConnectingPoint num="9" id="7648" />
-<TGConnectingPoint num="10" id="7649" />
-<TGConnectingPoint num="11" id="7650" />
-<TGConnectingPoint num="12" id="7651" />
-<TGConnectingPoint num="13" id="7652" />
-<TGConnectingPoint num="14" id="7653" />
-<TGConnectingPoint num="15" id="7654" />
-<TGConnectingPoint num="16" id="7655" />
-<TGConnectingPoint num="17" id="7656" />
-<TGConnectingPoint num="18" id="7657" />
-<TGConnectingPoint num="19" id="7658" />
-<TGConnectingPoint num="20" id="7659" />
-<TGConnectingPoint num="21" id="7660" />
-<TGConnectingPoint num="22" id="7661" />
-<TGConnectingPoint num="23" id="7662" />
-<TGConnectingPoint num="24" id="7663" />
-<TGConnectingPoint num="25" id="7664" />
-<TGConnectingPoint num="26" id="7665" />
-<TGConnectingPoint num="27" id="7666" />
-<TGConnectingPoint num="28" id="7667" />
-<TGConnectingPoint num="29" id="7668" />
-<TGConnectingPoint num="30" id="7669" />
-<TGConnectingPoint num="31" id="7670" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7704" index="9" uid="43fe389b-c56f-46d2-b9e1-a4a0f6e32ee5" >
-<cdparam x="160" y="312" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="10 / Receiver / END2" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7672" />
-<TGConnectingPoint num="1" id="7673" />
-<TGConnectingPoint num="2" id="7674" />
-<TGConnectingPoint num="3" id="7675" />
-<TGConnectingPoint num="4" id="7676" />
-<TGConnectingPoint num="5" id="7677" />
-<TGConnectingPoint num="6" id="7678" />
-<TGConnectingPoint num="7" id="7679" />
-<TGConnectingPoint num="8" id="7680" />
-<TGConnectingPoint num="9" id="7681" />
-<TGConnectingPoint num="10" id="7682" />
-<TGConnectingPoint num="11" id="7683" />
-<TGConnectingPoint num="12" id="7684" />
-<TGConnectingPoint num="13" id="7685" />
-<TGConnectingPoint num="14" id="7686" />
-<TGConnectingPoint num="15" id="7687" />
-<TGConnectingPoint num="16" id="7688" />
-<TGConnectingPoint num="17" id="7689" />
-<TGConnectingPoint num="18" id="7690" />
-<TGConnectingPoint num="19" id="7691" />
-<TGConnectingPoint num="20" id="7692" />
-<TGConnectingPoint num="21" id="7693" />
-<TGConnectingPoint num="22" id="7694" />
-<TGConnectingPoint num="23" id="7695" />
-<TGConnectingPoint num="24" id="7696" />
-<TGConnectingPoint num="25" id="7697" />
-<TGConnectingPoint num="26" id="7698" />
-<TGConnectingPoint num="27" id="7699" />
-<TGConnectingPoint num="28" id="7700" />
-<TGConnectingPoint num="29" id="7701" />
-<TGConnectingPoint num="30" id="7702" />
-<TGConnectingPoint num="31" id="7703" />
-<color value="-65536" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7737" index="10" uid="d45caaba-260f-4183-a8e1-f69b67796791" >
-<cdparam x="130" y="50" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="13 / S2 / start" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7705" />
-<TGConnectingPoint num="1" id="7706" />
-<TGConnectingPoint num="2" id="7707" />
-<TGConnectingPoint num="3" id="7708" />
-<TGConnectingPoint num="4" id="7709" />
-<TGConnectingPoint num="5" id="7710" />
-<TGConnectingPoint num="6" id="7711" />
-<TGConnectingPoint num="7" id="7712" />
-<TGConnectingPoint num="8" id="7713" />
-<TGConnectingPoint num="9" id="7714" />
-<TGConnectingPoint num="10" id="7715" />
-<TGConnectingPoint num="11" id="7716" />
-<TGConnectingPoint num="12" id="7717" />
-<TGConnectingPoint num="13" id="7718" />
-<TGConnectingPoint num="14" id="7719" />
-<TGConnectingPoint num="15" id="7720" />
-<TGConnectingPoint num="16" id="7721" />
-<TGConnectingPoint num="17" id="7722" />
-<TGConnectingPoint num="18" id="7723" />
-<TGConnectingPoint num="19" id="7724" />
-<TGConnectingPoint num="20" id="7725" />
-<TGConnectingPoint num="21" id="7726" />
-<TGConnectingPoint num="22" id="7727" />
-<TGConnectingPoint num="23" id="7728" />
-<TGConnectingPoint num="24" id="7729" />
-<TGConnectingPoint num="25" id="7730" />
-<TGConnectingPoint num="26" id="7731" />
-<TGConnectingPoint num="27" id="7732" />
-<TGConnectingPoint num="28" id="7733" />
-<TGConnectingPoint num="29" id="7734" />
-<TGConnectingPoint num="30" id="7735" />
-<TGConnectingPoint num="31" id="7736" />
-<color value="-16711936" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7770" index="11" uid="f7a943cd-523a-4dd1-b5a0-bc577d837ce2" >
-<cdparam x="130" y="116" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="14 / S2 / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7738" />
-<TGConnectingPoint num="1" id="7739" />
-<TGConnectingPoint num="2" id="7740" />
-<TGConnectingPoint num="3" id="7741" />
-<TGConnectingPoint num="4" id="7742" />
-<TGConnectingPoint num="5" id="7743" />
-<TGConnectingPoint num="6" id="7744" />
-<TGConnectingPoint num="7" id="7745" />
-<TGConnectingPoint num="8" id="7746" />
-<TGConnectingPoint num="9" id="7747" />
-<TGConnectingPoint num="10" id="7748" />
-<TGConnectingPoint num="11" id="7749" />
-<TGConnectingPoint num="12" id="7750" />
-<TGConnectingPoint num="13" id="7751" />
-<TGConnectingPoint num="14" id="7752" />
-<TGConnectingPoint num="15" id="7753" />
-<TGConnectingPoint num="16" id="7754" />
-<TGConnectingPoint num="17" id="7755" />
-<TGConnectingPoint num="18" id="7756" />
-<TGConnectingPoint num="19" id="7757" />
-<TGConnectingPoint num="20" id="7758" />
-<TGConnectingPoint num="21" id="7759" />
-<TGConnectingPoint num="22" id="7760" />
-<TGConnectingPoint num="23" id="7761" />
-<TGConnectingPoint num="24" id="7762" />
-<TGConnectingPoint num="25" id="7763" />
-<TGConnectingPoint num="26" id="7764" />
-<TGConnectingPoint num="27" id="7765" />
-<TGConnectingPoint num="28" id="7766" />
-<TGConnectingPoint num="29" id="7767" />
-<TGConnectingPoint num="30" id="7768" />
-<TGConnectingPoint num="31" id="7769" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7803" index="12" uid="29c8e8d2-ede8-43e2-96e4-3f80d5533cd5" >
-<cdparam x="315" y="45" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="15 / S2 / stop" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7771" />
-<TGConnectingPoint num="1" id="7772" />
-<TGConnectingPoint num="2" id="7773" />
-<TGConnectingPoint num="3" id="7774" />
-<TGConnectingPoint num="4" id="7775" />
-<TGConnectingPoint num="5" id="7776" />
-<TGConnectingPoint num="6" id="7777" />
-<TGConnectingPoint num="7" id="7778" />
-<TGConnectingPoint num="8" id="7779" />
-<TGConnectingPoint num="9" id="7780" />
-<TGConnectingPoint num="10" id="7781" />
-<TGConnectingPoint num="11" id="7782" />
-<TGConnectingPoint num="12" id="7783" />
-<TGConnectingPoint num="13" id="7784" />
-<TGConnectingPoint num="14" id="7785" />
-<TGConnectingPoint num="15" id="7786" />
-<TGConnectingPoint num="16" id="7787" />
-<TGConnectingPoint num="17" id="7788" />
-<TGConnectingPoint num="18" id="7789" />
-<TGConnectingPoint num="19" id="7790" />
-<TGConnectingPoint num="20" id="7791" />
-<TGConnectingPoint num="21" id="7792" />
-<TGConnectingPoint num="22" id="7793" />
-<TGConnectingPoint num="23" id="7794" />
-<TGConnectingPoint num="24" id="7795" />
-<TGConnectingPoint num="25" id="7796" />
-<TGConnectingPoint num="26" id="7797" />
-<TGConnectingPoint num="27" id="7798" />
-<TGConnectingPoint num="28" id="7799" />
-<TGConnectingPoint num="29" id="7800" />
-<TGConnectingPoint num="30" id="7801" />
-<TGConnectingPoint num="31" id="7802" />
-<color value="-65536" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7836" index="13" uid="9048c5e0-277f-4cc4-a730-208719ac924f" >
-<cdparam x="602" y="38" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="16 / S1 / start" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7804" />
-<TGConnectingPoint num="1" id="7805" />
-<TGConnectingPoint num="2" id="7806" />
-<TGConnectingPoint num="3" id="7807" />
-<TGConnectingPoint num="4" id="7808" />
-<TGConnectingPoint num="5" id="7809" />
-<TGConnectingPoint num="6" id="7810" />
-<TGConnectingPoint num="7" id="7811" />
-<TGConnectingPoint num="8" id="7812" />
-<TGConnectingPoint num="9" id="7813" />
-<TGConnectingPoint num="10" id="7814" />
-<TGConnectingPoint num="11" id="7815" />
-<TGConnectingPoint num="12" id="7816" />
-<TGConnectingPoint num="13" id="7817" />
-<TGConnectingPoint num="14" id="7818" />
-<TGConnectingPoint num="15" id="7819" />
-<TGConnectingPoint num="16" id="7820" />
-<TGConnectingPoint num="17" id="7821" />
-<TGConnectingPoint num="18" id="7822" />
-<TGConnectingPoint num="19" id="7823" />
-<TGConnectingPoint num="20" id="7824" />
-<TGConnectingPoint num="21" id="7825" />
-<TGConnectingPoint num="22" id="7826" />
-<TGConnectingPoint num="23" id="7827" />
-<TGConnectingPoint num="24" id="7828" />
-<TGConnectingPoint num="25" id="7829" />
-<TGConnectingPoint num="26" id="7830" />
-<TGConnectingPoint num="27" id="7831" />
-<TGConnectingPoint num="28" id="7832" />
-<TGConnectingPoint num="29" id="7833" />
-<TGConnectingPoint num="30" id="7834" />
-<TGConnectingPoint num="31" id="7835" />
-<color value="-16711936" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7869" index="14" uid="b949a31e-9486-4bb9-b4d9-3a53d5b4adc9" >
-<cdparam x="603" y="119" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="17 / S1 / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7837" />
-<TGConnectingPoint num="1" id="7838" />
-<TGConnectingPoint num="2" id="7839" />
-<TGConnectingPoint num="3" id="7840" />
-<TGConnectingPoint num="4" id="7841" />
-<TGConnectingPoint num="5" id="7842" />
-<TGConnectingPoint num="6" id="7843" />
-<TGConnectingPoint num="7" id="7844" />
-<TGConnectingPoint num="8" id="7845" />
-<TGConnectingPoint num="9" id="7846" />
-<TGConnectingPoint num="10" id="7847" />
-<TGConnectingPoint num="11" id="7848" />
-<TGConnectingPoint num="12" id="7849" />
-<TGConnectingPoint num="13" id="7850" />
-<TGConnectingPoint num="14" id="7851" />
-<TGConnectingPoint num="15" id="7852" />
-<TGConnectingPoint num="16" id="7853" />
-<TGConnectingPoint num="17" id="7854" />
-<TGConnectingPoint num="18" id="7855" />
-<TGConnectingPoint num="19" id="7856" />
-<TGConnectingPoint num="20" id="7857" />
-<TGConnectingPoint num="21" id="7858" />
-<TGConnectingPoint num="22" id="7859" />
-<TGConnectingPoint num="23" id="7860" />
-<TGConnectingPoint num="24" id="7861" />
-<TGConnectingPoint num="25" id="7862" />
-<TGConnectingPoint num="26" id="7863" />
-<TGConnectingPoint num="27" id="7864" />
-<TGConnectingPoint num="28" id="7865" />
-<TGConnectingPoint num="29" id="7866" />
-<TGConnectingPoint num="30" id="7867" />
-<TGConnectingPoint num="31" id="7868" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7902" index="15" uid="5bf322f4-8194-474b-8c0c-048ecc23fbf0" >
-<cdparam x="505" y="36" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="18 / S1 / stop" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7870" />
-<TGConnectingPoint num="1" id="7871" />
-<TGConnectingPoint num="2" id="7872" />
-<TGConnectingPoint num="3" id="7873" />
-<TGConnectingPoint num="4" id="7874" />
-<TGConnectingPoint num="5" id="7875" />
-<TGConnectingPoint num="6" id="7876" />
-<TGConnectingPoint num="7" id="7877" />
-<TGConnectingPoint num="8" id="7878" />
-<TGConnectingPoint num="9" id="7879" />
-<TGConnectingPoint num="10" id="7880" />
-<TGConnectingPoint num="11" id="7881" />
-<TGConnectingPoint num="12" id="7882" />
-<TGConnectingPoint num="13" id="7883" />
-<TGConnectingPoint num="14" id="7884" />
-<TGConnectingPoint num="15" id="7885" />
-<TGConnectingPoint num="16" id="7886" />
-<TGConnectingPoint num="17" id="7887" />
-<TGConnectingPoint num="18" id="7888" />
-<TGConnectingPoint num="19" id="7889" />
-<TGConnectingPoint num="20" id="7890" />
-<TGConnectingPoint num="21" id="7891" />
-<TGConnectingPoint num="22" id="7892" />
-<TGConnectingPoint num="23" id="7893" />
-<TGConnectingPoint num="24" id="7894" />
-<TGConnectingPoint num="25" id="7895" />
-<TGConnectingPoint num="26" id="7896" />
-<TGConnectingPoint num="27" id="7897" />
-<TGConnectingPoint num="28" id="7898" />
-<TGConnectingPoint num="29" id="7899" />
-<TGConnectingPoint num="30" id="7900" />
-<TGConnectingPoint num="31" id="7901" />
-<color value="-65536" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7935" index="16" uid="9edccb35-c33c-456d-950f-58a819e40ada" >
-<cdparam x="314" y="164" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="19 / S2 / Sending signal &quot;send&quot;" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7903" />
-<TGConnectingPoint num="1" id="7904" />
-<TGConnectingPoint num="2" id="7905" />
-<TGConnectingPoint num="3" id="7906" />
-<TGConnectingPoint num="4" id="7907" />
-<TGConnectingPoint num="5" id="7908" />
-<TGConnectingPoint num="6" id="7909" />
-<TGConnectingPoint num="7" id="7910" />
-<TGConnectingPoint num="8" id="7911" />
-<TGConnectingPoint num="9" id="7912" />
-<TGConnectingPoint num="10" id="7913" />
-<TGConnectingPoint num="11" id="7914" />
-<TGConnectingPoint num="12" id="7915" />
-<TGConnectingPoint num="13" id="7916" />
-<TGConnectingPoint num="14" id="7917" />
-<TGConnectingPoint num="15" id="7918" />
-<TGConnectingPoint num="16" id="7919" />
-<TGConnectingPoint num="17" id="7920" />
-<TGConnectingPoint num="18" id="7921" />
-<TGConnectingPoint num="19" id="7922" />
-<TGConnectingPoint num="20" id="7923" />
-<TGConnectingPoint num="21" id="7924" />
-<TGConnectingPoint num="22" id="7925" />
-<TGConnectingPoint num="23" id="7926" />
-<TGConnectingPoint num="24" id="7927" />
-<TGConnectingPoint num="25" id="7928" />
-<TGConnectingPoint num="26" id="7929" />
-<TGConnectingPoint num="27" id="7930" />
-<TGConnectingPoint num="28" id="7931" />
-<TGConnectingPoint num="29" id="7932" />
-<TGConnectingPoint num="30" id="7933" />
-<TGConnectingPoint num="31" id="7934" />
-<color value="-1059664" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="7968" index="17" uid="b2c44989-e482-4da5-b430-52378571eaf5" >
-<cdparam x="315" y="259" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="20 / Receiver / Receiving signal &quot;recv&quot;" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7936" />
-<TGConnectingPoint num="1" id="7937" />
-<TGConnectingPoint num="2" id="7938" />
-<TGConnectingPoint num="3" id="7939" />
-<TGConnectingPoint num="4" id="7940" />
-<TGConnectingPoint num="5" id="7941" />
-<TGConnectingPoint num="6" id="7942" />
-<TGConnectingPoint num="7" id="7943" />
-<TGConnectingPoint num="8" id="7944" />
-<TGConnectingPoint num="9" id="7945" />
-<TGConnectingPoint num="10" id="7946" />
-<TGConnectingPoint num="11" id="7947" />
-<TGConnectingPoint num="12" id="7948" />
-<TGConnectingPoint num="13" id="7949" />
-<TGConnectingPoint num="14" id="7950" />
-<TGConnectingPoint num="15" id="7951" />
-<TGConnectingPoint num="16" id="7952" />
-<TGConnectingPoint num="17" id="7953" />
-<TGConnectingPoint num="18" id="7954" />
-<TGConnectingPoint num="19" id="7955" />
-<TGConnectingPoint num="20" id="7956" />
-<TGConnectingPoint num="21" id="7957" />
-<TGConnectingPoint num="22" id="7958" />
-<TGConnectingPoint num="23" id="7959" />
-<TGConnectingPoint num="24" id="7960" />
-<TGConnectingPoint num="25" id="7961" />
-<TGConnectingPoint num="26" id="7962" />
-<TGConnectingPoint num="27" id="7963" />
-<TGConnectingPoint num="28" id="7964" />
-<TGConnectingPoint num="29" id="7965" />
-<TGConnectingPoint num="30" id="7966" />
-<TGConnectingPoint num="31" id="7967" />
-<color value="-2638720" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8001" index="18" uid="0129a597-b65a-4557-b9fa-1db07b8ed5df" >
-<cdparam x="505" y="170" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="21 / S1 / Sending signal &quot;send&quot;" />
-<new d="false" />
-<TGConnectingPoint num="0" id="7969" />
-<TGConnectingPoint num="1" id="7970" />
-<TGConnectingPoint num="2" id="7971" />
-<TGConnectingPoint num="3" id="7972" />
-<TGConnectingPoint num="4" id="7973" />
-<TGConnectingPoint num="5" id="7974" />
-<TGConnectingPoint num="6" id="7975" />
-<TGConnectingPoint num="7" id="7976" />
-<TGConnectingPoint num="8" id="7977" />
-<TGConnectingPoint num="9" id="7978" />
-<TGConnectingPoint num="10" id="7979" />
-<TGConnectingPoint num="11" id="7980" />
-<TGConnectingPoint num="12" id="7981" />
-<TGConnectingPoint num="13" id="7982" />
-<TGConnectingPoint num="14" id="7983" />
-<TGConnectingPoint num="15" id="7984" />
-<TGConnectingPoint num="16" id="7985" />
-<TGConnectingPoint num="17" id="7986" />
-<TGConnectingPoint num="18" id="7987" />
-<TGConnectingPoint num="19" id="7988" />
-<TGConnectingPoint num="20" id="7989" />
-<TGConnectingPoint num="21" id="7990" />
-<TGConnectingPoint num="22" id="7991" />
-<TGConnectingPoint num="23" id="7992" />
-<TGConnectingPoint num="24" id="7993" />
-<TGConnectingPoint num="25" id="7994" />
-<TGConnectingPoint num="26" id="7995" />
-<TGConnectingPoint num="27" id="7996" />
-<TGConnectingPoint num="28" id="7997" />
-<TGConnectingPoint num="29" id="7998" />
-<TGConnectingPoint num="30" id="7999" />
-<TGConnectingPoint num="31" id="8000" />
-<color value="-1059664" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8034" index="19" uid="9a163c08-647d-416f-ba46-f35b2cef55ac" >
-<cdparam x="505" y="273" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="22 / Receiver / Receiving signal &quot;recv&quot;" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8002" />
-<TGConnectingPoint num="1" id="8003" />
-<TGConnectingPoint num="2" id="8004" />
-<TGConnectingPoint num="3" id="8005" />
-<TGConnectingPoint num="4" id="8006" />
-<TGConnectingPoint num="5" id="8007" />
-<TGConnectingPoint num="6" id="8008" />
-<TGConnectingPoint num="7" id="8009" />
-<TGConnectingPoint num="8" id="8010" />
-<TGConnectingPoint num="9" id="8011" />
-<TGConnectingPoint num="10" id="8012" />
-<TGConnectingPoint num="11" id="8013" />
-<TGConnectingPoint num="12" id="8014" />
-<TGConnectingPoint num="13" id="8015" />
-<TGConnectingPoint num="14" id="8016" />
-<TGConnectingPoint num="15" id="8017" />
-<TGConnectingPoint num="16" id="8018" />
-<TGConnectingPoint num="17" id="8019" />
-<TGConnectingPoint num="18" id="8020" />
-<TGConnectingPoint num="19" id="8021" />
-<TGConnectingPoint num="20" id="8022" />
-<TGConnectingPoint num="21" id="8023" />
-<TGConnectingPoint num="22" id="8024" />
-<TGConnectingPoint num="23" id="8025" />
-<TGConnectingPoint num="24" id="8026" />
-<TGConnectingPoint num="25" id="8027" />
-<TGConnectingPoint num="26" id="8028" />
-<TGConnectingPoint num="27" id="8029" />
-<TGConnectingPoint num="28" id="8030" />
-<TGConnectingPoint num="29" id="8031" />
-<TGConnectingPoint num="30" id="8032" />
-<TGConnectingPoint num="31" id="8033" />
-<color value="-2638720" />
-</COMPONENT>
-
-<CONNECTOR type="5051" id="8035" index="20" uid="10ba79fa-b601-4847-8537-778250dd2a4a" >
-<cdparam x="753" y="435" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="1012" y="47" id="7375" />
-<P2  x="1013" y="158" id="7408" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8036" index="21" uid="b736ca24-374f-48e8-acc8-af87209ef194" >
-<cdparam x="738" y="542" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="1013" y="158" id="7408" />
-<P2  x="1016" y="239" id="7441" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8037" index="22" uid="0d74e802-e4f9-4e93-ae75-f296bdd97474" >
-<cdparam x="657" y="929" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="789" y="296" id="7507" />
-<P2  x="790" y="187" id="7540" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8038" index="23" uid="84ac438a-cdbb-4da2-8fd0-c4b034fa8ce5" >
-<cdparam x="554" y="965" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="790" y="187" id="7540" />
-<P2  x="791" y="101" id="7573" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8039" index="24" uid="9e15dc40-2fb4-4066-99cc-1c4d5b75bc8b" >
-<cdparam x="701" y="872" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="789" y="296" id="7507" />
-<P2  x="663" y="365" id="7606" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8040" index="25" uid="84fc6129-65fc-420e-a5af-0dc7ad3da6bc" >
-<cdparam x="383" y="893" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="663" y="365" id="7606" />
-<P2  x="522" y="290" id="8002" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8041" index="26" uid="fbd21d2b-ad29-4c6b-95fe-c8e6dce27fdd" >
-<cdparam x="150" y="357" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="147" y="67" id="7705" />
-<P2  x="147" y="133" id="7738" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8042" index="27" uid="67d8174d-f826-4ac3-8cb5-3163d120d507" >
-<cdparam x="383" y="140" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="619" y="55" id="7804" />
-<P2  x="620" y="136" id="7837" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8043" index="28" uid="f740d6c2-519c-4a7e-8ee0-4b0d63ed1417" >
-<cdparam x="206" y="264" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="147" y="133" id="7738" />
-<P2  x="331" y="181" id="7903" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8044" index="29" uid="b5ba7cf8-3e91-4a8e-b213-83e5f6a6c39c" >
-<cdparam x="701" y="161" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="331" y="181" id="7903" />
-<P2  x="332" y="276" id="7936" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8045" index="30" uid="05bda03a-d783-4ab6-883b-7e003952c0a0" >
-<cdparam x="790" y="224" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="332" y="276" id="7936" />
-<P2  x="331" y="181" id="7903" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8046" index="31" uid="adcc754b-74d5-4eda-a1c8-b3fd1870e7d1" >
-<cdparam x="489" y="117" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="620" y="136" id="7837" />
-<P2  x="522" y="187" id="7969" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8047" index="32" uid="70d6943c-7cc3-4ad6-a12d-a6906f2c28a6" >
-<cdparam x="858" y="309" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="522" y="187" id="7969" />
-<P2  x="522" y="290" id="8002" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8048" index="33" uid="6939a184-937b-4e4a-913f-6d29e5056a40" >
-<cdparam x="902" y="409" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="522" y="290" id="8002" />
-<P2  x="522" y="187" id="7969" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8049" index="34" uid="0cb3b2c1-c478-4a76-a5c6-40757ba3103d" >
-<cdparam x="746" y="866" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="859" y="367" id="7474" />
-<P2  x="789" y="296" id="7507" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8050" index="35" uid="5207bc72-8b12-47cd-976a-72c42bb83f51" >
-<cdparam x="286" y="843" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="663" y="365" id="7606" />
-<P2  x="332" y="276" id="7936" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8051" index="36" uid="68f93664-8f9e-4d1b-af06-d44c5c18a943" >
-<cdparam x="790" y="224" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="332" y="276" id="7936" />
-<P2  x="333" y="386" id="7639" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8052" index="37" uid="ed6d85e2-c57f-466f-aa90-8fa1d97440b5" >
-<cdparam x="902" y="409" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="522" y="290" id="8002" />
-<P2  x="333" y="386" id="7639" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8053" index="38" uid="f3a5e5e6-2282-4174-b214-def60436e26d" >
-<cdparam x="206" y="769" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="333" y="386" id="7639" />
-<P2  x="177" y="329" id="7672" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8054" index="39" uid="45ee6076-8fa7-46e9-bedc-daed8867e321" >
-<cdparam x="701" y="161" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="331" y="181" id="7903" />
-<P2  x="332" y="62" id="7771" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8055" index="40" uid="4967fdd8-05ff-46b4-a8de-f55b71088e1a" >
-<cdparam x="858" y="309" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="522" y="187" id="7969" />
-<P2  x="522" y="53" id="7870" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-
-</GraphDPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="Graph" nameTab="Graph_cloned" >
-<GraphDPanel name="AUT graph" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" fontModifier="1.0" >
-<COMPONENT type="5050" id="8088" index="0" uid="8b8b5254-e7f1-4474-97b7-fe418c45097d" >
-<cdparam x="308" y="304" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="3 / Receiver / start" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8056" />
-<TGConnectingPoint num="1" id="8057" />
-<TGConnectingPoint num="2" id="8058" />
-<TGConnectingPoint num="3" id="8059" />
-<TGConnectingPoint num="4" id="8060" />
-<TGConnectingPoint num="5" id="8061" />
-<TGConnectingPoint num="6" id="8062" />
-<TGConnectingPoint num="7" id="8063" />
-<TGConnectingPoint num="8" id="8064" />
-<TGConnectingPoint num="9" id="8065" />
-<TGConnectingPoint num="10" id="8066" />
-<TGConnectingPoint num="11" id="8067" />
-<TGConnectingPoint num="12" id="8068" />
-<TGConnectingPoint num="13" id="8069" />
-<TGConnectingPoint num="14" id="8070" />
-<TGConnectingPoint num="15" id="8071" />
-<TGConnectingPoint num="16" id="8072" />
-<TGConnectingPoint num="17" id="8073" />
-<TGConnectingPoint num="18" id="8074" />
-<TGConnectingPoint num="19" id="8075" />
-<TGConnectingPoint num="20" id="8076" />
-<TGConnectingPoint num="21" id="8077" />
-<TGConnectingPoint num="22" id="8078" />
-<TGConnectingPoint num="23" id="8079" />
-<TGConnectingPoint num="24" id="8080" />
-<TGConnectingPoint num="25" id="8081" />
-<TGConnectingPoint num="26" id="8082" />
-<TGConnectingPoint num="27" id="8083" />
-<TGConnectingPoint num="28" id="8084" />
-<TGConnectingPoint num="29" id="8085" />
-<TGConnectingPoint num="30" id="8086" />
-<TGConnectingPoint num="31" id="8087" />
-<color value="-16711936" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8121" index="1" uid="483e2ee9-23b5-4dbd-84e7-89f0de0d2412" >
-<cdparam x="238" y="233" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="4 / Receiver / Waiting" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8089" />
-<TGConnectingPoint num="1" id="8090" />
-<TGConnectingPoint num="2" id="8091" />
-<TGConnectingPoint num="3" id="8092" />
-<TGConnectingPoint num="4" id="8093" />
-<TGConnectingPoint num="5" id="8094" />
-<TGConnectingPoint num="6" id="8095" />
-<TGConnectingPoint num="7" id="8096" />
-<TGConnectingPoint num="8" id="8097" />
-<TGConnectingPoint num="9" id="8098" />
-<TGConnectingPoint num="10" id="8099" />
-<TGConnectingPoint num="11" id="8100" />
-<TGConnectingPoint num="12" id="8101" />
-<TGConnectingPoint num="13" id="8102" />
-<TGConnectingPoint num="14" id="8103" />
-<TGConnectingPoint num="15" id="8104" />
-<TGConnectingPoint num="16" id="8105" />
-<TGConnectingPoint num="17" id="8106" />
-<TGConnectingPoint num="18" id="8107" />
-<TGConnectingPoint num="19" id="8108" />
-<TGConnectingPoint num="20" id="8109" />
-<TGConnectingPoint num="21" id="8110" />
-<TGConnectingPoint num="22" id="8111" />
-<TGConnectingPoint num="23" id="8112" />
-<TGConnectingPoint num="24" id="8113" />
-<TGConnectingPoint num="25" id="8114" />
-<TGConnectingPoint num="26" id="8115" />
-<TGConnectingPoint num="27" id="8116" />
-<TGConnectingPoint num="28" id="8117" />
-<TGConnectingPoint num="29" id="8118" />
-<TGConnectingPoint num="30" id="8119" />
-<TGConnectingPoint num="31" id="8120" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8154" index="2" uid="e62c8739-5547-4537-a8e2-dddb8aa365c2" >
-<cdparam x="239" y="124" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="5 / Receiver / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8122" />
-<TGConnectingPoint num="1" id="8123" />
-<TGConnectingPoint num="2" id="8124" />
-<TGConnectingPoint num="3" id="8125" />
-<TGConnectingPoint num="4" id="8126" />
-<TGConnectingPoint num="5" id="8127" />
-<TGConnectingPoint num="6" id="8128" />
-<TGConnectingPoint num="7" id="8129" />
-<TGConnectingPoint num="8" id="8130" />
-<TGConnectingPoint num="9" id="8131" />
-<TGConnectingPoint num="10" id="8132" />
-<TGConnectingPoint num="11" id="8133" />
-<TGConnectingPoint num="12" id="8134" />
-<TGConnectingPoint num="13" id="8135" />
-<TGConnectingPoint num="14" id="8136" />
-<TGConnectingPoint num="15" id="8137" />
-<TGConnectingPoint num="16" id="8138" />
-<TGConnectingPoint num="17" id="8139" />
-<TGConnectingPoint num="18" id="8140" />
-<TGConnectingPoint num="19" id="8141" />
-<TGConnectingPoint num="20" id="8142" />
-<TGConnectingPoint num="21" id="8143" />
-<TGConnectingPoint num="22" id="8144" />
-<TGConnectingPoint num="23" id="8145" />
-<TGConnectingPoint num="24" id="8146" />
-<TGConnectingPoint num="25" id="8147" />
-<TGConnectingPoint num="26" id="8148" />
-<TGConnectingPoint num="27" id="8149" />
-<TGConnectingPoint num="28" id="8150" />
-<TGConnectingPoint num="29" id="8151" />
-<TGConnectingPoint num="30" id="8152" />
-<TGConnectingPoint num="31" id="8153" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8187" index="3" uid="824a4c7d-d96f-4a17-a646-a9e9e6d9aae7" >
-<cdparam x="240" y="38" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="6 / Receiver / END3" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8155" />
-<TGConnectingPoint num="1" id="8156" />
-<TGConnectingPoint num="2" id="8157" />
-<TGConnectingPoint num="3" id="8158" />
-<TGConnectingPoint num="4" id="8159" />
-<TGConnectingPoint num="5" id="8160" />
-<TGConnectingPoint num="6" id="8161" />
-<TGConnectingPoint num="7" id="8162" />
-<TGConnectingPoint num="8" id="8163" />
-<TGConnectingPoint num="9" id="8164" />
-<TGConnectingPoint num="10" id="8165" />
-<TGConnectingPoint num="11" id="8166" />
-<TGConnectingPoint num="12" id="8167" />
-<TGConnectingPoint num="13" id="8168" />
-<TGConnectingPoint num="14" id="8169" />
-<TGConnectingPoint num="15" id="8170" />
-<TGConnectingPoint num="16" id="8171" />
-<TGConnectingPoint num="17" id="8172" />
-<TGConnectingPoint num="18" id="8173" />
-<TGConnectingPoint num="19" id="8174" />
-<TGConnectingPoint num="20" id="8175" />
-<TGConnectingPoint num="21" id="8176" />
-<TGConnectingPoint num="22" id="8177" />
-<TGConnectingPoint num="23" id="8178" />
-<TGConnectingPoint num="24" id="8179" />
-<TGConnectingPoint num="25" id="8180" />
-<TGConnectingPoint num="26" id="8181" />
-<TGConnectingPoint num="27" id="8182" />
-<TGConnectingPoint num="28" id="8183" />
-<TGConnectingPoint num="29" id="8184" />
-<TGConnectingPoint num="30" id="8185" />
-<TGConnectingPoint num="31" id="8186" />
-<color value="-65536" />
-</COMPONENT>
-
-<COMPONENT type="5050" id="8220" index="4" uid="e1432f0e-dd56-4521-ac87-144eeabc93a2" >
-<cdparam x="112" y="302" />
-<sizeparam width="35" height="35" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="vertex" value="7 / Receiver / avatar transition" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8188" />
-<TGConnectingPoint num="1" id="8189" />
-<TGConnectingPoint num="2" id="8190" />
-<TGConnectingPoint num="3" id="8191" />
-<TGConnectingPoint num="4" id="8192" />
-<TGConnectingPoint num="5" id="8193" />
-<TGConnectingPoint num="6" id="8194" />
-<TGConnectingPoint num="7" id="8195" />
-<TGConnectingPoint num="8" id="8196" />
-<TGConnectingPoint num="9" id="8197" />
-<TGConnectingPoint num="10" id="8198" />
-<TGConnectingPoint num="11" id="8199" />
-<TGConnectingPoint num="12" id="8200" />
-<TGConnectingPoint num="13" id="8201" />
-<TGConnectingPoint num="14" id="8202" />
-<TGConnectingPoint num="15" id="8203" />
-<TGConnectingPoint num="16" id="8204" />
-<TGConnectingPoint num="17" id="8205" />
-<TGConnectingPoint num="18" id="8206" />
-<TGConnectingPoint num="19" id="8207" />
-<TGConnectingPoint num="20" id="8208" />
-<TGConnectingPoint num="21" id="8209" />
-<TGConnectingPoint num="22" id="8210" />
-<TGConnectingPoint num="23" id="8211" />
-<TGConnectingPoint num="24" id="8212" />
-<TGConnectingPoint num="25" id="8213" />
-<TGConnectingPoint num="26" id="8214" />
-<TGConnectingPoint num="27" id="8215" />
-<TGConnectingPoint num="28" id="8216" />
-<TGConnectingPoint num="29" id="8217" />
-<TGConnectingPoint num="30" id="8218" />
-<TGConnectingPoint num="31" id="8219" />
-</COMPONENT>
-
-<CONNECTOR type="5051" id="8221" index="5" uid="0dad6c9a-aa90-4659-a8d1-43a16480eed5" >
-<cdparam x="123" y="883" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="255" y="250" id="8089" />
-<P2  x="256" y="141" id="8122" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8222" index="6" uid="1787c693-8257-417c-82e7-dc4303472859" >
-<cdparam x="20" y="919" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="256" y="141" id="8122" />
-<P2  x="257" y="55" id="8155" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8223" index="7" uid="28d7451c-a573-49d6-9516-29de3a1a9963" >
-<cdparam x="167" y="826" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="255" y="250" id="8089" />
-<P2  x="129" y="319" id="8188" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="5051" id="8224" index="8" uid="84c034ff-2e6c-409c-a923-ae82eec91ef6" >
-<cdparam x="212" y="820" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<P1  x="325" y="321" id="8056" />
-<P2  x="255" y="250" id="8089" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<trans randomA="0.0" randomB="0.0" />
-</extraparam>
-</CONNECTOR>
-
-</GraphDPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="AVATAR Design" nameTab="Modelsward2023Toy_Before" tabs="Block Diagram$Sender$S1$S2$Receiver$Other" >
-<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<MainCode value="void __user_init() {"/>
-<MainCode value="}"/>
-<Optimized value="true" />
-<considerTimingOperators value="true" />
-<Validated value="Other;Receiver;Sender;S2;S1;" />
-<Ignored value="" />
-
-<CONNECTOR type="5002" id="8226" index="0" uid="daa36774-6e57-4f7c-a4b0-686a051e015a" >
-<cdparam x="578" y="346" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="" />
-<TGConnectingPoint num="0" id="8225" />
-<P1  x="578" y="346" id="8404" />
-<P2  x="686" y="346" id="8271" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-<extraparam>
-<isd value="in recv()" />
-<oso value="out send()" />
-<FIFOType asynchronous="false" synchronousCH="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
-</extraparam>
-</CONNECTOR>
-<COMPONENT type="5000" id="8267" index="1" uid="958f2b5d-6d6d-4c73-b0f1-e7da099a294d" >
-<cdparam x="866" y="285" />
-<sizeparam width="132" height="121" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Block" value="Other" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8227" />
-<TGConnectingPoint num="1" id="8228" />
-<TGConnectingPoint num="2" id="8229" />
-<TGConnectingPoint num="3" id="8230" />
-<TGConnectingPoint num="4" id="8231" />
-<TGConnectingPoint num="5" id="8232" />
-<TGConnectingPoint num="6" id="8233" />
-<TGConnectingPoint num="7" id="8234" />
-<TGConnectingPoint num="8" id="8235" />
-<TGConnectingPoint num="9" id="8236" />
-<TGConnectingPoint num="10" id="8237" />
-<TGConnectingPoint num="11" id="8238" />
-<TGConnectingPoint num="12" id="8239" />
-<TGConnectingPoint num="13" id="8240" />
-<TGConnectingPoint num="14" id="8241" />
-<TGConnectingPoint num="15" id="8242" />
-<TGConnectingPoint num="16" id="8243" />
-<TGConnectingPoint num="17" id="8244" />
-<TGConnectingPoint num="18" id="8245" />
-<TGConnectingPoint num="19" id="8246" />
-<TGConnectingPoint num="20" id="8247" />
-<TGConnectingPoint num="21" id="8248" />
-<TGConnectingPoint num="22" id="8249" />
-<TGConnectingPoint num="23" id="8250" />
-<TGConnectingPoint num="24" id="8251" />
-<TGConnectingPoint num="25" id="8252" />
-<TGConnectingPoint num="26" id="8253" />
-<TGConnectingPoint num="27" id="8254" />
-<TGConnectingPoint num="28" id="8255" />
-<TGConnectingPoint num="29" id="8256" />
-<TGConnectingPoint num="30" id="8257" />
-<TGConnectingPoint num="31" id="8258" />
-<TGConnectingPoint num="32" id="8259" />
-<TGConnectingPoint num="33" id="8260" />
-<TGConnectingPoint num="34" id="8261" />
-<TGConnectingPoint num="35" id="8262" />
-<TGConnectingPoint num="36" id="8263" />
-<TGConnectingPoint num="37" id="8264" />
-<TGConnectingPoint num="38" id="8265" />
-<TGConnectingPoint num="39" id="8266" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5000" id="8308" index="2" uid="6d8f387c-997b-4073-a149-a020ac367c58" >
-<cdparam x="686" y="287" />
-<sizeparam width="127" height="119" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Block" value="Receiver" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8268" />
-<TGConnectingPoint num="1" id="8269" />
-<TGConnectingPoint num="2" id="8270" />
-<TGConnectingPoint num="3" id="8271" />
-<TGConnectingPoint num="4" id="8272" />
-<TGConnectingPoint num="5" id="8273" />
-<TGConnectingPoint num="6" id="8274" />
-<TGConnectingPoint num="7" id="8275" />
-<TGConnectingPoint num="8" id="8276" />
-<TGConnectingPoint num="9" id="8277" />
-<TGConnectingPoint num="10" id="8278" />
-<TGConnectingPoint num="11" id="8279" />
-<TGConnectingPoint num="12" id="8280" />
-<TGConnectingPoint num="13" id="8281" />
-<TGConnectingPoint num="14" id="8282" />
-<TGConnectingPoint num="15" id="8283" />
-<TGConnectingPoint num="16" id="8284" />
-<TGConnectingPoint num="17" id="8285" />
-<TGConnectingPoint num="18" id="8286" />
-<TGConnectingPoint num="19" id="8287" />
-<TGConnectingPoint num="20" id="8288" />
-<TGConnectingPoint num="21" id="8289" />
-<TGConnectingPoint num="22" id="8290" />
-<TGConnectingPoint num="23" id="8291" />
-<TGConnectingPoint num="24" id="8292" />
-<TGConnectingPoint num="25" id="8293" />
-<TGConnectingPoint num="26" id="8294" />
-<TGConnectingPoint num="27" id="8295" />
-<TGConnectingPoint num="28" id="8296" />
-<TGConnectingPoint num="29" id="8297" />
-<TGConnectingPoint num="30" id="8298" />
-<TGConnectingPoint num="31" id="8299" />
-<TGConnectingPoint num="32" id="8300" />
-<TGConnectingPoint num="33" id="8301" />
-<TGConnectingPoint num="34" id="8302" />
-<TGConnectingPoint num="35" id="8303" />
-<TGConnectingPoint num="36" id="8304" />
-<TGConnectingPoint num="37" id="8305" />
-<TGConnectingPoint num="38" id="8306" />
-<TGConnectingPoint num="39" id="8307" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-<Signal value="in recv()" attached="true" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5000" id="8431" index="3" uid="3d1dd9c5-32f1-478f-93f0-fb00d7c0dfbf" >
-<cdparam x="278" y="177" />
-<sizeparam width="300" height="226" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Block" value="Sender" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8391" />
-<TGConnectingPoint num="1" id="8392" />
-<TGConnectingPoint num="2" id="8393" />
-<TGConnectingPoint num="3" id="8394" />
-<TGConnectingPoint num="4" id="8395" />
-<TGConnectingPoint num="5" id="8396" />
-<TGConnectingPoint num="6" id="8397" />
-<TGConnectingPoint num="7" id="8398" />
-<TGConnectingPoint num="8" id="8399" />
-<TGConnectingPoint num="9" id="8400" />
-<TGConnectingPoint num="10" id="8401" />
-<TGConnectingPoint num="11" id="8402" />
-<TGConnectingPoint num="12" id="8403" />
-<TGConnectingPoint num="13" id="8404" />
-<TGConnectingPoint num="14" id="8405" />
-<TGConnectingPoint num="15" id="8406" />
-<TGConnectingPoint num="16" id="8407" />
-<TGConnectingPoint num="17" id="8408" />
-<TGConnectingPoint num="18" id="8409" />
-<TGConnectingPoint num="19" id="8410" />
-<TGConnectingPoint num="20" id="8411" />
-<TGConnectingPoint num="21" id="8412" />
-<TGConnectingPoint num="22" id="8413" />
-<TGConnectingPoint num="23" id="8414" />
-<TGConnectingPoint num="24" id="8415" />
-<TGConnectingPoint num="25" id="8416" />
-<TGConnectingPoint num="26" id="8417" />
-<TGConnectingPoint num="27" id="8418" />
-<TGConnectingPoint num="28" id="8419" />
-<TGConnectingPoint num="29" id="8420" />
-<TGConnectingPoint num="30" id="8421" />
-<TGConnectingPoint num="31" id="8422" />
-<TGConnectingPoint num="32" id="8423" />
-<TGConnectingPoint num="33" id="8424" />
-<TGConnectingPoint num="34" id="8425" />
-<TGConnectingPoint num="35" id="8426" />
-<TGConnectingPoint num="36" id="8427" />
-<TGConnectingPoint num="37" id="8428" />
-<TGConnectingPoint num="38" id="8429" />
-<TGConnectingPoint num="39" id="8430" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-<Signal value="out send()" attached="true" />
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="5000" id="8349" index="4" uid="9fd0eb4c-5f19-4616-a24e-56780b544aae" >
-<father id="8431" num="0" />
-<cdparam x="422" y="269" />
-<sizeparam width="130" height="117" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="170" minY="0" maxY="109" />
-<infoparam name="Block" value="S2" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8309" />
-<TGConnectingPoint num="1" id="8310" />
-<TGConnectingPoint num="2" id="8311" />
-<TGConnectingPoint num="3" id="8312" />
-<TGConnectingPoint num="4" id="8313" />
-<TGConnectingPoint num="5" id="8314" />
-<TGConnectingPoint num="6" id="8315" />
-<TGConnectingPoint num="7" id="8316" />
-<TGConnectingPoint num="8" id="8317" />
-<TGConnectingPoint num="9" id="8318" />
-<TGConnectingPoint num="10" id="8319" />
-<TGConnectingPoint num="11" id="8320" />
-<TGConnectingPoint num="12" id="8321" />
-<TGConnectingPoint num="13" id="8322" />
-<TGConnectingPoint num="14" id="8323" />
-<TGConnectingPoint num="15" id="8324" />
-<TGConnectingPoint num="16" id="8325" />
-<TGConnectingPoint num="17" id="8326" />
-<TGConnectingPoint num="18" id="8327" />
-<TGConnectingPoint num="19" id="8328" />
-<TGConnectingPoint num="20" id="8329" />
-<TGConnectingPoint num="21" id="8330" />
-<TGConnectingPoint num="22" id="8331" />
-<TGConnectingPoint num="23" id="8332" />
-<TGConnectingPoint num="24" id="8333" />
-<TGConnectingPoint num="25" id="8334" />
-<TGConnectingPoint num="26" id="8335" />
-<TGConnectingPoint num="27" id="8336" />
-<TGConnectingPoint num="28" id="8337" />
-<TGConnectingPoint num="29" id="8338" />
-<TGConnectingPoint num="30" id="8339" />
-<TGConnectingPoint num="31" id="8340" />
-<TGConnectingPoint num="32" id="8341" />
-<TGConnectingPoint num="33" id="8342" />
-<TGConnectingPoint num="34" id="8343" />
-<TGConnectingPoint num="35" id="8344" />
-<TGConnectingPoint num="36" id="8345" />
-<TGConnectingPoint num="37" id="8346" />
-<TGConnectingPoint num="38" id="8347" />
-<TGConnectingPoint num="39" id="8348" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="8390" index="5" uid="89ea6271-f5d7-4ad2-b1f9-7219bd5d9ccd" >
-<father id="8431" num="1" />
-<cdparam x="289" y="269" />
-<sizeparam width="117" height="118" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="183" minY="0" maxY="108" />
-<infoparam name="Block" value="S1" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8350" />
-<TGConnectingPoint num="1" id="8351" />
-<TGConnectingPoint num="2" id="8352" />
-<TGConnectingPoint num="3" id="8353" />
-<TGConnectingPoint num="4" id="8354" />
-<TGConnectingPoint num="5" id="8355" />
-<TGConnectingPoint num="6" id="8356" />
-<TGConnectingPoint num="7" id="8357" />
-<TGConnectingPoint num="8" id="8358" />
-<TGConnectingPoint num="9" id="8359" />
-<TGConnectingPoint num="10" id="8360" />
-<TGConnectingPoint num="11" id="8361" />
-<TGConnectingPoint num="12" id="8362" />
-<TGConnectingPoint num="13" id="8363" />
-<TGConnectingPoint num="14" id="8364" />
-<TGConnectingPoint num="15" id="8365" />
-<TGConnectingPoint num="16" id="8366" />
-<TGConnectingPoint num="17" id="8367" />
-<TGConnectingPoint num="18" id="8368" />
-<TGConnectingPoint num="19" id="8369" />
-<TGConnectingPoint num="20" id="8370" />
-<TGConnectingPoint num="21" id="8371" />
-<TGConnectingPoint num="22" id="8372" />
-<TGConnectingPoint num="23" id="8373" />
-<TGConnectingPoint num="24" id="8374" />
-<TGConnectingPoint num="25" id="8375" />
-<TGConnectingPoint num="26" id="8376" />
-<TGConnectingPoint num="27" id="8377" />
-<TGConnectingPoint num="28" id="8378" />
-<TGConnectingPoint num="29" id="8379" />
-<TGConnectingPoint num="30" id="8380" />
-<TGConnectingPoint num="31" id="8381" />
-<TGConnectingPoint num="32" id="8382" />
-<TGConnectingPoint num="33" id="8383" />
-<TGConnectingPoint num="34" id="8384" />
-<TGConnectingPoint num="35" id="8385" />
-<TGConnectingPoint num="36" id="8386" />
-<TGConnectingPoint num="37" id="8387" />
-<TGConnectingPoint num="38" id="8388" />
-<TGConnectingPoint num="39" id="8389" />
-<extraparam>
-<blockType data="block" color="-4072719" />
-<CryptoBlock value="false" />
-</extraparam>
-</SUBCOMPONENT>
-
-
-</AVATARBlockDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="Sender" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="5100" id="8433" index="0" uid="b7475cec-eef6-4f9a-aeee-b127ef712566" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8432" />
-</COMPONENT>
-
-
-</AVATARStateMachineDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="S1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<CONNECTOR type="5102" id="8440" index="0" uid="6af6cf67-1199-4d90-a566-2831294d109d" >
-<cdparam x="459" y="172" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8439" />
-<P1  x="459" y="172" id="8451" />
-<P2  x="459" y="185" id="8448" />
-<AutomaticDrawing  data="true" />
-<new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8438" index="5" uid="bc906f1f-6591-4d76-8cec-710650f55602" >
-<father id="8440" num="0" />
-<cdparam x="464" y="180" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<enabled value="true" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<new d="false" />
-<TGConnectingPoint num="0" id="8434" />
-<TGConnectingPoint num="1" id="8435" />
-<TGConnectingPoint num="2" id="8436" />
-<TGConnectingPoint num="3" id="8437" />
+<TGConnectingPoint num="0" id="7301" />
+<TGConnectingPoint num="1" id="7302" />
+<TGConnectingPoint num="2" id="7303" />
+<TGConnectingPoint num="3" id="7304" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -15605,28 +14245,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8447" index="1" uid="cd48cd1e-80c0-4045-a9aa-83402b3a3559" >
+<CONNECTOR type="5102" id="7314" index="1" uid="cd48cd1e-80c0-4045-a9aa-83402b3a3559" >
 <cdparam x="459" y="106" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8446" />
-<P1  x="459" y="106" id="8461" />
-<P2  x="459" y="142" id="8450" />
+<TGConnectingPoint num="0" id="7313" />
+<P1  x="459" y="106" id="7328" />
+<P2  x="459" y="142" id="7317" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8445" index="6" uid="f1236b21-20f0-4b04-b83d-7de952baf97e" >
-<father id="8447" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7312" index="6" uid="f1236b21-20f0-4b04-b83d-7de952baf97e" >
+<father id="7314" num="0" />
 <cdparam x="475" y="126" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8441" />
-<TGConnectingPoint num="1" id="8442" />
-<TGConnectingPoint num="2" id="8443" />
-<TGConnectingPoint num="3" id="8444" />
+<TGConnectingPoint num="0" id="7308" />
+<TGConnectingPoint num="1" id="7309" />
+<TGConnectingPoint num="2" id="7310" />
+<TGConnectingPoint num="3" id="7311" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="10" enabled="true"/>
@@ -15640,17 +14280,17 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5101" id="8449" index="2" uid="4ab8c170-0cc9-4147-905e-a597b85eb216" >
+<COMPONENT type="5101" id="7316" index="2" uid="4ab8c170-0cc9-4147-905e-a597b85eb216" >
 <cdparam x="449" y="190" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8448" />
+<TGConnectingPoint num="0" id="7315" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="8460" index="3" uid="6860d289-aee2-4d72-8022-2a40c8ee162e" >
+<COMPONENT type="5103" id="7327" index="3" uid="6860d289-aee2-4d72-8022-2a40c8ee162e" >
 <cdparam x="436" y="147" />
 <sizeparam width="46" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -15658,54 +14298,54 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Send signal" value="send()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8450" />
-<TGConnectingPoint num="1" id="8451" />
-<TGConnectingPoint num="2" id="8452" />
-<TGConnectingPoint num="3" id="8453" />
-<TGConnectingPoint num="4" id="8454" />
-<TGConnectingPoint num="5" id="8455" />
-<TGConnectingPoint num="6" id="8456" />
-<TGConnectingPoint num="7" id="8457" />
-<TGConnectingPoint num="8" id="8458" />
-<TGConnectingPoint num="9" id="8459" />
+<TGConnectingPoint num="0" id="7317" />
+<TGConnectingPoint num="1" id="7318" />
+<TGConnectingPoint num="2" id="7319" />
+<TGConnectingPoint num="3" id="7320" />
+<TGConnectingPoint num="4" id="7321" />
+<TGConnectingPoint num="5" id="7322" />
+<TGConnectingPoint num="6" id="7323" />
+<TGConnectingPoint num="7" id="7324" />
+<TGConnectingPoint num="8" id="7325" />
+<TGConnectingPoint num="9" id="7326" />
 </COMPONENT>
 
-<COMPONENT type="5100" id="8462" index="4" uid="5ea2b9f9-4853-4bf1-9c23-820fe3e6aab8" >
+<COMPONENT type="5100" id="7329" index="4" uid="5ea2b9f9-4853-4bf1-9c23-820fe3e6aab8" >
 <cdparam x="452" y="86" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8461" />
+<TGConnectingPoint num="0" id="7328" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="S2" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<CONNECTOR type="5102" id="8469" index="0" uid="1e9660a2-3886-4c51-a6d2-f2ea10ed4283" >
+<CONNECTOR type="5102" id="7336" index="0" uid="1e9660a2-3886-4c51-a6d2-f2ea10ed4283" >
 <cdparam x="356" y="231" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8468" />
-<P1  x="356" y="231" id="8480" />
-<P2  x="356" y="244" id="8477" />
+<TGConnectingPoint num="0" id="7335" />
+<P1  x="356" y="231" id="7347" />
+<P2  x="356" y="244" id="7344" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8467" index="5" uid="fbd1b94c-7398-4ab9-b41a-b808b57086a1" >
-<father id="8469" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7334" index="5" uid="fbd1b94c-7398-4ab9-b41a-b808b57086a1" >
+<father id="7336" num="0" />
 <cdparam x="361" y="239" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8463" />
-<TGConnectingPoint num="1" id="8464" />
-<TGConnectingPoint num="2" id="8465" />
-<TGConnectingPoint num="3" id="8466" />
+<TGConnectingPoint num="0" id="7330" />
+<TGConnectingPoint num="1" id="7331" />
+<TGConnectingPoint num="2" id="7332" />
+<TGConnectingPoint num="3" id="7333" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -15719,28 +14359,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8476" index="1" uid="0a2c060e-73fc-4c24-8ec4-63d4bef13e21" >
+<CONNECTOR type="5102" id="7343" index="1" uid="0a2c060e-73fc-4c24-8ec4-63d4bef13e21" >
 <cdparam x="356" y="179" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8475" />
-<P1  x="356" y="179" id="8490" />
-<P2  x="356" y="201" id="8479" />
+<TGConnectingPoint num="0" id="7342" />
+<P1  x="356" y="179" id="7357" />
+<P2  x="356" y="201" id="7346" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8474" index="6" uid="8657d172-5b89-4f28-9dba-7de0306c9650" >
-<father id="8476" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7341" index="6" uid="8657d172-5b89-4f28-9dba-7de0306c9650" >
+<father id="7343" num="0" />
 <cdparam x="369" y="192" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8470" />
-<TGConnectingPoint num="1" id="8471" />
-<TGConnectingPoint num="2" id="8472" />
-<TGConnectingPoint num="3" id="8473" />
+<TGConnectingPoint num="0" id="7337" />
+<TGConnectingPoint num="1" id="7338" />
+<TGConnectingPoint num="2" id="7339" />
+<TGConnectingPoint num="3" id="7340" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="10" enabled="true"/>
@@ -15754,17 +14394,17 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5101" id="8478" index="2" uid="d11ba52f-62cd-4b87-bc2b-311548198940" >
+<COMPONENT type="5101" id="7345" index="2" uid="d11ba52f-62cd-4b87-bc2b-311548198940" >
 <cdparam x="346" y="249" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8477" />
+<TGConnectingPoint num="0" id="7344" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="8489" index="3" uid="da902c58-09ae-4df5-881f-6169fa2a3260" >
+<COMPONENT type="5103" id="7356" index="3" uid="da902c58-09ae-4df5-881f-6169fa2a3260" >
 <cdparam x="333" y="206" />
 <sizeparam width="46" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -15772,58 +14412,58 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Send signal" value="send()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8479" />
-<TGConnectingPoint num="1" id="8480" />
-<TGConnectingPoint num="2" id="8481" />
-<TGConnectingPoint num="3" id="8482" />
-<TGConnectingPoint num="4" id="8483" />
-<TGConnectingPoint num="5" id="8484" />
-<TGConnectingPoint num="6" id="8485" />
-<TGConnectingPoint num="7" id="8486" />
-<TGConnectingPoint num="8" id="8487" />
-<TGConnectingPoint num="9" id="8488" />
+<TGConnectingPoint num="0" id="7346" />
+<TGConnectingPoint num="1" id="7347" />
+<TGConnectingPoint num="2" id="7348" />
+<TGConnectingPoint num="3" id="7349" />
+<TGConnectingPoint num="4" id="7350" />
+<TGConnectingPoint num="5" id="7351" />
+<TGConnectingPoint num="6" id="7352" />
+<TGConnectingPoint num="7" id="7353" />
+<TGConnectingPoint num="8" id="7354" />
+<TGConnectingPoint num="9" id="7355" />
 </COMPONENT>
 
-<COMPONENT type="5100" id="8491" index="4" uid="99748b7f-87df-4323-b4b2-aa80eba2146c" >
+<COMPONENT type="5100" id="7358" index="4" uid="99748b7f-87df-4323-b4b2-aa80eba2146c" >
 <cdparam x="349" y="159" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8490" />
+<TGConnectingPoint num="0" id="7357" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Receiver" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<CONNECTOR type="5102" id="8505" index="0" uid="146c7a12-f993-4acb-b1cf-efa281a39ff6" >
+<CONNECTOR type="5102" id="7365" index="0" uid="146c7a12-f993-4acb-b1cf-efa281a39ff6" >
 <cdparam x="444" y="294" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8504" />
-<P1  x="449" y="218" id="8636" />
-<P2  x="449" y="233" id="8826" />
+<TGConnectingPoint num="0" id="7364" />
+<P1  x="449" y="218" id="7423" />
+<P2  x="449" y="263" id="7613" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8503" index="11" uid="0b7ca9fe-bd49-475c-a39a-568753fd269c" >
-<father id="8505" num="0" />
-<cdparam x="444" y="323" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7363" index="11" uid="0b7ca9fe-bd49-475c-a39a-568753fd269c" >
+<father id="7365" num="0" />
+<cdparam x="480" y="230" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8499" />
-<TGConnectingPoint num="1" id="8500" />
-<TGConnectingPoint num="2" id="8501" />
-<TGConnectingPoint num="3" id="8502" />
+<TGConnectingPoint num="0" id="7359" />
+<TGConnectingPoint num="1" id="7360" />
+<TGConnectingPoint num="2" id="7361" />
+<TGConnectingPoint num="3" id="7362" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
-<afterMin value="" enabled="true"/>
-<afterMax value="" enabled="true"/>
+<afterMin value="10" enabled="true"/>
+<afterMax value="15" enabled="true"/>
 <extraDelay1 value="" enabled="true"/>
 <extraDelay2 value="" enabled="true"/>
 <delayDistributionLaw value="0" enabled="true"/>
@@ -15833,28 +14473,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8512" index="1" uid="52ebcd14-1247-4d71-91e1-c575bd580a31" >
-<cdparam x="470" y="458" />
+<CONNECTOR type="5102" id="7372" index="1" uid="52ebcd14-1247-4d71-91e1-c575bd580a31" >
+<cdparam x="470" y="488" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8511" />
-<P1  x="462" y="306" id="8759" />
-<P2  x="461" y="321" id="8681" />
+<TGConnectingPoint num="0" id="7371" />
+<P1  x="462" y="336" id="7546" />
+<P2  x="461" y="351" id="7468" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8510" index="12" uid="66494186-3cf1-45a8-b0db-0a1ac3b82602" >
-<father id="8512" num="0" />
-<cdparam x="543" y="282" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7370" index="12" uid="66494186-3cf1-45a8-b0db-0a1ac3b82602" >
+<father id="7372" num="0" />
+<cdparam x="543" y="312" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8506" />
-<TGConnectingPoint num="1" id="8507" />
-<TGConnectingPoint num="2" id="8508" />
-<TGConnectingPoint num="3" id="8509" />
+<TGConnectingPoint num="0" id="7366" />
+<TGConnectingPoint num="1" id="7367" />
+<TGConnectingPoint num="2" id="7368" />
+<TGConnectingPoint num="3" id="7369" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -15868,28 +14508,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8519" index="2" uid="b49beda8-b21d-44e2-b035-02aad500fde3" >
-<cdparam x="445" y="382" />
+<CONNECTOR type="5102" id="7379" index="2" uid="b49beda8-b21d-44e2-b035-02aad500fde3" >
+<cdparam x="445" y="412" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8518" />
-<P1  x="449" y="263" id="8827" />
-<P2  x="449" y="276" id="8802" />
+<TGConnectingPoint num="0" id="7378" />
+<P1  x="449" y="293" id="7614" />
+<P2  x="449" y="306" id="7589" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8517" index="13" uid="8dc90ac4-f5d7-4784-a7df-0dbf9dd20842" >
-<father id="8519" num="0" />
-<cdparam x="442" y="396" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7377" index="13" uid="8dc90ac4-f5d7-4784-a7df-0dbf9dd20842" >
+<father id="7379" num="0" />
+<cdparam x="442" y="426" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8513" />
-<TGConnectingPoint num="1" id="8514" />
-<TGConnectingPoint num="2" id="8515" />
-<TGConnectingPoint num="3" id="8516" />
+<TGConnectingPoint num="0" id="7373" />
+<TGConnectingPoint num="1" id="7374" />
+<TGConnectingPoint num="2" id="7375" />
+<TGConnectingPoint num="3" id="7376" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -15903,28 +14543,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8526" index="3" uid="a9a35b4d-b739-4c78-8493-1b9617806220" >
+<CONNECTOR type="5102" id="7386" index="3" uid="a9a35b4d-b739-4c78-8493-1b9617806220" >
 <cdparam x="449" y="173" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8525" />
-<P1  x="449" y="153" id="8899" />
-<P2  x="449" y="188" id="8624" />
+<TGConnectingPoint num="0" id="7385" />
+<P1  x="449" y="153" id="7686" />
+<P2  x="449" y="188" id="7411" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8524" index="14" uid="10b9d8b4-eda1-4a7a-b03b-32734716e3ed" >
-<father id="8526" num="0" />
-<cdparam x="401" y="172" />
-<sizeparam width="63" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7384" index="14" uid="10b9d8b4-eda1-4a7a-b03b-32734716e3ed" >
+<father id="7386" num="0" />
+<cdparam x="389" y="160" />
+<sizeparam width="63" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8520" />
-<TGConnectingPoint num="1" id="8521" />
-<TGConnectingPoint num="2" id="8522" />
-<TGConnectingPoint num="3" id="8523" />
+<TGConnectingPoint num="0" id="7380" />
+<TGConnectingPoint num="1" id="7381" />
+<TGConnectingPoint num="2" id="7382" />
+<TGConnectingPoint num="3" id="7383" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="5" enabled="true"/>
@@ -15938,28 +14578,28 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="8533" index="4" uid="1a6c8e5c-cfc9-4ef0-8874-719f4f7f91f7" >
+<CONNECTOR type="5102" id="7393" index="4" uid="1a6c8e5c-cfc9-4ef0-8874-719f4f7f91f7" >
 <cdparam x="408" y="88" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8532" />
-<P1  x="411" y="108" id="8910" />
-<P2  x="412" y="123" id="8877" />
+<TGConnectingPoint num="0" id="7392" />
+<P1  x="408" y="102" id="7697" />
+<P2  x="412" y="123" id="7664" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8531" index="15" uid="9cb57dab-10f8-4087-867a-4e88d3f7ffa9" >
-<father id="8533" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7391" index="15" uid="9cb57dab-10f8-4087-867a-4e88d3f7ffa9" >
+<father id="7393" num="0" />
 <cdparam x="410" y="105" />
-<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8527" />
-<TGConnectingPoint num="1" id="8528" />
-<TGConnectingPoint num="2" id="8529" />
-<TGConnectingPoint num="3" id="8530" />
+<TGConnectingPoint num="0" id="7387" />
+<TGConnectingPoint num="1" id="7388" />
+<TGConnectingPoint num="2" id="7389" />
+<TGConnectingPoint num="3" id="7390" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -15973,7 +14613,7 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="8679" index="5" uid="3e84ba88-554b-4308-beb3-4a87ed799789" >
+<COMPONENT type="5106" id="7466" index="5" uid="3e84ba88-554b-4308-beb3-4a87ed799789" >
 <cdparam x="414" y="188" />
 <sizeparam width="97" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -15981,272 +14621,272 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="transition" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8607" />
-<TGConnectingPoint num="1" id="8608" />
-<TGConnectingPoint num="2" id="8609" />
-<TGConnectingPoint num="3" id="8610" />
-<TGConnectingPoint num="4" id="8611" />
-<TGConnectingPoint num="5" id="8612" />
-<TGConnectingPoint num="6" id="8613" />
-<TGConnectingPoint num="7" id="8614" />
-<TGConnectingPoint num="8" id="8615" />
-<TGConnectingPoint num="9" id="8616" />
-<TGConnectingPoint num="10" id="8617" />
-<TGConnectingPoint num="11" id="8618" />
-<TGConnectingPoint num="12" id="8619" />
-<TGConnectingPoint num="13" id="8620" />
-<TGConnectingPoint num="14" id="8621" />
-<TGConnectingPoint num="15" id="8622" />
-<TGConnectingPoint num="16" id="8623" />
-<TGConnectingPoint num="17" id="8624" />
-<TGConnectingPoint num="18" id="8625" />
-<TGConnectingPoint num="19" id="8626" />
-<TGConnectingPoint num="20" id="8627" />
-<TGConnectingPoint num="21" id="8628" />
-<TGConnectingPoint num="22" id="8629" />
-<TGConnectingPoint num="23" id="8630" />
-<TGConnectingPoint num="24" id="8631" />
-<TGConnectingPoint num="25" id="8632" />
-<TGConnectingPoint num="26" id="8633" />
-<TGConnectingPoint num="27" id="8634" />
-<TGConnectingPoint num="28" id="8635" />
-<TGConnectingPoint num="29" id="8636" />
-<TGConnectingPoint num="30" id="8637" />
-<TGConnectingPoint num="31" id="8638" />
-<TGConnectingPoint num="32" id="8639" />
-<TGConnectingPoint num="33" id="8640" />
-<TGConnectingPoint num="34" id="8641" />
-<TGConnectingPoint num="35" id="8642" />
-<TGConnectingPoint num="36" id="8643" />
-<TGConnectingPoint num="37" id="8644" />
-<TGConnectingPoint num="38" id="8645" />
-<TGConnectingPoint num="39" id="8646" />
-<TGConnectingPoint num="40" id="8647" />
-<TGConnectingPoint num="41" id="8648" />
-<TGConnectingPoint num="42" id="8649" />
-<TGConnectingPoint num="43" id="8650" />
-<TGConnectingPoint num="44" id="8651" />
-<TGConnectingPoint num="45" id="8652" />
-<TGConnectingPoint num="46" id="8653" />
-<TGConnectingPoint num="47" id="8654" />
-<TGConnectingPoint num="48" id="8655" />
-<TGConnectingPoint num="49" id="8656" />
-<TGConnectingPoint num="50" id="8657" />
-<TGConnectingPoint num="51" id="8658" />
-<TGConnectingPoint num="52" id="8659" />
-<TGConnectingPoint num="53" id="8660" />
-<TGConnectingPoint num="54" id="8661" />
-<TGConnectingPoint num="55" id="8662" />
-<TGConnectingPoint num="56" id="8663" />
-<TGConnectingPoint num="57" id="8664" />
-<TGConnectingPoint num="58" id="8665" />
-<TGConnectingPoint num="59" id="8666" />
-<TGConnectingPoint num="60" id="8667" />
-<TGConnectingPoint num="61" id="8668" />
-<TGConnectingPoint num="62" id="8669" />
-<TGConnectingPoint num="63" id="8670" />
-<TGConnectingPoint num="64" id="8671" />
-<TGConnectingPoint num="65" id="8672" />
-<TGConnectingPoint num="66" id="8673" />
-<TGConnectingPoint num="67" id="8674" />
-<TGConnectingPoint num="68" id="8675" />
-<TGConnectingPoint num="69" id="8676" />
-<TGConnectingPoint num="70" id="8677" />
-<TGConnectingPoint num="71" id="8678" />
+<TGConnectingPoint num="0" id="7394" />
+<TGConnectingPoint num="1" id="7395" />
+<TGConnectingPoint num="2" id="7396" />
+<TGConnectingPoint num="3" id="7397" />
+<TGConnectingPoint num="4" id="7398" />
+<TGConnectingPoint num="5" id="7399" />
+<TGConnectingPoint num="6" id="7400" />
+<TGConnectingPoint num="7" id="7401" />
+<TGConnectingPoint num="8" id="7402" />
+<TGConnectingPoint num="9" id="7403" />
+<TGConnectingPoint num="10" id="7404" />
+<TGConnectingPoint num="11" id="7405" />
+<TGConnectingPoint num="12" id="7406" />
+<TGConnectingPoint num="13" id="7407" />
+<TGConnectingPoint num="14" id="7408" />
+<TGConnectingPoint num="15" id="7409" />
+<TGConnectingPoint num="16" id="7410" />
+<TGConnectingPoint num="17" id="7411" />
+<TGConnectingPoint num="18" id="7412" />
+<TGConnectingPoint num="19" id="7413" />
+<TGConnectingPoint num="20" id="7414" />
+<TGConnectingPoint num="21" id="7415" />
+<TGConnectingPoint num="22" id="7416" />
+<TGConnectingPoint num="23" id="7417" />
+<TGConnectingPoint num="24" id="7418" />
+<TGConnectingPoint num="25" id="7419" />
+<TGConnectingPoint num="26" id="7420" />
+<TGConnectingPoint num="27" id="7421" />
+<TGConnectingPoint num="28" id="7422" />
+<TGConnectingPoint num="29" id="7423" />
+<TGConnectingPoint num="30" id="7424" />
+<TGConnectingPoint num="31" id="7425" />
+<TGConnectingPoint num="32" id="7426" />
+<TGConnectingPoint num="33" id="7427" />
+<TGConnectingPoint num="34" id="7428" />
+<TGConnectingPoint num="35" id="7429" />
+<TGConnectingPoint num="36" id="7430" />
+<TGConnectingPoint num="37" id="7431" />
+<TGConnectingPoint num="38" id="7432" />
+<TGConnectingPoint num="39" id="7433" />
+<TGConnectingPoint num="40" id="7434" />
+<TGConnectingPoint num="41" id="7435" />
+<TGConnectingPoint num="42" id="7436" />
+<TGConnectingPoint num="43" id="7437" />
+<TGConnectingPoint num="44" id="7438" />
+<TGConnectingPoint num="45" id="7439" />
+<TGConnectingPoint num="46" id="7440" />
+<TGConnectingPoint num="47" id="7441" />
+<TGConnectingPoint num="48" id="7442" />
+<TGConnectingPoint num="49" id="7443" />
+<TGConnectingPoint num="50" id="7444" />
+<TGConnectingPoint num="51" id="7445" />
+<TGConnectingPoint num="52" id="7446" />
+<TGConnectingPoint num="53" id="7447" />
+<TGConnectingPoint num="54" id="7448" />
+<TGConnectingPoint num="55" id="7449" />
+<TGConnectingPoint num="56" id="7450" />
+<TGConnectingPoint num="57" id="7451" />
+<TGConnectingPoint num="58" id="7452" />
+<TGConnectingPoint num="59" id="7453" />
+<TGConnectingPoint num="60" id="7454" />
+<TGConnectingPoint num="61" id="7455" />
+<TGConnectingPoint num="62" id="7456" />
+<TGConnectingPoint num="63" id="7457" />
+<TGConnectingPoint num="64" id="7458" />
+<TGConnectingPoint num="65" id="7459" />
+<TGConnectingPoint num="66" id="7460" />
+<TGConnectingPoint num="67" id="7461" />
+<TGConnectingPoint num="68" id="7462" />
+<TGConnectingPoint num="69" id="7463" />
+<TGConnectingPoint num="70" id="7464" />
+<TGConnectingPoint num="71" id="7465" />
 <accessibility />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="8752" index="6" uid="9534afef-9dfc-42a5-a079-c601fb2f2e48" >
-<cdparam x="411" y="321" />
+<COMPONENT type="5106" id="7539" index="6" uid="9534afef-9dfc-42a5-a079-c601fb2f2e48" >
+<cdparam x="411" y="351" />
 <sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="END2" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8680" />
-<TGConnectingPoint num="1" id="8681" />
-<TGConnectingPoint num="2" id="8682" />
-<TGConnectingPoint num="3" id="8683" />
-<TGConnectingPoint num="4" id="8684" />
-<TGConnectingPoint num="5" id="8685" />
-<TGConnectingPoint num="6" id="8686" />
-<TGConnectingPoint num="7" id="8687" />
-<TGConnectingPoint num="8" id="8688" />
-<TGConnectingPoint num="9" id="8689" />
-<TGConnectingPoint num="10" id="8690" />
-<TGConnectingPoint num="11" id="8691" />
-<TGConnectingPoint num="12" id="8692" />
-<TGConnectingPoint num="13" id="8693" />
-<TGConnectingPoint num="14" id="8694" />
-<TGConnectingPoint num="15" id="8695" />
-<TGConnectingPoint num="16" id="8696" />
-<TGConnectingPoint num="17" id="8697" />
-<TGConnectingPoint num="18" id="8698" />
-<TGConnectingPoint num="19" id="8699" />
-<TGConnectingPoint num="20" id="8700" />
-<TGConnectingPoint num="21" id="8701" />
-<TGConnectingPoint num="22" id="8702" />
-<TGConnectingPoint num="23" id="8703" />
-<TGConnectingPoint num="24" id="8704" />
-<TGConnectingPoint num="25" id="8705" />
-<TGConnectingPoint num="26" id="8706" />
-<TGConnectingPoint num="27" id="8707" />
-<TGConnectingPoint num="28" id="8708" />
-<TGConnectingPoint num="29" id="8709" />
-<TGConnectingPoint num="30" id="8710" />
-<TGConnectingPoint num="31" id="8711" />
-<TGConnectingPoint num="32" id="8712" />
-<TGConnectingPoint num="33" id="8713" />
-<TGConnectingPoint num="34" id="8714" />
-<TGConnectingPoint num="35" id="8715" />
-<TGConnectingPoint num="36" id="8716" />
-<TGConnectingPoint num="37" id="8717" />
-<TGConnectingPoint num="38" id="8718" />
-<TGConnectingPoint num="39" id="8719" />
-<TGConnectingPoint num="40" id="8720" />
-<TGConnectingPoint num="41" id="8721" />
-<TGConnectingPoint num="42" id="8722" />
-<TGConnectingPoint num="43" id="8723" />
-<TGConnectingPoint num="44" id="8724" />
-<TGConnectingPoint num="45" id="8725" />
-<TGConnectingPoint num="46" id="8726" />
-<TGConnectingPoint num="47" id="8727" />
-<TGConnectingPoint num="48" id="8728" />
-<TGConnectingPoint num="49" id="8729" />
-<TGConnectingPoint num="50" id="8730" />
-<TGConnectingPoint num="51" id="8731" />
-<TGConnectingPoint num="52" id="8732" />
-<TGConnectingPoint num="53" id="8733" />
-<TGConnectingPoint num="54" id="8734" />
-<TGConnectingPoint num="55" id="8735" />
-<TGConnectingPoint num="56" id="8736" />
-<TGConnectingPoint num="57" id="8737" />
-<TGConnectingPoint num="58" id="8738" />
-<TGConnectingPoint num="59" id="8739" />
-<TGConnectingPoint num="60" id="8740" />
-<TGConnectingPoint num="61" id="8741" />
-<TGConnectingPoint num="62" id="8742" />
-<TGConnectingPoint num="63" id="8743" />
-<TGConnectingPoint num="64" id="8744" />
-<TGConnectingPoint num="65" id="8745" />
-<TGConnectingPoint num="66" id="8746" />
-<TGConnectingPoint num="67" id="8747" />
-<TGConnectingPoint num="68" id="8748" />
-<TGConnectingPoint num="69" id="8749" />
-<TGConnectingPoint num="70" id="8750" />
-<TGConnectingPoint num="71" id="8751" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="8825" index="7" uid="28b75c69-ae3d-441f-a09b-37086e8a9148" >
-<cdparam x="412" y="276" />
+<TGConnectingPoint num="0" id="7467" />
+<TGConnectingPoint num="1" id="7468" />
+<TGConnectingPoint num="2" id="7469" />
+<TGConnectingPoint num="3" id="7470" />
+<TGConnectingPoint num="4" id="7471" />
+<TGConnectingPoint num="5" id="7472" />
+<TGConnectingPoint num="6" id="7473" />
+<TGConnectingPoint num="7" id="7474" />
+<TGConnectingPoint num="8" id="7475" />
+<TGConnectingPoint num="9" id="7476" />
+<TGConnectingPoint num="10" id="7477" />
+<TGConnectingPoint num="11" id="7478" />
+<TGConnectingPoint num="12" id="7479" />
+<TGConnectingPoint num="13" id="7480" />
+<TGConnectingPoint num="14" id="7481" />
+<TGConnectingPoint num="15" id="7482" />
+<TGConnectingPoint num="16" id="7483" />
+<TGConnectingPoint num="17" id="7484" />
+<TGConnectingPoint num="18" id="7485" />
+<TGConnectingPoint num="19" id="7486" />
+<TGConnectingPoint num="20" id="7487" />
+<TGConnectingPoint num="21" id="7488" />
+<TGConnectingPoint num="22" id="7489" />
+<TGConnectingPoint num="23" id="7490" />
+<TGConnectingPoint num="24" id="7491" />
+<TGConnectingPoint num="25" id="7492" />
+<TGConnectingPoint num="26" id="7493" />
+<TGConnectingPoint num="27" id="7494" />
+<TGConnectingPoint num="28" id="7495" />
+<TGConnectingPoint num="29" id="7496" />
+<TGConnectingPoint num="30" id="7497" />
+<TGConnectingPoint num="31" id="7498" />
+<TGConnectingPoint num="32" id="7499" />
+<TGConnectingPoint num="33" id="7500" />
+<TGConnectingPoint num="34" id="7501" />
+<TGConnectingPoint num="35" id="7502" />
+<TGConnectingPoint num="36" id="7503" />
+<TGConnectingPoint num="37" id="7504" />
+<TGConnectingPoint num="38" id="7505" />
+<TGConnectingPoint num="39" id="7506" />
+<TGConnectingPoint num="40" id="7507" />
+<TGConnectingPoint num="41" id="7508" />
+<TGConnectingPoint num="42" id="7509" />
+<TGConnectingPoint num="43" id="7510" />
+<TGConnectingPoint num="44" id="7511" />
+<TGConnectingPoint num="45" id="7512" />
+<TGConnectingPoint num="46" id="7513" />
+<TGConnectingPoint num="47" id="7514" />
+<TGConnectingPoint num="48" id="7515" />
+<TGConnectingPoint num="49" id="7516" />
+<TGConnectingPoint num="50" id="7517" />
+<TGConnectingPoint num="51" id="7518" />
+<TGConnectingPoint num="52" id="7519" />
+<TGConnectingPoint num="53" id="7520" />
+<TGConnectingPoint num="54" id="7521" />
+<TGConnectingPoint num="55" id="7522" />
+<TGConnectingPoint num="56" id="7523" />
+<TGConnectingPoint num="57" id="7524" />
+<TGConnectingPoint num="58" id="7525" />
+<TGConnectingPoint num="59" id="7526" />
+<TGConnectingPoint num="60" id="7527" />
+<TGConnectingPoint num="61" id="7528" />
+<TGConnectingPoint num="62" id="7529" />
+<TGConnectingPoint num="63" id="7530" />
+<TGConnectingPoint num="64" id="7531" />
+<TGConnectingPoint num="65" id="7532" />
+<TGConnectingPoint num="66" id="7533" />
+<TGConnectingPoint num="67" id="7534" />
+<TGConnectingPoint num="68" id="7535" />
+<TGConnectingPoint num="69" id="7536" />
+<TGConnectingPoint num="70" id="7537" />
+<TGConnectingPoint num="71" id="7538" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="7612" index="7" uid="28b75c69-ae3d-441f-a09b-37086e8a9148" >
+<cdparam x="412" y="306" />
 <sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="END1" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8753" />
-<TGConnectingPoint num="1" id="8754" />
-<TGConnectingPoint num="2" id="8755" />
-<TGConnectingPoint num="3" id="8756" />
-<TGConnectingPoint num="4" id="8757" />
-<TGConnectingPoint num="5" id="8758" />
-<TGConnectingPoint num="6" id="8759" />
-<TGConnectingPoint num="7" id="8760" />
-<TGConnectingPoint num="8" id="8761" />
-<TGConnectingPoint num="9" id="8762" />
-<TGConnectingPoint num="10" id="8763" />
-<TGConnectingPoint num="11" id="8764" />
-<TGConnectingPoint num="12" id="8765" />
-<TGConnectingPoint num="13" id="8766" />
-<TGConnectingPoint num="14" id="8767" />
-<TGConnectingPoint num="15" id="8768" />
-<TGConnectingPoint num="16" id="8769" />
-<TGConnectingPoint num="17" id="8770" />
-<TGConnectingPoint num="18" id="8771" />
-<TGConnectingPoint num="19" id="8772" />
-<TGConnectingPoint num="20" id="8773" />
-<TGConnectingPoint num="21" id="8774" />
-<TGConnectingPoint num="22" id="8775" />
-<TGConnectingPoint num="23" id="8776" />
-<TGConnectingPoint num="24" id="8777" />
-<TGConnectingPoint num="25" id="8778" />
-<TGConnectingPoint num="26" id="8779" />
-<TGConnectingPoint num="27" id="8780" />
-<TGConnectingPoint num="28" id="8781" />
-<TGConnectingPoint num="29" id="8782" />
-<TGConnectingPoint num="30" id="8783" />
-<TGConnectingPoint num="31" id="8784" />
-<TGConnectingPoint num="32" id="8785" />
-<TGConnectingPoint num="33" id="8786" />
-<TGConnectingPoint num="34" id="8787" />
-<TGConnectingPoint num="35" id="8788" />
-<TGConnectingPoint num="36" id="8789" />
-<TGConnectingPoint num="37" id="8790" />
-<TGConnectingPoint num="38" id="8791" />
-<TGConnectingPoint num="39" id="8792" />
-<TGConnectingPoint num="40" id="8793" />
-<TGConnectingPoint num="41" id="8794" />
-<TGConnectingPoint num="42" id="8795" />
-<TGConnectingPoint num="43" id="8796" />
-<TGConnectingPoint num="44" id="8797" />
-<TGConnectingPoint num="45" id="8798" />
-<TGConnectingPoint num="46" id="8799" />
-<TGConnectingPoint num="47" id="8800" />
-<TGConnectingPoint num="48" id="8801" />
-<TGConnectingPoint num="49" id="8802" />
-<TGConnectingPoint num="50" id="8803" />
-<TGConnectingPoint num="51" id="8804" />
-<TGConnectingPoint num="52" id="8805" />
-<TGConnectingPoint num="53" id="8806" />
-<TGConnectingPoint num="54" id="8807" />
-<TGConnectingPoint num="55" id="8808" />
-<TGConnectingPoint num="56" id="8809" />
-<TGConnectingPoint num="57" id="8810" />
-<TGConnectingPoint num="58" id="8811" />
-<TGConnectingPoint num="59" id="8812" />
-<TGConnectingPoint num="60" id="8813" />
-<TGConnectingPoint num="61" id="8814" />
-<TGConnectingPoint num="62" id="8815" />
-<TGConnectingPoint num="63" id="8816" />
-<TGConnectingPoint num="64" id="8817" />
-<TGConnectingPoint num="65" id="8818" />
-<TGConnectingPoint num="66" id="8819" />
-<TGConnectingPoint num="67" id="8820" />
-<TGConnectingPoint num="68" id="8821" />
-<TGConnectingPoint num="69" id="8822" />
-<TGConnectingPoint num="70" id="8823" />
-<TGConnectingPoint num="71" id="8824" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5104" id="8836" index="8" uid="79888452-0286-4e14-a7c3-f01ffcc5f5e4" >
-<cdparam x="424" y="238" />
+<TGConnectingPoint num="0" id="7540" />
+<TGConnectingPoint num="1" id="7541" />
+<TGConnectingPoint num="2" id="7542" />
+<TGConnectingPoint num="3" id="7543" />
+<TGConnectingPoint num="4" id="7544" />
+<TGConnectingPoint num="5" id="7545" />
+<TGConnectingPoint num="6" id="7546" />
+<TGConnectingPoint num="7" id="7547" />
+<TGConnectingPoint num="8" id="7548" />
+<TGConnectingPoint num="9" id="7549" />
+<TGConnectingPoint num="10" id="7550" />
+<TGConnectingPoint num="11" id="7551" />
+<TGConnectingPoint num="12" id="7552" />
+<TGConnectingPoint num="13" id="7553" />
+<TGConnectingPoint num="14" id="7554" />
+<TGConnectingPoint num="15" id="7555" />
+<TGConnectingPoint num="16" id="7556" />
+<TGConnectingPoint num="17" id="7557" />
+<TGConnectingPoint num="18" id="7558" />
+<TGConnectingPoint num="19" id="7559" />
+<TGConnectingPoint num="20" id="7560" />
+<TGConnectingPoint num="21" id="7561" />
+<TGConnectingPoint num="22" id="7562" />
+<TGConnectingPoint num="23" id="7563" />
+<TGConnectingPoint num="24" id="7564" />
+<TGConnectingPoint num="25" id="7565" />
+<TGConnectingPoint num="26" id="7566" />
+<TGConnectingPoint num="27" id="7567" />
+<TGConnectingPoint num="28" id="7568" />
+<TGConnectingPoint num="29" id="7569" />
+<TGConnectingPoint num="30" id="7570" />
+<TGConnectingPoint num="31" id="7571" />
+<TGConnectingPoint num="32" id="7572" />
+<TGConnectingPoint num="33" id="7573" />
+<TGConnectingPoint num="34" id="7574" />
+<TGConnectingPoint num="35" id="7575" />
+<TGConnectingPoint num="36" id="7576" />
+<TGConnectingPoint num="37" id="7577" />
+<TGConnectingPoint num="38" id="7578" />
+<TGConnectingPoint num="39" id="7579" />
+<TGConnectingPoint num="40" id="7580" />
+<TGConnectingPoint num="41" id="7581" />
+<TGConnectingPoint num="42" id="7582" />
+<TGConnectingPoint num="43" id="7583" />
+<TGConnectingPoint num="44" id="7584" />
+<TGConnectingPoint num="45" id="7585" />
+<TGConnectingPoint num="46" id="7586" />
+<TGConnectingPoint num="47" id="7587" />
+<TGConnectingPoint num="48" id="7588" />
+<TGConnectingPoint num="49" id="7589" />
+<TGConnectingPoint num="50" id="7590" />
+<TGConnectingPoint num="51" id="7591" />
+<TGConnectingPoint num="52" id="7592" />
+<TGConnectingPoint num="53" id="7593" />
+<TGConnectingPoint num="54" id="7594" />
+<TGConnectingPoint num="55" id="7595" />
+<TGConnectingPoint num="56" id="7596" />
+<TGConnectingPoint num="57" id="7597" />
+<TGConnectingPoint num="58" id="7598" />
+<TGConnectingPoint num="59" id="7599" />
+<TGConnectingPoint num="60" id="7600" />
+<TGConnectingPoint num="61" id="7601" />
+<TGConnectingPoint num="62" id="7602" />
+<TGConnectingPoint num="63" id="7603" />
+<TGConnectingPoint num="64" id="7604" />
+<TGConnectingPoint num="65" id="7605" />
+<TGConnectingPoint num="66" id="7606" />
+<TGConnectingPoint num="67" id="7607" />
+<TGConnectingPoint num="68" id="7608" />
+<TGConnectingPoint num="69" id="7609" />
+<TGConnectingPoint num="70" id="7610" />
+<TGConnectingPoint num="71" id="7611" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="7623" index="8" uid="79888452-0286-4e14-a7c3-f01ffcc5f5e4" >
+<cdparam x="424" y="268" />
 <sizeparam width="50" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Receive signal" value="recv()" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8826" />
-<TGConnectingPoint num="1" id="8827" />
-<TGConnectingPoint num="2" id="8828" />
-<TGConnectingPoint num="3" id="8829" />
-<TGConnectingPoint num="4" id="8830" />
-<TGConnectingPoint num="5" id="8831" />
-<TGConnectingPoint num="6" id="8832" />
-<TGConnectingPoint num="7" id="8833" />
-<TGConnectingPoint num="8" id="8834" />
-<TGConnectingPoint num="9" id="8835" />
+<TGConnectingPoint num="0" id="7613" />
+<TGConnectingPoint num="1" id="7614" />
+<TGConnectingPoint num="2" id="7615" />
+<TGConnectingPoint num="3" id="7616" />
+<TGConnectingPoint num="4" id="7617" />
+<TGConnectingPoint num="5" id="7618" />
+<TGConnectingPoint num="6" id="7619" />
+<TGConnectingPoint num="7" id="7620" />
+<TGConnectingPoint num="8" id="7621" />
+<TGConnectingPoint num="9" id="7622" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="8909" index="9" uid="abc1e4bb-d022-4e38-8aeb-d344342028f2" >
+<COMPONENT type="5106" id="7696" index="9" uid="abc1e4bb-d022-4e38-8aeb-d344342028f2" >
 <cdparam x="387" y="123" />
 <sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -16254,118 +14894,118 @@ Double-click to edit
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="state" value="Waiting" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8837" />
-<TGConnectingPoint num="1" id="8838" />
-<TGConnectingPoint num="2" id="8839" />
-<TGConnectingPoint num="3" id="8840" />
-<TGConnectingPoint num="4" id="8841" />
-<TGConnectingPoint num="5" id="8842" />
-<TGConnectingPoint num="6" id="8843" />
-<TGConnectingPoint num="7" id="8844" />
-<TGConnectingPoint num="8" id="8845" />
-<TGConnectingPoint num="9" id="8846" />
-<TGConnectingPoint num="10" id="8847" />
-<TGConnectingPoint num="11" id="8848" />
-<TGConnectingPoint num="12" id="8849" />
-<TGConnectingPoint num="13" id="8850" />
-<TGConnectingPoint num="14" id="8851" />
-<TGConnectingPoint num="15" id="8852" />
-<TGConnectingPoint num="16" id="8853" />
-<TGConnectingPoint num="17" id="8854" />
-<TGConnectingPoint num="18" id="8855" />
-<TGConnectingPoint num="19" id="8856" />
-<TGConnectingPoint num="20" id="8857" />
-<TGConnectingPoint num="21" id="8858" />
-<TGConnectingPoint num="22" id="8859" />
-<TGConnectingPoint num="23" id="8860" />
-<TGConnectingPoint num="24" id="8861" />
-<TGConnectingPoint num="25" id="8862" />
-<TGConnectingPoint num="26" id="8863" />
-<TGConnectingPoint num="27" id="8864" />
-<TGConnectingPoint num="28" id="8865" />
-<TGConnectingPoint num="29" id="8866" />
-<TGConnectingPoint num="30" id="8867" />
-<TGConnectingPoint num="31" id="8868" />
-<TGConnectingPoint num="32" id="8869" />
-<TGConnectingPoint num="33" id="8870" />
-<TGConnectingPoint num="34" id="8871" />
-<TGConnectingPoint num="35" id="8872" />
-<TGConnectingPoint num="36" id="8873" />
-<TGConnectingPoint num="37" id="8874" />
-<TGConnectingPoint num="38" id="8875" />
-<TGConnectingPoint num="39" id="8876" />
-<TGConnectingPoint num="40" id="8877" />
-<TGConnectingPoint num="41" id="8878" />
-<TGConnectingPoint num="42" id="8879" />
-<TGConnectingPoint num="43" id="8880" />
-<TGConnectingPoint num="44" id="8881" />
-<TGConnectingPoint num="45" id="8882" />
-<TGConnectingPoint num="46" id="8883" />
-<TGConnectingPoint num="47" id="8884" />
-<TGConnectingPoint num="48" id="8885" />
-<TGConnectingPoint num="49" id="8886" />
-<TGConnectingPoint num="50" id="8887" />
-<TGConnectingPoint num="51" id="8888" />
-<TGConnectingPoint num="52" id="8889" />
-<TGConnectingPoint num="53" id="8890" />
-<TGConnectingPoint num="54" id="8891" />
-<TGConnectingPoint num="55" id="8892" />
-<TGConnectingPoint num="56" id="8893" />
-<TGConnectingPoint num="57" id="8894" />
-<TGConnectingPoint num="58" id="8895" />
-<TGConnectingPoint num="59" id="8896" />
-<TGConnectingPoint num="60" id="8897" />
-<TGConnectingPoint num="61" id="8898" />
-<TGConnectingPoint num="62" id="8899" />
-<TGConnectingPoint num="63" id="8900" />
-<TGConnectingPoint num="64" id="8901" />
-<TGConnectingPoint num="65" id="8902" />
-<TGConnectingPoint num="66" id="8903" />
-<TGConnectingPoint num="67" id="8904" />
-<TGConnectingPoint num="68" id="8905" />
-<TGConnectingPoint num="69" id="8906" />
-<TGConnectingPoint num="70" id="8907" />
-<TGConnectingPoint num="71" id="8908" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="8911" index="10" uid="f47a6d52-2763-4062-98d8-4698b9677040" >
-<cdparam x="404" y="88" />
+<TGConnectingPoint num="0" id="7624" />
+<TGConnectingPoint num="1" id="7625" />
+<TGConnectingPoint num="2" id="7626" />
+<TGConnectingPoint num="3" id="7627" />
+<TGConnectingPoint num="4" id="7628" />
+<TGConnectingPoint num="5" id="7629" />
+<TGConnectingPoint num="6" id="7630" />
+<TGConnectingPoint num="7" id="7631" />
+<TGConnectingPoint num="8" id="7632" />
+<TGConnectingPoint num="9" id="7633" />
+<TGConnectingPoint num="10" id="7634" />
+<TGConnectingPoint num="11" id="7635" />
+<TGConnectingPoint num="12" id="7636" />
+<TGConnectingPoint num="13" id="7637" />
+<TGConnectingPoint num="14" id="7638" />
+<TGConnectingPoint num="15" id="7639" />
+<TGConnectingPoint num="16" id="7640" />
+<TGConnectingPoint num="17" id="7641" />
+<TGConnectingPoint num="18" id="7642" />
+<TGConnectingPoint num="19" id="7643" />
+<TGConnectingPoint num="20" id="7644" />
+<TGConnectingPoint num="21" id="7645" />
+<TGConnectingPoint num="22" id="7646" />
+<TGConnectingPoint num="23" id="7647" />
+<TGConnectingPoint num="24" id="7648" />
+<TGConnectingPoint num="25" id="7649" />
+<TGConnectingPoint num="26" id="7650" />
+<TGConnectingPoint num="27" id="7651" />
+<TGConnectingPoint num="28" id="7652" />
+<TGConnectingPoint num="29" id="7653" />
+<TGConnectingPoint num="30" id="7654" />
+<TGConnectingPoint num="31" id="7655" />
+<TGConnectingPoint num="32" id="7656" />
+<TGConnectingPoint num="33" id="7657" />
+<TGConnectingPoint num="34" id="7658" />
+<TGConnectingPoint num="35" id="7659" />
+<TGConnectingPoint num="36" id="7660" />
+<TGConnectingPoint num="37" id="7661" />
+<TGConnectingPoint num="38" id="7662" />
+<TGConnectingPoint num="39" id="7663" />
+<TGConnectingPoint num="40" id="7664" />
+<TGConnectingPoint num="41" id="7665" />
+<TGConnectingPoint num="42" id="7666" />
+<TGConnectingPoint num="43" id="7667" />
+<TGConnectingPoint num="44" id="7668" />
+<TGConnectingPoint num="45" id="7669" />
+<TGConnectingPoint num="46" id="7670" />
+<TGConnectingPoint num="47" id="7671" />
+<TGConnectingPoint num="48" id="7672" />
+<TGConnectingPoint num="49" id="7673" />
+<TGConnectingPoint num="50" id="7674" />
+<TGConnectingPoint num="51" id="7675" />
+<TGConnectingPoint num="52" id="7676" />
+<TGConnectingPoint num="53" id="7677" />
+<TGConnectingPoint num="54" id="7678" />
+<TGConnectingPoint num="55" id="7679" />
+<TGConnectingPoint num="56" id="7680" />
+<TGConnectingPoint num="57" id="7681" />
+<TGConnectingPoint num="58" id="7682" />
+<TGConnectingPoint num="59" id="7683" />
+<TGConnectingPoint num="60" id="7684" />
+<TGConnectingPoint num="61" id="7685" />
+<TGConnectingPoint num="62" id="7686" />
+<TGConnectingPoint num="63" id="7687" />
+<TGConnectingPoint num="64" id="7688" />
+<TGConnectingPoint num="65" id="7689" />
+<TGConnectingPoint num="66" id="7690" />
+<TGConnectingPoint num="67" id="7691" />
+<TGConnectingPoint num="68" id="7692" />
+<TGConnectingPoint num="69" id="7693" />
+<TGConnectingPoint num="70" id="7694" />
+<TGConnectingPoint num="71" id="7695" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="7698" index="10" uid="f47a6d52-2763-4062-98d8-4698b9677040" >
+<cdparam x="401" y="82" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8910" />
+<TGConnectingPoint num="0" id="7697" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Other" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<CONNECTOR type="5102" id="8918" index="0" uid="299bd485-d0e3-4c21-9275-844aec01a318" >
+<CONNECTOR type="5102" id="7705" index="0" uid="299bd485-d0e3-4c21-9275-844aec01a318" >
 <cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="8917" />
-<P1  x="407" y="70" id="8921" />
-<P2  x="407" y="114" id="8919" />
+<TGConnectingPoint num="0" id="7704" />
+<P1  x="407" y="70" id="7708" />
+<P2  x="407" y="114" id="7706" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="8916" index="3" uid="0602822d-ee2e-4fa2-8065-e9f41a1bfc41" >
-<father id="8918" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="7703" index="3" uid="0602822d-ee2e-4fa2-8065-e9f41a1bfc41" >
+<father id="7705" num="0" />
 <cdparam x="416" y="94" />
-<sizeparam width="79" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="84" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8912" />
-<TGConnectingPoint num="1" id="8913" />
-<TGConnectingPoint num="2" id="8914" />
-<TGConnectingPoint num="3" id="8915" />
+<TGConnectingPoint num="0" id="7699" />
+<TGConnectingPoint num="1" id="7700" />
+<TGConnectingPoint num="2" id="7701" />
+<TGConnectingPoint num="3" id="7702" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="15" enabled="true"/>
@@ -16379,24 +15019,24 @@ Double-click to edit
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5101" id="8920" index="1" uid="304bab9d-462b-4dc8-92a7-4269e1ec0214" >
+<COMPONENT type="5101" id="7707" index="1" uid="304bab9d-462b-4dc8-92a7-4269e1ec0214" >
 <cdparam x="397" y="119" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8919" />
+<TGConnectingPoint num="0" id="7706" />
 </COMPONENT>
 
-<COMPONENT type="5100" id="8922" index="2" uid="ed596b50-7b63-46e0-ac5f-52a23990559c" >
+<COMPONENT type="5100" id="7709" index="2" uid="ed596b50-7b63-46e0-ac5f-52a23990559c" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8921" />
+<TGConnectingPoint num="0" id="7708" />
 </COMPONENT>
 
 
diff --git a/modeling/SysMLSec/AliceAndBob.xml b/modeling/SysMLSec/AliceAndBob.xml
index 716187ba0ecb44e48bdb84d4b65f04490d0762c0..c06f7d2abb33ced98e910a1c3bd8ed8a0ae15770 100644
--- a/modeling/SysMLSec/AliceAndBob.xml
+++ b/modeling/SysMLSec/AliceAndBob.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="true" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="3" LAST_SELECTED_SUB_TAB="0">
+<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="true" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="3" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="AVATAR Design" nameTab="Example" tabs="Block Diagram$System$Alice$Bob" >
 <AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
@@ -99,7 +99,7 @@
 <TGConnectingPoint num="6" id="30" />
 <TGConnectingPoint num="7" id="31" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -119,7 +119,7 @@
 <TGConnectingPoint num="6" id="39" />
 <TGConnectingPoint num="7" id="40" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -228,10 +228,10 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="receivedData" value="" type="8" typeOther="" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -307,10 +307,10 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -1477,7 +1477,7 @@
 <TGConnectingPoint num="6" id="805" />
 <TGConnectingPoint num="7" id="806" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -1497,7 +1497,7 @@
 <TGConnectingPoint num="6" id="814" />
 <TGConnectingPoint num="7" id="815" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -1606,13 +1606,13 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="bobPubK" value="" type="5" typeOther="Key" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -1688,13 +1688,13 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="alicePubK" value="" type="5" typeOther="Key" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -3575,7 +3575,7 @@
 <TGConnectingPoint num="6" id="1972" />
 <TGConnectingPoint num="7" id="1973" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -3595,7 +3595,7 @@
 <TGConnectingPoint num="6" id="1981" />
 <TGConnectingPoint num="7" id="1982" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
@@ -3704,18 +3704,18 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="aliceID" value="" type="8" typeOther="" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="alicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="aliceID" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sig" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="certOK" value="" type="4" typeOther="" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -3791,18 +3791,18 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="bobID" value="" type="8" typeOther="" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
+<Attribute access="0" var="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="bobPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="bobID" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="sig" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="certOK" value="" type="4" typeOther="" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -3878,18 +3878,18 @@
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="aliceID" value="" type="8" typeOther="" />
-<Attribute access="0" id="bobID" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="newK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="newCert" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="newID" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="alicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="bobPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="aliceID" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="bobID" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="newK" value="" type="5" typeOther="Key" />
+<Attribute access="0" var="0" id="newCert" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="newID" value="" type="8" typeOther="" />
 <Method value="Message aencrypt(Message msg, Key k)" />
 <Method value="Message adecrypt(Message msg, Key k)" />
 <Method value="Key pk(Key k)" />
@@ -6557,18 +6557,18 @@
 <MainCode value="}"/>
 <Optimized value="true" />
 <considerTimingOperators value="true" />
-<Validated value="" />
+<Validated value="System;Bob;Alice;" />
 <Ignored value="" />
 
-<CONNECTOR type="5002" id="4261" index="0" uid="5e9ea5bc-0eac-45c7-b468-24e6f5a65e1f" >
+<CONNECTOR type="5002" id="3566" index="0" uid="5e9ea5bc-0eac-45c7-b468-24e6f5a65e1f" >
 <cdparam x="568" y="220" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block0 to Block0" value="" />
-<TGConnectingPoint num="0" id="4258" />
-<TGConnectingPoint num="1" id="4259" />
-<TGConnectingPoint num="2" id="4260" />
-<P1  x="459" y="199" id="4390" />
-<P2  x="459" y="254" id="4383" />
+<TGConnectingPoint num="0" id="3563" />
+<TGConnectingPoint num="1" id="3564" />
+<TGConnectingPoint num="2" id="3565" />
+<P1  x="459" y="199" id="3695" />
+<P2  x="459" y="254" id="3688" />
 <Point x="490" y="199" />
 <Point x="490" y="254" />
 <AutomaticDrawing  data="true" />
@@ -6578,8 +6578,8 @@
 <osd value="out chout(Message msg)" />
 <FIFOType asynchronous="false" synchronousCH="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" ams="false" />
 </extraparam>
-</CONNECTOR><SUBCOMPONENT type="-1" id="4256" index="5" uid="c8213529-738a-46d4-bbf7-ea9e24c11f5a" >
-<father id="4261" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3561" index="5" uid="c8213529-738a-46d4-bbf7-ea9e24c11f5a" >
+<father id="3566" num="0" />
 <cdparam x="490" y="199" />
 <sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6587,8 +6587,8 @@
 <infoparam name="point " value="null" />
 <new d="false" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4257" index="6" uid="2c2224b4-6c04-4d47-a0d9-466f88f4d68a" >
-<father id="4261" num="1" />
+<SUBCOMPONENT type="-1" id="3562" index="6" uid="2c2224b4-6c04-4d47-a0d9-466f88f4d68a" >
+<father id="3566" num="1" />
 <cdparam x="490" y="254" />
 <sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6597,7 +6597,7 @@
 <new d="false" />
 </SUBCOMPONENT>
 
-<COMPONENT type="302" id="4278" index="1" uid="029b1805-5bd8-44cc-9fbd-9dfae02d8e94" >
+<COMPONENT type="302" id="3583" index="1" uid="029b1805-5bd8-44cc-9fbd-9dfae02d8e94" >
 <cdparam x="535" y="149" />
 <sizeparam width="420" height="66" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -6606,115 +6606,115 @@
 #Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m
 " />
 <new d="false" />
-<TGConnectingPoint num="0" id="4262" />
-<TGConnectingPoint num="1" id="4263" />
-<TGConnectingPoint num="2" id="4264" />
-<TGConnectingPoint num="3" id="4265" />
-<TGConnectingPoint num="4" id="4266" />
-<TGConnectingPoint num="5" id="4267" />
-<TGConnectingPoint num="6" id="4268" />
-<TGConnectingPoint num="7" id="4269" />
-<TGConnectingPoint num="8" id="4270" />
-<TGConnectingPoint num="9" id="4271" />
-<TGConnectingPoint num="10" id="4272" />
-<TGConnectingPoint num="11" id="4273" />
-<TGConnectingPoint num="12" id="4274" />
-<TGConnectingPoint num="13" id="4275" />
-<TGConnectingPoint num="14" id="4276" />
-<TGConnectingPoint num="15" id="4277" />
+<TGConnectingPoint num="0" id="3567" />
+<TGConnectingPoint num="1" id="3568" />
+<TGConnectingPoint num="2" id="3569" />
+<TGConnectingPoint num="3" id="3570" />
+<TGConnectingPoint num="4" id="3571" />
+<TGConnectingPoint num="5" id="3572" />
+<TGConnectingPoint num="6" id="3573" />
+<TGConnectingPoint num="7" id="3574" />
+<TGConnectingPoint num="8" id="3575" />
+<TGConnectingPoint num="9" id="3576" />
+<TGConnectingPoint num="10" id="3577" />
+<TGConnectingPoint num="11" id="3578" />
+<TGConnectingPoint num="12" id="3579" />
+<TGConnectingPoint num="13" id="3580" />
+<TGConnectingPoint num="14" id="3581" />
+<TGConnectingPoint num="15" id="3582" />
 <extraparam>
 <Line value="#Confidentiality Alice.secretData" />
 <Line value="#Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="4287" index="2" uid="6ff09061-6050-477e-9429-0ca0a94d0652" >
+<COMPONENT type="5003" id="3592" index="2" uid="6ff09061-6050-477e-9429-0ca0a94d0652" >
 <cdparam x="260" y="373" />
 <sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="DataType0" value="Message" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4279" />
-<TGConnectingPoint num="1" id="4280" />
-<TGConnectingPoint num="2" id="4281" />
-<TGConnectingPoint num="3" id="4282" />
-<TGConnectingPoint num="4" id="4283" />
-<TGConnectingPoint num="5" id="4284" />
-<TGConnectingPoint num="6" id="4285" />
-<TGConnectingPoint num="7" id="4286" />
+<TGConnectingPoint num="0" id="3584" />
+<TGConnectingPoint num="1" id="3585" />
+<TGConnectingPoint num="2" id="3586" />
+<TGConnectingPoint num="3" id="3587" />
+<TGConnectingPoint num="4" id="3588" />
+<TGConnectingPoint num="5" id="3589" />
+<TGConnectingPoint num="6" id="3590" />
+<TGConnectingPoint num="7" id="3591" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="4296" index="3" uid="abad1e2f-9763-48d1-b6fe-911c3f0c6cd6" >
+<COMPONENT type="5003" id="3601" index="3" uid="abad1e2f-9763-48d1-b6fe-911c3f0c6cd6" >
 <cdparam x="68" y="372" />
 <sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="DataType0" value="Key" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4288" />
-<TGConnectingPoint num="1" id="4289" />
-<TGConnectingPoint num="2" id="4290" />
-<TGConnectingPoint num="3" id="4291" />
-<TGConnectingPoint num="4" id="4292" />
-<TGConnectingPoint num="5" id="4293" />
-<TGConnectingPoint num="6" id="4294" />
-<TGConnectingPoint num="7" id="4295" />
+<TGConnectingPoint num="0" id="3593" />
+<TGConnectingPoint num="1" id="3594" />
+<TGConnectingPoint num="2" id="3595" />
+<TGConnectingPoint num="3" id="3596" />
+<TGConnectingPoint num="4" id="3597" />
+<TGConnectingPoint num="5" id="3598" />
+<TGConnectingPoint num="6" id="3599" />
+<TGConnectingPoint num="7" id="3600" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5000" id="4419" index="4" uid="a468054d-8335-41ee-8174-1e236a68c252" >
+<COMPONENT type="5000" id="3724" index="4" uid="a468054d-8335-41ee-8174-1e236a68c252" >
 <cdparam x="21" y="145" />
 <sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="System" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4379" />
-<TGConnectingPoint num="1" id="4380" />
-<TGConnectingPoint num="2" id="4381" />
-<TGConnectingPoint num="3" id="4382" />
-<TGConnectingPoint num="4" id="4383" />
-<TGConnectingPoint num="5" id="4384" />
-<TGConnectingPoint num="6" id="4385" />
-<TGConnectingPoint num="7" id="4386" />
-<TGConnectingPoint num="8" id="4387" />
-<TGConnectingPoint num="9" id="4388" />
-<TGConnectingPoint num="10" id="4389" />
-<TGConnectingPoint num="11" id="4390" />
-<TGConnectingPoint num="12" id="4391" />
-<TGConnectingPoint num="13" id="4392" />
-<TGConnectingPoint num="14" id="4393" />
-<TGConnectingPoint num="15" id="4394" />
-<TGConnectingPoint num="16" id="4395" />
-<TGConnectingPoint num="17" id="4396" />
-<TGConnectingPoint num="18" id="4397" />
-<TGConnectingPoint num="19" id="4398" />
-<TGConnectingPoint num="20" id="4399" />
-<TGConnectingPoint num="21" id="4400" />
-<TGConnectingPoint num="22" id="4401" />
-<TGConnectingPoint num="23" id="4402" />
-<TGConnectingPoint num="24" id="4403" />
-<TGConnectingPoint num="25" id="4404" />
-<TGConnectingPoint num="26" id="4405" />
-<TGConnectingPoint num="27" id="4406" />
-<TGConnectingPoint num="28" id="4407" />
-<TGConnectingPoint num="29" id="4408" />
-<TGConnectingPoint num="30" id="4409" />
-<TGConnectingPoint num="31" id="4410" />
-<TGConnectingPoint num="32" id="4411" />
-<TGConnectingPoint num="33" id="4412" />
-<TGConnectingPoint num="34" id="4413" />
-<TGConnectingPoint num="35" id="4414" />
-<TGConnectingPoint num="36" id="4415" />
-<TGConnectingPoint num="37" id="4416" />
-<TGConnectingPoint num="38" id="4417" />
-<TGConnectingPoint num="39" id="4418" />
+<TGConnectingPoint num="0" id="3684" />
+<TGConnectingPoint num="1" id="3685" />
+<TGConnectingPoint num="2" id="3686" />
+<TGConnectingPoint num="3" id="3687" />
+<TGConnectingPoint num="4" id="3688" />
+<TGConnectingPoint num="5" id="3689" />
+<TGConnectingPoint num="6" id="3690" />
+<TGConnectingPoint num="7" id="3691" />
+<TGConnectingPoint num="8" id="3692" />
+<TGConnectingPoint num="9" id="3693" />
+<TGConnectingPoint num="10" id="3694" />
+<TGConnectingPoint num="11" id="3695" />
+<TGConnectingPoint num="12" id="3696" />
+<TGConnectingPoint num="13" id="3697" />
+<TGConnectingPoint num="14" id="3698" />
+<TGConnectingPoint num="15" id="3699" />
+<TGConnectingPoint num="16" id="3700" />
+<TGConnectingPoint num="17" id="3701" />
+<TGConnectingPoint num="18" id="3702" />
+<TGConnectingPoint num="19" id="3703" />
+<TGConnectingPoint num="20" id="3704" />
+<TGConnectingPoint num="21" id="3705" />
+<TGConnectingPoint num="22" id="3706" />
+<TGConnectingPoint num="23" id="3707" />
+<TGConnectingPoint num="24" id="3708" />
+<TGConnectingPoint num="25" id="3709" />
+<TGConnectingPoint num="26" id="3710" />
+<TGConnectingPoint num="27" id="3711" />
+<TGConnectingPoint num="28" id="3712" />
+<TGConnectingPoint num="29" id="3713" />
+<TGConnectingPoint num="30" id="3714" />
+<TGConnectingPoint num="31" id="3715" />
+<TGConnectingPoint num="32" id="3716" />
+<TGConnectingPoint num="33" id="3717" />
+<TGConnectingPoint num="34" id="3718" />
+<TGConnectingPoint num="35" id="3719" />
+<TGConnectingPoint num="36" id="3720" />
+<TGConnectingPoint num="37" id="3721" />
+<TGConnectingPoint num="38" id="3722" />
+<TGConnectingPoint num="39" id="3723" />
 <extraparam>
 <blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
@@ -6722,59 +6722,59 @@
 <Signal value="out chout(Message msg)" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="4337" index="7" uid="7bb99390-2a74-452a-8601-e344bd028850" >
-<father id="4419" num="0" />
+<SUBCOMPONENT type="5000" id="3642" index="7" uid="7bb99390-2a74-452a-8601-e344bd028850" >
+<father id="3724" num="0" />
 <cdparam x="263" y="233" />
 <sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" />
 <infoparam name="Block0" value="Bob" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4297" />
-<TGConnectingPoint num="1" id="4298" />
-<TGConnectingPoint num="2" id="4299" />
-<TGConnectingPoint num="3" id="4300" />
-<TGConnectingPoint num="4" id="4301" />
-<TGConnectingPoint num="5" id="4302" />
-<TGConnectingPoint num="6" id="4303" />
-<TGConnectingPoint num="7" id="4304" />
-<TGConnectingPoint num="8" id="4305" />
-<TGConnectingPoint num="9" id="4306" />
-<TGConnectingPoint num="10" id="4307" />
-<TGConnectingPoint num="11" id="4308" />
-<TGConnectingPoint num="12" id="4309" />
-<TGConnectingPoint num="13" id="4310" />
-<TGConnectingPoint num="14" id="4311" />
-<TGConnectingPoint num="15" id="4312" />
-<TGConnectingPoint num="16" id="4313" />
-<TGConnectingPoint num="17" id="4314" />
-<TGConnectingPoint num="18" id="4315" />
-<TGConnectingPoint num="19" id="4316" />
-<TGConnectingPoint num="20" id="4317" />
-<TGConnectingPoint num="21" id="4318" />
-<TGConnectingPoint num="22" id="4319" />
-<TGConnectingPoint num="23" id="4320" />
-<TGConnectingPoint num="24" id="4321" />
-<TGConnectingPoint num="25" id="4322" />
-<TGConnectingPoint num="26" id="4323" />
-<TGConnectingPoint num="27" id="4324" />
-<TGConnectingPoint num="28" id="4325" />
-<TGConnectingPoint num="29" id="4326" />
-<TGConnectingPoint num="30" id="4327" />
-<TGConnectingPoint num="31" id="4328" />
-<TGConnectingPoint num="32" id="4329" />
-<TGConnectingPoint num="33" id="4330" />
-<TGConnectingPoint num="34" id="4331" />
-<TGConnectingPoint num="35" id="4332" />
-<TGConnectingPoint num="36" id="4333" />
-<TGConnectingPoint num="37" id="4334" />
-<TGConnectingPoint num="38" id="4335" />
-<TGConnectingPoint num="39" id="4336" />
+<TGConnectingPoint num="0" id="3602" />
+<TGConnectingPoint num="1" id="3603" />
+<TGConnectingPoint num="2" id="3604" />
+<TGConnectingPoint num="3" id="3605" />
+<TGConnectingPoint num="4" id="3606" />
+<TGConnectingPoint num="5" id="3607" />
+<TGConnectingPoint num="6" id="3608" />
+<TGConnectingPoint num="7" id="3609" />
+<TGConnectingPoint num="8" id="3610" />
+<TGConnectingPoint num="9" id="3611" />
+<TGConnectingPoint num="10" id="3612" />
+<TGConnectingPoint num="11" id="3613" />
+<TGConnectingPoint num="12" id="3614" />
+<TGConnectingPoint num="13" id="3615" />
+<TGConnectingPoint num="14" id="3616" />
+<TGConnectingPoint num="15" id="3617" />
+<TGConnectingPoint num="16" id="3618" />
+<TGConnectingPoint num="17" id="3619" />
+<TGConnectingPoint num="18" id="3620" />
+<TGConnectingPoint num="19" id="3621" />
+<TGConnectingPoint num="20" id="3622" />
+<TGConnectingPoint num="21" id="3623" />
+<TGConnectingPoint num="22" id="3624" />
+<TGConnectingPoint num="23" id="3625" />
+<TGConnectingPoint num="24" id="3626" />
+<TGConnectingPoint num="25" id="3627" />
+<TGConnectingPoint num="26" id="3628" />
+<TGConnectingPoint num="27" id="3629" />
+<TGConnectingPoint num="28" id="3630" />
+<TGConnectingPoint num="29" id="3631" />
+<TGConnectingPoint num="30" id="3632" />
+<TGConnectingPoint num="31" id="3633" />
+<TGConnectingPoint num="32" id="3634" />
+<TGConnectingPoint num="33" id="3635" />
+<TGConnectingPoint num="34" id="3636" />
+<TGConnectingPoint num="35" id="3637" />
+<TGConnectingPoint num="36" id="3638" />
+<TGConnectingPoint num="37" id="3639" />
+<TGConnectingPoint num="38" id="3640" />
+<TGConnectingPoint num="39" id="3641" />
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="receivedData" value="" type="8" typeOther="" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -6799,59 +6799,59 @@
 <Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="4378" index="8" uid="58e32c17-1811-4588-ab32-863569a17a48" >
-<father id="4419" num="1" />
+<SUBCOMPONENT type="5000" id="3683" index="8" uid="58e32c17-1811-4588-ab32-863569a17a48" >
+<father id="3724" num="1" />
 <cdparam x="36" y="233" />
 <sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" />
 <infoparam name="Block0" value="Alice" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4338" />
-<TGConnectingPoint num="1" id="4339" />
-<TGConnectingPoint num="2" id="4340" />
-<TGConnectingPoint num="3" id="4341" />
-<TGConnectingPoint num="4" id="4342" />
-<TGConnectingPoint num="5" id="4343" />
-<TGConnectingPoint num="6" id="4344" />
-<TGConnectingPoint num="7" id="4345" />
-<TGConnectingPoint num="8" id="4346" />
-<TGConnectingPoint num="9" id="4347" />
-<TGConnectingPoint num="10" id="4348" />
-<TGConnectingPoint num="11" id="4349" />
-<TGConnectingPoint num="12" id="4350" />
-<TGConnectingPoint num="13" id="4351" />
-<TGConnectingPoint num="14" id="4352" />
-<TGConnectingPoint num="15" id="4353" />
-<TGConnectingPoint num="16" id="4354" />
-<TGConnectingPoint num="17" id="4355" />
-<TGConnectingPoint num="18" id="4356" />
-<TGConnectingPoint num="19" id="4357" />
-<TGConnectingPoint num="20" id="4358" />
-<TGConnectingPoint num="21" id="4359" />
-<TGConnectingPoint num="22" id="4360" />
-<TGConnectingPoint num="23" id="4361" />
-<TGConnectingPoint num="24" id="4362" />
-<TGConnectingPoint num="25" id="4363" />
-<TGConnectingPoint num="26" id="4364" />
-<TGConnectingPoint num="27" id="4365" />
-<TGConnectingPoint num="28" id="4366" />
-<TGConnectingPoint num="29" id="4367" />
-<TGConnectingPoint num="30" id="4368" />
-<TGConnectingPoint num="31" id="4369" />
-<TGConnectingPoint num="32" id="4370" />
-<TGConnectingPoint num="33" id="4371" />
-<TGConnectingPoint num="34" id="4372" />
-<TGConnectingPoint num="35" id="4373" />
-<TGConnectingPoint num="36" id="4374" />
-<TGConnectingPoint num="37" id="4375" />
-<TGConnectingPoint num="38" id="4376" />
-<TGConnectingPoint num="39" id="4377" />
+<TGConnectingPoint num="0" id="3643" />
+<TGConnectingPoint num="1" id="3644" />
+<TGConnectingPoint num="2" id="3645" />
+<TGConnectingPoint num="3" id="3646" />
+<TGConnectingPoint num="4" id="3647" />
+<TGConnectingPoint num="5" id="3648" />
+<TGConnectingPoint num="6" id="3649" />
+<TGConnectingPoint num="7" id="3650" />
+<TGConnectingPoint num="8" id="3651" />
+<TGConnectingPoint num="9" id="3652" />
+<TGConnectingPoint num="10" id="3653" />
+<TGConnectingPoint num="11" id="3654" />
+<TGConnectingPoint num="12" id="3655" />
+<TGConnectingPoint num="13" id="3656" />
+<TGConnectingPoint num="14" id="3657" />
+<TGConnectingPoint num="15" id="3658" />
+<TGConnectingPoint num="16" id="3659" />
+<TGConnectingPoint num="17" id="3660" />
+<TGConnectingPoint num="18" id="3661" />
+<TGConnectingPoint num="19" id="3662" />
+<TGConnectingPoint num="20" id="3663" />
+<TGConnectingPoint num="21" id="3664" />
+<TGConnectingPoint num="22" id="3665" />
+<TGConnectingPoint num="23" id="3666" />
+<TGConnectingPoint num="24" id="3667" />
+<TGConnectingPoint num="25" id="3668" />
+<TGConnectingPoint num="26" id="3669" />
+<TGConnectingPoint num="27" id="3670" />
+<TGConnectingPoint num="28" id="3671" />
+<TGConnectingPoint num="29" id="3672" />
+<TGConnectingPoint num="30" id="3673" />
+<TGConnectingPoint num="31" id="3674" />
+<TGConnectingPoint num="32" id="3675" />
+<TGConnectingPoint num="33" id="3676" />
+<TGConnectingPoint num="34" id="3677" />
+<TGConnectingPoint num="35" id="3678" />
+<TGConnectingPoint num="36" id="3679" />
+<TGConnectingPoint num="37" id="3680" />
+<TGConnectingPoint num="38" id="3681" />
+<TGConnectingPoint num="39" id="3682" />
 <extraparam>
 <blockType data="cryptoblock" color="-4072719" />
 <CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" var="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" var="0" id="m" value="" type="5" typeOther="Message" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -6881,42 +6881,42 @@
 </AVATARBlockDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<COMPONENT type="5100" id="4421" index="0" uid="2009f392-28ba-4e63-95db-e00eb87b0f22" >
+<COMPONENT type="5100" id="3726" index="0" uid="2009f392-28ba-4e63-95db-e00eb87b0f22" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4420" />
+<TGConnectingPoint num="0" id="3725" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<CONNECTOR type="5102" id="4428" index="0" uid="9adf36c0-0bac-4b20-9868-21d7833c947e" >
+<CONNECTOR type="5102" id="3733" index="0" uid="9adf36c0-0bac-4b20-9868-21d7833c947e" >
 <cdparam x="407" y="310" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="4427" />
-<P1  x="407" y="310" id="4531" />
-<P2  x="407" y="341" id="4458" />
+<TGConnectingPoint num="0" id="3732" />
+<P1  x="407" y="310" id="3836" />
+<P2  x="407" y="341" id="3763" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4426" index="11" uid="7a2775eb-770e-487d-ba05-121548176731" >
-<father id="4428" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3731" index="11" uid="7a2775eb-770e-487d-ba05-121548176731" >
+<father id="3733" num="0" />
 <cdparam x="449" y="353" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4422" />
-<TGConnectingPoint num="1" id="4423" />
-<TGConnectingPoint num="2" id="4424" />
-<TGConnectingPoint num="3" id="4425" />
+<TGConnectingPoint num="0" id="3727" />
+<TGConnectingPoint num="1" id="3728" />
+<TGConnectingPoint num="2" id="3729" />
+<TGConnectingPoint num="3" id="3730" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -6930,28 +6930,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4435" index="1" uid="97aacae5-7830-488b-bdd6-3c6e7197e995" >
+<CONNECTOR type="5102" id="3740" index="1" uid="97aacae5-7830-488b-bdd6-3c6e7197e995" >
 <cdparam x="492" y="446" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="4434" />
-<P1  x="407" y="391" id="4463" />
-<P2  x="413" y="423" id="4541" />
+<TGConnectingPoint num="0" id="3739" />
+<P1  x="407" y="391" id="3768" />
+<P2  x="413" y="423" id="3846" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4433" index="12" uid="8abb1648-de57-438e-bcf4-2ef63367150f" >
-<father id="4435" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3738" index="12" uid="8abb1648-de57-438e-bcf4-2ef63367150f" >
+<father id="3740" num="0" />
 <cdparam x="449" y="440" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4429" />
-<TGConnectingPoint num="1" id="4430" />
-<TGConnectingPoint num="2" id="4431" />
-<TGConnectingPoint num="3" id="4432" />
+<TGConnectingPoint num="0" id="3734" />
+<TGConnectingPoint num="1" id="3735" />
+<TGConnectingPoint num="2" id="3736" />
+<TGConnectingPoint num="3" id="3737" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -6965,28 +6965,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4442" index="2" uid="b28d7e0e-a0ca-43c2-a559-bbcc55cfed28" >
+<CONNECTOR type="5102" id="3747" index="2" uid="b28d7e0e-a0ca-43c2-a559-bbcc55cfed28" >
 <cdparam x="407" y="251" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to stop state" value="null" />
-<TGConnectingPoint num="0" id="4441" />
-<P1  x="406" y="229" id="4549" />
-<P2  x="407" y="280" id="4530" />
+<TGConnectingPoint num="0" id="3746" />
+<P1  x="406" y="229" id="3854" />
+<P2  x="407" y="280" id="3835" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4440" index="13" uid="e5ccdb03-9694-4337-a917-267ad5e738b5" >
-<father id="4442" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3745" index="13" uid="e5ccdb03-9694-4337-a917-267ad5e738b5" >
+<father id="3747" num="0" />
 <cdparam x="407" y="291" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4436" />
-<TGConnectingPoint num="1" id="4437" />
-<TGConnectingPoint num="2" id="4438" />
-<TGConnectingPoint num="3" id="4439" />
+<TGConnectingPoint num="0" id="3741" />
+<TGConnectingPoint num="1" id="3742" />
+<TGConnectingPoint num="2" id="3743" />
+<TGConnectingPoint num="3" id="3744" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7000,17 +7000,17 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4449" index="3" uid="0ec6abac-e2d0-4bd7-83ed-2a870aa460e3" >
+<CONNECTOR type="5102" id="3754" index="3" uid="0ec6abac-e2d0-4bd7-83ed-2a870aa460e3" >
 <cdparam x="407" y="132" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="4448" />
-<P1  x="407" y="132" id="4622" />
-<P2  x="406" y="189" id="4544" />
+<TGConnectingPoint num="0" id="3753" />
+<P1  x="407" y="132" id="3927" />
+<P2  x="406" y="189" id="3849" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4447" index="14" uid="97226e5e-67e4-4eff-a9e3-fdb15e54f5e8" >
-<father id="4449" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3752" index="14" uid="97226e5e-67e4-4eff-a9e3-fdb15e54f5e8" >
+<father id="3754" num="0" />
 <cdparam x="465" y="153" />
 <sizeparam width="144" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7018,10 +7018,10 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4443" />
-<TGConnectingPoint num="1" id="4444" />
-<TGConnectingPoint num="2" id="4445" />
-<TGConnectingPoint num="3" id="4446" />
+<TGConnectingPoint num="0" id="3748" />
+<TGConnectingPoint num="1" id="3749" />
+<TGConnectingPoint num="2" id="3750" />
+<TGConnectingPoint num="3" id="3751" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7036,28 +7036,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4456" index="4" uid="71404e00-a56f-49a5-9127-4be33041f927" >
+<CONNECTOR type="5102" id="3761" index="4" uid="71404e00-a56f-49a5-9127-4be33041f927" >
 <cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="4455" />
-<P1  x="407" y="70" id="4689" />
-<P2  x="407" y="92" id="4617" />
+<TGConnectingPoint num="0" id="3760" />
+<P1  x="407" y="70" id="3994" />
+<P2  x="407" y="92" id="3922" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4454" index="15" uid="3b640d5d-82b0-4d0c-8738-7156d7672224" >
-<father id="4456" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3759" index="15" uid="3b640d5d-82b0-4d0c-8738-7156d7672224" >
+<father id="3761" num="0" />
 <cdparam x="407" y="110" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4450" />
-<TGConnectingPoint num="1" id="4451" />
-<TGConnectingPoint num="2" id="4452" />
-<TGConnectingPoint num="3" id="4453" />
+<TGConnectingPoint num="0" id="3755" />
+<TGConnectingPoint num="1" id="3756" />
+<TGConnectingPoint num="2" id="3757" />
+<TGConnectingPoint num="3" id="3758" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7071,7 +7071,7 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="4529" index="5" uid="d0f4fc47-1fff-456e-999f-70eb622aa998" >
+<COMPONENT type="5106" id="3834" index="5" uid="d0f4fc47-1fff-456e-999f-70eb622aa998" >
 <cdparam x="357" y="341" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7079,83 +7079,83 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="State" value="beforeFinish" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4457" />
-<TGConnectingPoint num="1" id="4458" />
-<TGConnectingPoint num="2" id="4459" />
-<TGConnectingPoint num="3" id="4460" />
-<TGConnectingPoint num="4" id="4461" />
-<TGConnectingPoint num="5" id="4462" />
-<TGConnectingPoint num="6" id="4463" />
-<TGConnectingPoint num="7" id="4464" />
-<TGConnectingPoint num="8" id="4465" />
-<TGConnectingPoint num="9" id="4466" />
-<TGConnectingPoint num="10" id="4467" />
-<TGConnectingPoint num="11" id="4468" />
-<TGConnectingPoint num="12" id="4469" />
-<TGConnectingPoint num="13" id="4470" />
-<TGConnectingPoint num="14" id="4471" />
-<TGConnectingPoint num="15" id="4472" />
-<TGConnectingPoint num="16" id="4473" />
-<TGConnectingPoint num="17" id="4474" />
-<TGConnectingPoint num="18" id="4475" />
-<TGConnectingPoint num="19" id="4476" />
-<TGConnectingPoint num="20" id="4477" />
-<TGConnectingPoint num="21" id="4478" />
-<TGConnectingPoint num="22" id="4479" />
-<TGConnectingPoint num="23" id="4480" />
-<TGConnectingPoint num="24" id="4481" />
-<TGConnectingPoint num="25" id="4482" />
-<TGConnectingPoint num="26" id="4483" />
-<TGConnectingPoint num="27" id="4484" />
-<TGConnectingPoint num="28" id="4485" />
-<TGConnectingPoint num="29" id="4486" />
-<TGConnectingPoint num="30" id="4487" />
-<TGConnectingPoint num="31" id="4488" />
-<TGConnectingPoint num="32" id="4489" />
-<TGConnectingPoint num="33" id="4490" />
-<TGConnectingPoint num="34" id="4491" />
-<TGConnectingPoint num="35" id="4492" />
-<TGConnectingPoint num="36" id="4493" />
-<TGConnectingPoint num="37" id="4494" />
-<TGConnectingPoint num="38" id="4495" />
-<TGConnectingPoint num="39" id="4496" />
-<TGConnectingPoint num="40" id="4497" />
-<TGConnectingPoint num="41" id="4498" />
-<TGConnectingPoint num="42" id="4499" />
-<TGConnectingPoint num="43" id="4500" />
-<TGConnectingPoint num="44" id="4501" />
-<TGConnectingPoint num="45" id="4502" />
-<TGConnectingPoint num="46" id="4503" />
-<TGConnectingPoint num="47" id="4504" />
-<TGConnectingPoint num="48" id="4505" />
-<TGConnectingPoint num="49" id="4506" />
-<TGConnectingPoint num="50" id="4507" />
-<TGConnectingPoint num="51" id="4508" />
-<TGConnectingPoint num="52" id="4509" />
-<TGConnectingPoint num="53" id="4510" />
-<TGConnectingPoint num="54" id="4511" />
-<TGConnectingPoint num="55" id="4512" />
-<TGConnectingPoint num="56" id="4513" />
-<TGConnectingPoint num="57" id="4514" />
-<TGConnectingPoint num="58" id="4515" />
-<TGConnectingPoint num="59" id="4516" />
-<TGConnectingPoint num="60" id="4517" />
-<TGConnectingPoint num="61" id="4518" />
-<TGConnectingPoint num="62" id="4519" />
-<TGConnectingPoint num="63" id="4520" />
-<TGConnectingPoint num="64" id="4521" />
-<TGConnectingPoint num="65" id="4522" />
-<TGConnectingPoint num="66" id="4523" />
-<TGConnectingPoint num="67" id="4524" />
-<TGConnectingPoint num="68" id="4525" />
-<TGConnectingPoint num="69" id="4526" />
-<TGConnectingPoint num="70" id="4527" />
-<TGConnectingPoint num="71" id="4528" />
+<TGConnectingPoint num="0" id="3762" />
+<TGConnectingPoint num="1" id="3763" />
+<TGConnectingPoint num="2" id="3764" />
+<TGConnectingPoint num="3" id="3765" />
+<TGConnectingPoint num="4" id="3766" />
+<TGConnectingPoint num="5" id="3767" />
+<TGConnectingPoint num="6" id="3768" />
+<TGConnectingPoint num="7" id="3769" />
+<TGConnectingPoint num="8" id="3770" />
+<TGConnectingPoint num="9" id="3771" />
+<TGConnectingPoint num="10" id="3772" />
+<TGConnectingPoint num="11" id="3773" />
+<TGConnectingPoint num="12" id="3774" />
+<TGConnectingPoint num="13" id="3775" />
+<TGConnectingPoint num="14" id="3776" />
+<TGConnectingPoint num="15" id="3777" />
+<TGConnectingPoint num="16" id="3778" />
+<TGConnectingPoint num="17" id="3779" />
+<TGConnectingPoint num="18" id="3780" />
+<TGConnectingPoint num="19" id="3781" />
+<TGConnectingPoint num="20" id="3782" />
+<TGConnectingPoint num="21" id="3783" />
+<TGConnectingPoint num="22" id="3784" />
+<TGConnectingPoint num="23" id="3785" />
+<TGConnectingPoint num="24" id="3786" />
+<TGConnectingPoint num="25" id="3787" />
+<TGConnectingPoint num="26" id="3788" />
+<TGConnectingPoint num="27" id="3789" />
+<TGConnectingPoint num="28" id="3790" />
+<TGConnectingPoint num="29" id="3791" />
+<TGConnectingPoint num="30" id="3792" />
+<TGConnectingPoint num="31" id="3793" />
+<TGConnectingPoint num="32" id="3794" />
+<TGConnectingPoint num="33" id="3795" />
+<TGConnectingPoint num="34" id="3796" />
+<TGConnectingPoint num="35" id="3797" />
+<TGConnectingPoint num="36" id="3798" />
+<TGConnectingPoint num="37" id="3799" />
+<TGConnectingPoint num="38" id="3800" />
+<TGConnectingPoint num="39" id="3801" />
+<TGConnectingPoint num="40" id="3802" />
+<TGConnectingPoint num="41" id="3803" />
+<TGConnectingPoint num="42" id="3804" />
+<TGConnectingPoint num="43" id="3805" />
+<TGConnectingPoint num="44" id="3806" />
+<TGConnectingPoint num="45" id="3807" />
+<TGConnectingPoint num="46" id="3808" />
+<TGConnectingPoint num="47" id="3809" />
+<TGConnectingPoint num="48" id="3810" />
+<TGConnectingPoint num="49" id="3811" />
+<TGConnectingPoint num="50" id="3812" />
+<TGConnectingPoint num="51" id="3813" />
+<TGConnectingPoint num="52" id="3814" />
+<TGConnectingPoint num="53" id="3815" />
+<TGConnectingPoint num="54" id="3816" />
+<TGConnectingPoint num="55" id="3817" />
+<TGConnectingPoint num="56" id="3818" />
+<TGConnectingPoint num="57" id="3819" />
+<TGConnectingPoint num="58" id="3820" />
+<TGConnectingPoint num="59" id="3821" />
+<TGConnectingPoint num="60" id="3822" />
+<TGConnectingPoint num="61" id="3823" />
+<TGConnectingPoint num="62" id="3824" />
+<TGConnectingPoint num="63" id="3825" />
+<TGConnectingPoint num="64" id="3826" />
+<TGConnectingPoint num="65" id="3827" />
+<TGConnectingPoint num="66" id="3828" />
+<TGConnectingPoint num="67" id="3829" />
+<TGConnectingPoint num="68" id="3830" />
+<TGConnectingPoint num="69" id="3831" />
+<TGConnectingPoint num="70" id="3832" />
+<TGConnectingPoint num="71" id="3833" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5103" id="4540" index="6" uid="b7c78bc4-bc9b-413a-872d-6cb488584f62" >
+<COMPONENT type="5103" id="3845" index="6" uid="b7c78bc4-bc9b-413a-872d-6cb488584f62" >
 <cdparam x="377" y="285" />
 <sizeparam width="60" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7163,29 +7163,29 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Send signal" value="chout(m)" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4530" />
-<TGConnectingPoint num="1" id="4531" />
-<TGConnectingPoint num="2" id="4532" />
-<TGConnectingPoint num="3" id="4533" />
-<TGConnectingPoint num="4" id="4534" />
-<TGConnectingPoint num="5" id="4535" />
-<TGConnectingPoint num="6" id="4536" />
-<TGConnectingPoint num="7" id="4537" />
-<TGConnectingPoint num="8" id="4538" />
-<TGConnectingPoint num="9" id="4539" />
+<TGConnectingPoint num="0" id="3835" />
+<TGConnectingPoint num="1" id="3836" />
+<TGConnectingPoint num="2" id="3837" />
+<TGConnectingPoint num="3" id="3838" />
+<TGConnectingPoint num="4" id="3839" />
+<TGConnectingPoint num="5" id="3840" />
+<TGConnectingPoint num="6" id="3841" />
+<TGConnectingPoint num="7" id="3842" />
+<TGConnectingPoint num="8" id="3843" />
+<TGConnectingPoint num="9" id="3844" />
 </COMPONENT>
 
-<COMPONENT type="5101" id="4542" index="7" uid="db9822cc-3240-4766-967d-9afe81c0d8b0" >
+<COMPONENT type="5101" id="3847" index="7" uid="db9822cc-3240-4766-967d-9afe81c0d8b0" >
 <cdparam x="403" y="428" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4541" />
+<TGConnectingPoint num="0" id="3846" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="4615" index="8" uid="5e6cf696-97ff-4111-823a-95f8c039d3c4" >
+<COMPONENT type="5106" id="3920" index="8" uid="5e6cf696-97ff-4111-823a-95f8c039d3c4" >
 <cdparam x="335" y="189" />
 <sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7193,83 +7193,83 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="sendingMessage" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4543" />
-<TGConnectingPoint num="1" id="4544" />
-<TGConnectingPoint num="2" id="4545" />
-<TGConnectingPoint num="3" id="4546" />
-<TGConnectingPoint num="4" id="4547" />
-<TGConnectingPoint num="5" id="4548" />
-<TGConnectingPoint num="6" id="4549" />
-<TGConnectingPoint num="7" id="4550" />
-<TGConnectingPoint num="8" id="4551" />
-<TGConnectingPoint num="9" id="4552" />
-<TGConnectingPoint num="10" id="4553" />
-<TGConnectingPoint num="11" id="4554" />
-<TGConnectingPoint num="12" id="4555" />
-<TGConnectingPoint num="13" id="4556" />
-<TGConnectingPoint num="14" id="4557" />
-<TGConnectingPoint num="15" id="4558" />
-<TGConnectingPoint num="16" id="4559" />
-<TGConnectingPoint num="17" id="4560" />
-<TGConnectingPoint num="18" id="4561" />
-<TGConnectingPoint num="19" id="4562" />
-<TGConnectingPoint num="20" id="4563" />
-<TGConnectingPoint num="21" id="4564" />
-<TGConnectingPoint num="22" id="4565" />
-<TGConnectingPoint num="23" id="4566" />
-<TGConnectingPoint num="24" id="4567" />
-<TGConnectingPoint num="25" id="4568" />
-<TGConnectingPoint num="26" id="4569" />
-<TGConnectingPoint num="27" id="4570" />
-<TGConnectingPoint num="28" id="4571" />
-<TGConnectingPoint num="29" id="4572" />
-<TGConnectingPoint num="30" id="4573" />
-<TGConnectingPoint num="31" id="4574" />
-<TGConnectingPoint num="32" id="4575" />
-<TGConnectingPoint num="33" id="4576" />
-<TGConnectingPoint num="34" id="4577" />
-<TGConnectingPoint num="35" id="4578" />
-<TGConnectingPoint num="36" id="4579" />
-<TGConnectingPoint num="37" id="4580" />
-<TGConnectingPoint num="38" id="4581" />
-<TGConnectingPoint num="39" id="4582" />
-<TGConnectingPoint num="40" id="4583" />
-<TGConnectingPoint num="41" id="4584" />
-<TGConnectingPoint num="42" id="4585" />
-<TGConnectingPoint num="43" id="4586" />
-<TGConnectingPoint num="44" id="4587" />
-<TGConnectingPoint num="45" id="4588" />
-<TGConnectingPoint num="46" id="4589" />
-<TGConnectingPoint num="47" id="4590" />
-<TGConnectingPoint num="48" id="4591" />
-<TGConnectingPoint num="49" id="4592" />
-<TGConnectingPoint num="50" id="4593" />
-<TGConnectingPoint num="51" id="4594" />
-<TGConnectingPoint num="52" id="4595" />
-<TGConnectingPoint num="53" id="4596" />
-<TGConnectingPoint num="54" id="4597" />
-<TGConnectingPoint num="55" id="4598" />
-<TGConnectingPoint num="56" id="4599" />
-<TGConnectingPoint num="57" id="4600" />
-<TGConnectingPoint num="58" id="4601" />
-<TGConnectingPoint num="59" id="4602" />
-<TGConnectingPoint num="60" id="4603" />
-<TGConnectingPoint num="61" id="4604" />
-<TGConnectingPoint num="62" id="4605" />
-<TGConnectingPoint num="63" id="4606" />
-<TGConnectingPoint num="64" id="4607" />
-<TGConnectingPoint num="65" id="4608" />
-<TGConnectingPoint num="66" id="4609" />
-<TGConnectingPoint num="67" id="4610" />
-<TGConnectingPoint num="68" id="4611" />
-<TGConnectingPoint num="69" id="4612" />
-<TGConnectingPoint num="70" id="4613" />
-<TGConnectingPoint num="71" id="4614" />
+<TGConnectingPoint num="0" id="3848" />
+<TGConnectingPoint num="1" id="3849" />
+<TGConnectingPoint num="2" id="3850" />
+<TGConnectingPoint num="3" id="3851" />
+<TGConnectingPoint num="4" id="3852" />
+<TGConnectingPoint num="5" id="3853" />
+<TGConnectingPoint num="6" id="3854" />
+<TGConnectingPoint num="7" id="3855" />
+<TGConnectingPoint num="8" id="3856" />
+<TGConnectingPoint num="9" id="3857" />
+<TGConnectingPoint num="10" id="3858" />
+<TGConnectingPoint num="11" id="3859" />
+<TGConnectingPoint num="12" id="3860" />
+<TGConnectingPoint num="13" id="3861" />
+<TGConnectingPoint num="14" id="3862" />
+<TGConnectingPoint num="15" id="3863" />
+<TGConnectingPoint num="16" id="3864" />
+<TGConnectingPoint num="17" id="3865" />
+<TGConnectingPoint num="18" id="3866" />
+<TGConnectingPoint num="19" id="3867" />
+<TGConnectingPoint num="20" id="3868" />
+<TGConnectingPoint num="21" id="3869" />
+<TGConnectingPoint num="22" id="3870" />
+<TGConnectingPoint num="23" id="3871" />
+<TGConnectingPoint num="24" id="3872" />
+<TGConnectingPoint num="25" id="3873" />
+<TGConnectingPoint num="26" id="3874" />
+<TGConnectingPoint num="27" id="3875" />
+<TGConnectingPoint num="28" id="3876" />
+<TGConnectingPoint num="29" id="3877" />
+<TGConnectingPoint num="30" id="3878" />
+<TGConnectingPoint num="31" id="3879" />
+<TGConnectingPoint num="32" id="3880" />
+<TGConnectingPoint num="33" id="3881" />
+<TGConnectingPoint num="34" id="3882" />
+<TGConnectingPoint num="35" id="3883" />
+<TGConnectingPoint num="36" id="3884" />
+<TGConnectingPoint num="37" id="3885" />
+<TGConnectingPoint num="38" id="3886" />
+<TGConnectingPoint num="39" id="3887" />
+<TGConnectingPoint num="40" id="3888" />
+<TGConnectingPoint num="41" id="3889" />
+<TGConnectingPoint num="42" id="3890" />
+<TGConnectingPoint num="43" id="3891" />
+<TGConnectingPoint num="44" id="3892" />
+<TGConnectingPoint num="45" id="3893" />
+<TGConnectingPoint num="46" id="3894" />
+<TGConnectingPoint num="47" id="3895" />
+<TGConnectingPoint num="48" id="3896" />
+<TGConnectingPoint num="49" id="3897" />
+<TGConnectingPoint num="50" id="3898" />
+<TGConnectingPoint num="51" id="3899" />
+<TGConnectingPoint num="52" id="3900" />
+<TGConnectingPoint num="53" id="3901" />
+<TGConnectingPoint num="54" id="3902" />
+<TGConnectingPoint num="55" id="3903" />
+<TGConnectingPoint num="56" id="3904" />
+<TGConnectingPoint num="57" id="3905" />
+<TGConnectingPoint num="58" id="3906" />
+<TGConnectingPoint num="59" id="3907" />
+<TGConnectingPoint num="60" id="3908" />
+<TGConnectingPoint num="61" id="3909" />
+<TGConnectingPoint num="62" id="3910" />
+<TGConnectingPoint num="63" id="3911" />
+<TGConnectingPoint num="64" id="3912" />
+<TGConnectingPoint num="65" id="3913" />
+<TGConnectingPoint num="66" id="3914" />
+<TGConnectingPoint num="67" id="3915" />
+<TGConnectingPoint num="68" id="3916" />
+<TGConnectingPoint num="69" id="3917" />
+<TGConnectingPoint num="70" id="3918" />
+<TGConnectingPoint num="71" id="3919" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="4688" index="9" uid="c49e4216-81c0-453c-a319-7102c1722c5f" >
+<COMPONENT type="5106" id="3993" index="9" uid="c49e4216-81c0-453c-a319-7102c1722c5f" >
 <cdparam x="340" y="92" />
 <sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7277,107 +7277,107 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="makingMessage" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4616" />
-<TGConnectingPoint num="1" id="4617" />
-<TGConnectingPoint num="2" id="4618" />
-<TGConnectingPoint num="3" id="4619" />
-<TGConnectingPoint num="4" id="4620" />
-<TGConnectingPoint num="5" id="4621" />
-<TGConnectingPoint num="6" id="4622" />
-<TGConnectingPoint num="7" id="4623" />
-<TGConnectingPoint num="8" id="4624" />
-<TGConnectingPoint num="9" id="4625" />
-<TGConnectingPoint num="10" id="4626" />
-<TGConnectingPoint num="11" id="4627" />
-<TGConnectingPoint num="12" id="4628" />
-<TGConnectingPoint num="13" id="4629" />
-<TGConnectingPoint num="14" id="4630" />
-<TGConnectingPoint num="15" id="4631" />
-<TGConnectingPoint num="16" id="4632" />
-<TGConnectingPoint num="17" id="4633" />
-<TGConnectingPoint num="18" id="4634" />
-<TGConnectingPoint num="19" id="4635" />
-<TGConnectingPoint num="20" id="4636" />
-<TGConnectingPoint num="21" id="4637" />
-<TGConnectingPoint num="22" id="4638" />
-<TGConnectingPoint num="23" id="4639" />
-<TGConnectingPoint num="24" id="4640" />
-<TGConnectingPoint num="25" id="4641" />
-<TGConnectingPoint num="26" id="4642" />
-<TGConnectingPoint num="27" id="4643" />
-<TGConnectingPoint num="28" id="4644" />
-<TGConnectingPoint num="29" id="4645" />
-<TGConnectingPoint num="30" id="4646" />
-<TGConnectingPoint num="31" id="4647" />
-<TGConnectingPoint num="32" id="4648" />
-<TGConnectingPoint num="33" id="4649" />
-<TGConnectingPoint num="34" id="4650" />
-<TGConnectingPoint num="35" id="4651" />
-<TGConnectingPoint num="36" id="4652" />
-<TGConnectingPoint num="37" id="4653" />
-<TGConnectingPoint num="38" id="4654" />
-<TGConnectingPoint num="39" id="4655" />
-<TGConnectingPoint num="40" id="4656" />
-<TGConnectingPoint num="41" id="4657" />
-<TGConnectingPoint num="42" id="4658" />
-<TGConnectingPoint num="43" id="4659" />
-<TGConnectingPoint num="44" id="4660" />
-<TGConnectingPoint num="45" id="4661" />
-<TGConnectingPoint num="46" id="4662" />
-<TGConnectingPoint num="47" id="4663" />
-<TGConnectingPoint num="48" id="4664" />
-<TGConnectingPoint num="49" id="4665" />
-<TGConnectingPoint num="50" id="4666" />
-<TGConnectingPoint num="51" id="4667" />
-<TGConnectingPoint num="52" id="4668" />
-<TGConnectingPoint num="53" id="4669" />
-<TGConnectingPoint num="54" id="4670" />
-<TGConnectingPoint num="55" id="4671" />
-<TGConnectingPoint num="56" id="4672" />
-<TGConnectingPoint num="57" id="4673" />
-<TGConnectingPoint num="58" id="4674" />
-<TGConnectingPoint num="59" id="4675" />
-<TGConnectingPoint num="60" id="4676" />
-<TGConnectingPoint num="61" id="4677" />
-<TGConnectingPoint num="62" id="4678" />
-<TGConnectingPoint num="63" id="4679" />
-<TGConnectingPoint num="64" id="4680" />
-<TGConnectingPoint num="65" id="4681" />
-<TGConnectingPoint num="66" id="4682" />
-<TGConnectingPoint num="67" id="4683" />
-<TGConnectingPoint num="68" id="4684" />
-<TGConnectingPoint num="69" id="4685" />
-<TGConnectingPoint num="70" id="4686" />
-<TGConnectingPoint num="71" id="4687" />
+<TGConnectingPoint num="0" id="3921" />
+<TGConnectingPoint num="1" id="3922" />
+<TGConnectingPoint num="2" id="3923" />
+<TGConnectingPoint num="3" id="3924" />
+<TGConnectingPoint num="4" id="3925" />
+<TGConnectingPoint num="5" id="3926" />
+<TGConnectingPoint num="6" id="3927" />
+<TGConnectingPoint num="7" id="3928" />
+<TGConnectingPoint num="8" id="3929" />
+<TGConnectingPoint num="9" id="3930" />
+<TGConnectingPoint num="10" id="3931" />
+<TGConnectingPoint num="11" id="3932" />
+<TGConnectingPoint num="12" id="3933" />
+<TGConnectingPoint num="13" id="3934" />
+<TGConnectingPoint num="14" id="3935" />
+<TGConnectingPoint num="15" id="3936" />
+<TGConnectingPoint num="16" id="3937" />
+<TGConnectingPoint num="17" id="3938" />
+<TGConnectingPoint num="18" id="3939" />
+<TGConnectingPoint num="19" id="3940" />
+<TGConnectingPoint num="20" id="3941" />
+<TGConnectingPoint num="21" id="3942" />
+<TGConnectingPoint num="22" id="3943" />
+<TGConnectingPoint num="23" id="3944" />
+<TGConnectingPoint num="24" id="3945" />
+<TGConnectingPoint num="25" id="3946" />
+<TGConnectingPoint num="26" id="3947" />
+<TGConnectingPoint num="27" id="3948" />
+<TGConnectingPoint num="28" id="3949" />
+<TGConnectingPoint num="29" id="3950" />
+<TGConnectingPoint num="30" id="3951" />
+<TGConnectingPoint num="31" id="3952" />
+<TGConnectingPoint num="32" id="3953" />
+<TGConnectingPoint num="33" id="3954" />
+<TGConnectingPoint num="34" id="3955" />
+<TGConnectingPoint num="35" id="3956" />
+<TGConnectingPoint num="36" id="3957" />
+<TGConnectingPoint num="37" id="3958" />
+<TGConnectingPoint num="38" id="3959" />
+<TGConnectingPoint num="39" id="3960" />
+<TGConnectingPoint num="40" id="3961" />
+<TGConnectingPoint num="41" id="3962" />
+<TGConnectingPoint num="42" id="3963" />
+<TGConnectingPoint num="43" id="3964" />
+<TGConnectingPoint num="44" id="3965" />
+<TGConnectingPoint num="45" id="3966" />
+<TGConnectingPoint num="46" id="3967" />
+<TGConnectingPoint num="47" id="3968" />
+<TGConnectingPoint num="48" id="3969" />
+<TGConnectingPoint num="49" id="3970" />
+<TGConnectingPoint num="50" id="3971" />
+<TGConnectingPoint num="51" id="3972" />
+<TGConnectingPoint num="52" id="3973" />
+<TGConnectingPoint num="53" id="3974" />
+<TGConnectingPoint num="54" id="3975" />
+<TGConnectingPoint num="55" id="3976" />
+<TGConnectingPoint num="56" id="3977" />
+<TGConnectingPoint num="57" id="3978" />
+<TGConnectingPoint num="58" id="3979" />
+<TGConnectingPoint num="59" id="3980" />
+<TGConnectingPoint num="60" id="3981" />
+<TGConnectingPoint num="61" id="3982" />
+<TGConnectingPoint num="62" id="3983" />
+<TGConnectingPoint num="63" id="3984" />
+<TGConnectingPoint num="64" id="3985" />
+<TGConnectingPoint num="65" id="3986" />
+<TGConnectingPoint num="66" id="3987" />
+<TGConnectingPoint num="67" id="3988" />
+<TGConnectingPoint num="68" id="3989" />
+<TGConnectingPoint num="69" id="3990" />
+<TGConnectingPoint num="70" id="3991" />
+<TGConnectingPoint num="71" id="3992" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="4690" index="10" uid="26306ba6-bb54-4a40-add4-6702f55d2d80" >
+<COMPONENT type="5100" id="3995" index="10" uid="26306ba6-bb54-4a40-add4-6702f55d2d80" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4689" />
+<TGConnectingPoint num="0" id="3994" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<CONNECTOR type="5102" id="4697" index="0" uid="890868e4-deab-4a24-a5b5-a7d428ee6071" >
+<CONNECTOR type="5102" id="4002" index="0" uid="890868e4-deab-4a24-a5b5-a7d428ee6071" >
 <cdparam x="407" y="269" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="4696" />
-<P1  x="407" y="269" id="4725" />
-<P2  x="406" y="313" id="4793" />
+<TGConnectingPoint num="0" id="4001" />
+<P1  x="407" y="269" id="4030" />
+<P2  x="406" y="313" id="4098" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4695" index="9" uid="e5d4915d-c674-4f3c-adcc-29c5348adc60" >
-<father id="4697" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4000" index="9" uid="e5d4915d-c674-4f3c-adcc-29c5348adc60" >
+<father id="4002" num="0" />
 <cdparam x="421" y="282" />
 <sizeparam width="145" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7385,10 +7385,10 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4691" />
-<TGConnectingPoint num="1" id="4692" />
-<TGConnectingPoint num="2" id="4693" />
-<TGConnectingPoint num="3" id="4694" />
+<TGConnectingPoint num="0" id="3996" />
+<TGConnectingPoint num="1" id="3997" />
+<TGConnectingPoint num="2" id="3998" />
+<TGConnectingPoint num="3" id="3999" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7403,28 +7403,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4704" index="1" uid="25f5afc6-98de-41c8-a1c1-74ff4eb1a19c" >
+<CONNECTOR type="5102" id="4009" index="1" uid="25f5afc6-98de-41c8-a1c1-74ff4eb1a19c" >
 <cdparam x="406" y="201" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="4703" />
-<P1  x="406" y="201" id="4866" />
-<P2  x="407" y="229" id="4720" />
+<TGConnectingPoint num="0" id="4008" />
+<P1  x="406" y="201" id="4171" />
+<P2  x="407" y="229" id="4025" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4702" index="10" uid="4635a8b0-4efd-4bb1-aaa9-897d96203e1b" >
-<father id="4704" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4007" index="10" uid="4635a8b0-4efd-4bb1-aaa9-897d96203e1b" >
+<father id="4009" num="0" />
 <cdparam x="406" y="241" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4698" />
-<TGConnectingPoint num="1" id="4699" />
-<TGConnectingPoint num="2" id="4700" />
-<TGConnectingPoint num="3" id="4701" />
+<TGConnectingPoint num="0" id="4003" />
+<TGConnectingPoint num="1" id="4004" />
+<TGConnectingPoint num="2" id="4005" />
+<TGConnectingPoint num="3" id="4006" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7438,28 +7438,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4711" index="2" uid="95791ba2-7827-43b7-a9c6-a2048f47cf10" >
+<CONNECTOR type="5102" id="4016" index="2" uid="95791ba2-7827-43b7-a9c6-a2048f47cf10" >
 <cdparam x="406" y="141" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="4710" />
-<P1  x="406" y="141" id="4882" />
-<P2  x="406" y="171" id="4865" />
+<TGConnectingPoint num="0" id="4015" />
+<P1  x="406" y="141" id="4187" />
+<P2  x="406" y="171" id="4170" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4709" index="11" uid="c1fc7778-b738-4947-b211-687651391037" >
-<father id="4711" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4014" index="11" uid="c1fc7778-b738-4947-b211-687651391037" >
+<father id="4016" num="0" />
 <cdparam x="406" y="181" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4705" />
-<TGConnectingPoint num="1" id="4706" />
-<TGConnectingPoint num="2" id="4707" />
-<TGConnectingPoint num="3" id="4708" />
+<TGConnectingPoint num="0" id="4010" />
+<TGConnectingPoint num="1" id="4011" />
+<TGConnectingPoint num="2" id="4012" />
+<TGConnectingPoint num="3" id="4013" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7473,28 +7473,28 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="4718" index="3" uid="0fbb1d6e-4ac7-48aa-9047-cbe35af27998" >
+<CONNECTOR type="5102" id="4023" index="3" uid="0fbb1d6e-4ac7-48aa-9047-cbe35af27998" >
 <cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="4717" />
-<P1  x="407" y="70" id="4949" />
-<P2  x="406" y="101" id="4877" />
+<TGConnectingPoint num="0" id="4022" />
+<P1  x="407" y="70" id="4254" />
+<P2  x="406" y="101" id="4182" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4716" index="12" uid="b5480821-b913-47ee-8935-894c1cb922cb" >
-<father id="4718" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4021" index="12" uid="b5480821-b913-47ee-8935-894c1cb922cb" >
+<father id="4023" num="0" />
 <cdparam x="407" y="110" />
-<sizeparam width="10" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="50" height="25" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4712" />
-<TGConnectingPoint num="1" id="4713" />
-<TGConnectingPoint num="2" id="4714" />
-<TGConnectingPoint num="3" id="4715" />
+<TGConnectingPoint num="0" id="4017" />
+<TGConnectingPoint num="1" id="4018" />
+<TGConnectingPoint num="2" id="4019" />
+<TGConnectingPoint num="3" id="4020" />
 <extraparam>
 <guard value="[ ]" enabled="true"/>
 <afterMin value="" enabled="true"/>
@@ -7508,7 +7508,7 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="4791" index="4" uid="54b9b02e-93f0-4269-97e5-b009a35fbcba" >
+<COMPONENT type="5106" id="4096" index="4" uid="54b9b02e-93f0-4269-97e5-b009a35fbcba" >
 <cdparam x="318" y="229" />
 <sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7516,83 +7516,83 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="messageDecrypted" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4719" />
-<TGConnectingPoint num="1" id="4720" />
-<TGConnectingPoint num="2" id="4721" />
-<TGConnectingPoint num="3" id="4722" />
-<TGConnectingPoint num="4" id="4723" />
-<TGConnectingPoint num="5" id="4724" />
-<TGConnectingPoint num="6" id="4725" />
-<TGConnectingPoint num="7" id="4726" />
-<TGConnectingPoint num="8" id="4727" />
-<TGConnectingPoint num="9" id="4728" />
-<TGConnectingPoint num="10" id="4729" />
-<TGConnectingPoint num="11" id="4730" />
-<TGConnectingPoint num="12" id="4731" />
-<TGConnectingPoint num="13" id="4732" />
-<TGConnectingPoint num="14" id="4733" />
-<TGConnectingPoint num="15" id="4734" />
-<TGConnectingPoint num="16" id="4735" />
-<TGConnectingPoint num="17" id="4736" />
-<TGConnectingPoint num="18" id="4737" />
-<TGConnectingPoint num="19" id="4738" />
-<TGConnectingPoint num="20" id="4739" />
-<TGConnectingPoint num="21" id="4740" />
-<TGConnectingPoint num="22" id="4741" />
-<TGConnectingPoint num="23" id="4742" />
-<TGConnectingPoint num="24" id="4743" />
-<TGConnectingPoint num="25" id="4744" />
-<TGConnectingPoint num="26" id="4745" />
-<TGConnectingPoint num="27" id="4746" />
-<TGConnectingPoint num="28" id="4747" />
-<TGConnectingPoint num="29" id="4748" />
-<TGConnectingPoint num="30" id="4749" />
-<TGConnectingPoint num="31" id="4750" />
-<TGConnectingPoint num="32" id="4751" />
-<TGConnectingPoint num="33" id="4752" />
-<TGConnectingPoint num="34" id="4753" />
-<TGConnectingPoint num="35" id="4754" />
-<TGConnectingPoint num="36" id="4755" />
-<TGConnectingPoint num="37" id="4756" />
-<TGConnectingPoint num="38" id="4757" />
-<TGConnectingPoint num="39" id="4758" />
-<TGConnectingPoint num="40" id="4759" />
-<TGConnectingPoint num="41" id="4760" />
-<TGConnectingPoint num="42" id="4761" />
-<TGConnectingPoint num="43" id="4762" />
-<TGConnectingPoint num="44" id="4763" />
-<TGConnectingPoint num="45" id="4764" />
-<TGConnectingPoint num="46" id="4765" />
-<TGConnectingPoint num="47" id="4766" />
-<TGConnectingPoint num="48" id="4767" />
-<TGConnectingPoint num="49" id="4768" />
-<TGConnectingPoint num="50" id="4769" />
-<TGConnectingPoint num="51" id="4770" />
-<TGConnectingPoint num="52" id="4771" />
-<TGConnectingPoint num="53" id="4772" />
-<TGConnectingPoint num="54" id="4773" />
-<TGConnectingPoint num="55" id="4774" />
-<TGConnectingPoint num="56" id="4775" />
-<TGConnectingPoint num="57" id="4776" />
-<TGConnectingPoint num="58" id="4777" />
-<TGConnectingPoint num="59" id="4778" />
-<TGConnectingPoint num="60" id="4779" />
-<TGConnectingPoint num="61" id="4780" />
-<TGConnectingPoint num="62" id="4781" />
-<TGConnectingPoint num="63" id="4782" />
-<TGConnectingPoint num="64" id="4783" />
-<TGConnectingPoint num="65" id="4784" />
-<TGConnectingPoint num="66" id="4785" />
-<TGConnectingPoint num="67" id="4786" />
-<TGConnectingPoint num="68" id="4787" />
-<TGConnectingPoint num="69" id="4788" />
-<TGConnectingPoint num="70" id="4789" />
-<TGConnectingPoint num="71" id="4790" />
+<TGConnectingPoint num="0" id="4024" />
+<TGConnectingPoint num="1" id="4025" />
+<TGConnectingPoint num="2" id="4026" />
+<TGConnectingPoint num="3" id="4027" />
+<TGConnectingPoint num="4" id="4028" />
+<TGConnectingPoint num="5" id="4029" />
+<TGConnectingPoint num="6" id="4030" />
+<TGConnectingPoint num="7" id="4031" />
+<TGConnectingPoint num="8" id="4032" />
+<TGConnectingPoint num="9" id="4033" />
+<TGConnectingPoint num="10" id="4034" />
+<TGConnectingPoint num="11" id="4035" />
+<TGConnectingPoint num="12" id="4036" />
+<TGConnectingPoint num="13" id="4037" />
+<TGConnectingPoint num="14" id="4038" />
+<TGConnectingPoint num="15" id="4039" />
+<TGConnectingPoint num="16" id="4040" />
+<TGConnectingPoint num="17" id="4041" />
+<TGConnectingPoint num="18" id="4042" />
+<TGConnectingPoint num="19" id="4043" />
+<TGConnectingPoint num="20" id="4044" />
+<TGConnectingPoint num="21" id="4045" />
+<TGConnectingPoint num="22" id="4046" />
+<TGConnectingPoint num="23" id="4047" />
+<TGConnectingPoint num="24" id="4048" />
+<TGConnectingPoint num="25" id="4049" />
+<TGConnectingPoint num="26" id="4050" />
+<TGConnectingPoint num="27" id="4051" />
+<TGConnectingPoint num="28" id="4052" />
+<TGConnectingPoint num="29" id="4053" />
+<TGConnectingPoint num="30" id="4054" />
+<TGConnectingPoint num="31" id="4055" />
+<TGConnectingPoint num="32" id="4056" />
+<TGConnectingPoint num="33" id="4057" />
+<TGConnectingPoint num="34" id="4058" />
+<TGConnectingPoint num="35" id="4059" />
+<TGConnectingPoint num="36" id="4060" />
+<TGConnectingPoint num="37" id="4061" />
+<TGConnectingPoint num="38" id="4062" />
+<TGConnectingPoint num="39" id="4063" />
+<TGConnectingPoint num="40" id="4064" />
+<TGConnectingPoint num="41" id="4065" />
+<TGConnectingPoint num="42" id="4066" />
+<TGConnectingPoint num="43" id="4067" />
+<TGConnectingPoint num="44" id="4068" />
+<TGConnectingPoint num="45" id="4069" />
+<TGConnectingPoint num="46" id="4070" />
+<TGConnectingPoint num="47" id="4071" />
+<TGConnectingPoint num="48" id="4072" />
+<TGConnectingPoint num="49" id="4073" />
+<TGConnectingPoint num="50" id="4074" />
+<TGConnectingPoint num="51" id="4075" />
+<TGConnectingPoint num="52" id="4076" />
+<TGConnectingPoint num="53" id="4077" />
+<TGConnectingPoint num="54" id="4078" />
+<TGConnectingPoint num="55" id="4079" />
+<TGConnectingPoint num="56" id="4080" />
+<TGConnectingPoint num="57" id="4081" />
+<TGConnectingPoint num="58" id="4082" />
+<TGConnectingPoint num="59" id="4083" />
+<TGConnectingPoint num="60" id="4084" />
+<TGConnectingPoint num="61" id="4085" />
+<TGConnectingPoint num="62" id="4086" />
+<TGConnectingPoint num="63" id="4087" />
+<TGConnectingPoint num="64" id="4088" />
+<TGConnectingPoint num="65" id="4089" />
+<TGConnectingPoint num="66" id="4090" />
+<TGConnectingPoint num="67" id="4091" />
+<TGConnectingPoint num="68" id="4092" />
+<TGConnectingPoint num="69" id="4093" />
+<TGConnectingPoint num="70" id="4094" />
+<TGConnectingPoint num="71" id="4095" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="4864" index="5" uid="6e816852-20a4-49f3-a2ff-b25a9be79602" >
+<COMPONENT type="5106" id="4169" index="5" uid="6e816852-20a4-49f3-a2ff-b25a9be79602" >
 <cdparam x="336" y="313" />
 <sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7600,83 +7600,83 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="SecretDataReceived" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4792" />
-<TGConnectingPoint num="1" id="4793" />
-<TGConnectingPoint num="2" id="4794" />
-<TGConnectingPoint num="3" id="4795" />
-<TGConnectingPoint num="4" id="4796" />
-<TGConnectingPoint num="5" id="4797" />
-<TGConnectingPoint num="6" id="4798" />
-<TGConnectingPoint num="7" id="4799" />
-<TGConnectingPoint num="8" id="4800" />
-<TGConnectingPoint num="9" id="4801" />
-<TGConnectingPoint num="10" id="4802" />
-<TGConnectingPoint num="11" id="4803" />
-<TGConnectingPoint num="12" id="4804" />
-<TGConnectingPoint num="13" id="4805" />
-<TGConnectingPoint num="14" id="4806" />
-<TGConnectingPoint num="15" id="4807" />
-<TGConnectingPoint num="16" id="4808" />
-<TGConnectingPoint num="17" id="4809" />
-<TGConnectingPoint num="18" id="4810" />
-<TGConnectingPoint num="19" id="4811" />
-<TGConnectingPoint num="20" id="4812" />
-<TGConnectingPoint num="21" id="4813" />
-<TGConnectingPoint num="22" id="4814" />
-<TGConnectingPoint num="23" id="4815" />
-<TGConnectingPoint num="24" id="4816" />
-<TGConnectingPoint num="25" id="4817" />
-<TGConnectingPoint num="26" id="4818" />
-<TGConnectingPoint num="27" id="4819" />
-<TGConnectingPoint num="28" id="4820" />
-<TGConnectingPoint num="29" id="4821" />
-<TGConnectingPoint num="30" id="4822" />
-<TGConnectingPoint num="31" id="4823" />
-<TGConnectingPoint num="32" id="4824" />
-<TGConnectingPoint num="33" id="4825" />
-<TGConnectingPoint num="34" id="4826" />
-<TGConnectingPoint num="35" id="4827" />
-<TGConnectingPoint num="36" id="4828" />
-<TGConnectingPoint num="37" id="4829" />
-<TGConnectingPoint num="38" id="4830" />
-<TGConnectingPoint num="39" id="4831" />
-<TGConnectingPoint num="40" id="4832" />
-<TGConnectingPoint num="41" id="4833" />
-<TGConnectingPoint num="42" id="4834" />
-<TGConnectingPoint num="43" id="4835" />
-<TGConnectingPoint num="44" id="4836" />
-<TGConnectingPoint num="45" id="4837" />
-<TGConnectingPoint num="46" id="4838" />
-<TGConnectingPoint num="47" id="4839" />
-<TGConnectingPoint num="48" id="4840" />
-<TGConnectingPoint num="49" id="4841" />
-<TGConnectingPoint num="50" id="4842" />
-<TGConnectingPoint num="51" id="4843" />
-<TGConnectingPoint num="52" id="4844" />
-<TGConnectingPoint num="53" id="4845" />
-<TGConnectingPoint num="54" id="4846" />
-<TGConnectingPoint num="55" id="4847" />
-<TGConnectingPoint num="56" id="4848" />
-<TGConnectingPoint num="57" id="4849" />
-<TGConnectingPoint num="58" id="4850" />
-<TGConnectingPoint num="59" id="4851" />
-<TGConnectingPoint num="60" id="4852" />
-<TGConnectingPoint num="61" id="4853" />
-<TGConnectingPoint num="62" id="4854" />
-<TGConnectingPoint num="63" id="4855" />
-<TGConnectingPoint num="64" id="4856" />
-<TGConnectingPoint num="65" id="4857" />
-<TGConnectingPoint num="66" id="4858" />
-<TGConnectingPoint num="67" id="4859" />
-<TGConnectingPoint num="68" id="4860" />
-<TGConnectingPoint num="69" id="4861" />
-<TGConnectingPoint num="70" id="4862" />
-<TGConnectingPoint num="71" id="4863" />
+<TGConnectingPoint num="0" id="4097" />
+<TGConnectingPoint num="1" id="4098" />
+<TGConnectingPoint num="2" id="4099" />
+<TGConnectingPoint num="3" id="4100" />
+<TGConnectingPoint num="4" id="4101" />
+<TGConnectingPoint num="5" id="4102" />
+<TGConnectingPoint num="6" id="4103" />
+<TGConnectingPoint num="7" id="4104" />
+<TGConnectingPoint num="8" id="4105" />
+<TGConnectingPoint num="9" id="4106" />
+<TGConnectingPoint num="10" id="4107" />
+<TGConnectingPoint num="11" id="4108" />
+<TGConnectingPoint num="12" id="4109" />
+<TGConnectingPoint num="13" id="4110" />
+<TGConnectingPoint num="14" id="4111" />
+<TGConnectingPoint num="15" id="4112" />
+<TGConnectingPoint num="16" id="4113" />
+<TGConnectingPoint num="17" id="4114" />
+<TGConnectingPoint num="18" id="4115" />
+<TGConnectingPoint num="19" id="4116" />
+<TGConnectingPoint num="20" id="4117" />
+<TGConnectingPoint num="21" id="4118" />
+<TGConnectingPoint num="22" id="4119" />
+<TGConnectingPoint num="23" id="4120" />
+<TGConnectingPoint num="24" id="4121" />
+<TGConnectingPoint num="25" id="4122" />
+<TGConnectingPoint num="26" id="4123" />
+<TGConnectingPoint num="27" id="4124" />
+<TGConnectingPoint num="28" id="4125" />
+<TGConnectingPoint num="29" id="4126" />
+<TGConnectingPoint num="30" id="4127" />
+<TGConnectingPoint num="31" id="4128" />
+<TGConnectingPoint num="32" id="4129" />
+<TGConnectingPoint num="33" id="4130" />
+<TGConnectingPoint num="34" id="4131" />
+<TGConnectingPoint num="35" id="4132" />
+<TGConnectingPoint num="36" id="4133" />
+<TGConnectingPoint num="37" id="4134" />
+<TGConnectingPoint num="38" id="4135" />
+<TGConnectingPoint num="39" id="4136" />
+<TGConnectingPoint num="40" id="4137" />
+<TGConnectingPoint num="41" id="4138" />
+<TGConnectingPoint num="42" id="4139" />
+<TGConnectingPoint num="43" id="4140" />
+<TGConnectingPoint num="44" id="4141" />
+<TGConnectingPoint num="45" id="4142" />
+<TGConnectingPoint num="46" id="4143" />
+<TGConnectingPoint num="47" id="4144" />
+<TGConnectingPoint num="48" id="4145" />
+<TGConnectingPoint num="49" id="4146" />
+<TGConnectingPoint num="50" id="4147" />
+<TGConnectingPoint num="51" id="4148" />
+<TGConnectingPoint num="52" id="4149" />
+<TGConnectingPoint num="53" id="4150" />
+<TGConnectingPoint num="54" id="4151" />
+<TGConnectingPoint num="55" id="4152" />
+<TGConnectingPoint num="56" id="4153" />
+<TGConnectingPoint num="57" id="4154" />
+<TGConnectingPoint num="58" id="4155" />
+<TGConnectingPoint num="59" id="4156" />
+<TGConnectingPoint num="60" id="4157" />
+<TGConnectingPoint num="61" id="4158" />
+<TGConnectingPoint num="62" id="4159" />
+<TGConnectingPoint num="63" id="4160" />
+<TGConnectingPoint num="64" id="4161" />
+<TGConnectingPoint num="65" id="4162" />
+<TGConnectingPoint num="66" id="4163" />
+<TGConnectingPoint num="67" id="4164" />
+<TGConnectingPoint num="68" id="4165" />
+<TGConnectingPoint num="69" id="4166" />
+<TGConnectingPoint num="70" id="4167" />
+<TGConnectingPoint num="71" id="4168" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5104" id="4875" index="6" uid="7f6ca4f7-7f58-441f-9377-ed7e42784a39" >
+<COMPONENT type="5104" id="4180" index="6" uid="7f6ca4f7-7f58-441f-9377-ed7e42784a39" >
 <cdparam x="376" y="176" />
 <sizeparam width="60" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7684,19 +7684,19 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Send signal" value="chin(m)" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4865" />
-<TGConnectingPoint num="1" id="4866" />
-<TGConnectingPoint num="2" id="4867" />
-<TGConnectingPoint num="3" id="4868" />
-<TGConnectingPoint num="4" id="4869" />
-<TGConnectingPoint num="5" id="4870" />
-<TGConnectingPoint num="6" id="4871" />
-<TGConnectingPoint num="7" id="4872" />
-<TGConnectingPoint num="8" id="4873" />
-<TGConnectingPoint num="9" id="4874" />
+<TGConnectingPoint num="0" id="4170" />
+<TGConnectingPoint num="1" id="4171" />
+<TGConnectingPoint num="2" id="4172" />
+<TGConnectingPoint num="3" id="4173" />
+<TGConnectingPoint num="4" id="4174" />
+<TGConnectingPoint num="5" id="4175" />
+<TGConnectingPoint num="6" id="4176" />
+<TGConnectingPoint num="7" id="4177" />
+<TGConnectingPoint num="8" id="4178" />
+<TGConnectingPoint num="9" id="4179" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="4948" index="7" uid="7090acff-d617-4c4c-9b81-8a6a2c59d419" >
+<COMPONENT type="5106" id="4253" index="7" uid="7090acff-d617-4c4c-9b81-8a6a2c59d419" >
 <cdparam x="340" y="101" />
 <sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -7704,90 +7704,90 @@
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="waitingForMessage" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4876" />
-<TGConnectingPoint num="1" id="4877" />
-<TGConnectingPoint num="2" id="4878" />
-<TGConnectingPoint num="3" id="4879" />
-<TGConnectingPoint num="4" id="4880" />
-<TGConnectingPoint num="5" id="4881" />
-<TGConnectingPoint num="6" id="4882" />
-<TGConnectingPoint num="7" id="4883" />
-<TGConnectingPoint num="8" id="4884" />
-<TGConnectingPoint num="9" id="4885" />
-<TGConnectingPoint num="10" id="4886" />
-<TGConnectingPoint num="11" id="4887" />
-<TGConnectingPoint num="12" id="4888" />
-<TGConnectingPoint num="13" id="4889" />
-<TGConnectingPoint num="14" id="4890" />
-<TGConnectingPoint num="15" id="4891" />
-<TGConnectingPoint num="16" id="4892" />
-<TGConnectingPoint num="17" id="4893" />
-<TGConnectingPoint num="18" id="4894" />
-<TGConnectingPoint num="19" id="4895" />
-<TGConnectingPoint num="20" id="4896" />
-<TGConnectingPoint num="21" id="4897" />
-<TGConnectingPoint num="22" id="4898" />
-<TGConnectingPoint num="23" id="4899" />
-<TGConnectingPoint num="24" id="4900" />
-<TGConnectingPoint num="25" id="4901" />
-<TGConnectingPoint num="26" id="4902" />
-<TGConnectingPoint num="27" id="4903" />
-<TGConnectingPoint num="28" id="4904" />
-<TGConnectingPoint num="29" id="4905" />
-<TGConnectingPoint num="30" id="4906" />
-<TGConnectingPoint num="31" id="4907" />
-<TGConnectingPoint num="32" id="4908" />
-<TGConnectingPoint num="33" id="4909" />
-<TGConnectingPoint num="34" id="4910" />
-<TGConnectingPoint num="35" id="4911" />
-<TGConnectingPoint num="36" id="4912" />
-<TGConnectingPoint num="37" id="4913" />
-<TGConnectingPoint num="38" id="4914" />
-<TGConnectingPoint num="39" id="4915" />
-<TGConnectingPoint num="40" id="4916" />
-<TGConnectingPoint num="41" id="4917" />
-<TGConnectingPoint num="42" id="4918" />
-<TGConnectingPoint num="43" id="4919" />
-<TGConnectingPoint num="44" id="4920" />
-<TGConnectingPoint num="45" id="4921" />
-<TGConnectingPoint num="46" id="4922" />
-<TGConnectingPoint num="47" id="4923" />
-<TGConnectingPoint num="48" id="4924" />
-<TGConnectingPoint num="49" id="4925" />
-<TGConnectingPoint num="50" id="4926" />
-<TGConnectingPoint num="51" id="4927" />
-<TGConnectingPoint num="52" id="4928" />
-<TGConnectingPoint num="53" id="4929" />
-<TGConnectingPoint num="54" id="4930" />
-<TGConnectingPoint num="55" id="4931" />
-<TGConnectingPoint num="56" id="4932" />
-<TGConnectingPoint num="57" id="4933" />
-<TGConnectingPoint num="58" id="4934" />
-<TGConnectingPoint num="59" id="4935" />
-<TGConnectingPoint num="60" id="4936" />
-<TGConnectingPoint num="61" id="4937" />
-<TGConnectingPoint num="62" id="4938" />
-<TGConnectingPoint num="63" id="4939" />
-<TGConnectingPoint num="64" id="4940" />
-<TGConnectingPoint num="65" id="4941" />
-<TGConnectingPoint num="66" id="4942" />
-<TGConnectingPoint num="67" id="4943" />
-<TGConnectingPoint num="68" id="4944" />
-<TGConnectingPoint num="69" id="4945" />
-<TGConnectingPoint num="70" id="4946" />
-<TGConnectingPoint num="71" id="4947" />
+<TGConnectingPoint num="0" id="4181" />
+<TGConnectingPoint num="1" id="4182" />
+<TGConnectingPoint num="2" id="4183" />
+<TGConnectingPoint num="3" id="4184" />
+<TGConnectingPoint num="4" id="4185" />
+<TGConnectingPoint num="5" id="4186" />
+<TGConnectingPoint num="6" id="4187" />
+<TGConnectingPoint num="7" id="4188" />
+<TGConnectingPoint num="8" id="4189" />
+<TGConnectingPoint num="9" id="4190" />
+<TGConnectingPoint num="10" id="4191" />
+<TGConnectingPoint num="11" id="4192" />
+<TGConnectingPoint num="12" id="4193" />
+<TGConnectingPoint num="13" id="4194" />
+<TGConnectingPoint num="14" id="4195" />
+<TGConnectingPoint num="15" id="4196" />
+<TGConnectingPoint num="16" id="4197" />
+<TGConnectingPoint num="17" id="4198" />
+<TGConnectingPoint num="18" id="4199" />
+<TGConnectingPoint num="19" id="4200" />
+<TGConnectingPoint num="20" id="4201" />
+<TGConnectingPoint num="21" id="4202" />
+<TGConnectingPoint num="22" id="4203" />
+<TGConnectingPoint num="23" id="4204" />
+<TGConnectingPoint num="24" id="4205" />
+<TGConnectingPoint num="25" id="4206" />
+<TGConnectingPoint num="26" id="4207" />
+<TGConnectingPoint num="27" id="4208" />
+<TGConnectingPoint num="28" id="4209" />
+<TGConnectingPoint num="29" id="4210" />
+<TGConnectingPoint num="30" id="4211" />
+<TGConnectingPoint num="31" id="4212" />
+<TGConnectingPoint num="32" id="4213" />
+<TGConnectingPoint num="33" id="4214" />
+<TGConnectingPoint num="34" id="4215" />
+<TGConnectingPoint num="35" id="4216" />
+<TGConnectingPoint num="36" id="4217" />
+<TGConnectingPoint num="37" id="4218" />
+<TGConnectingPoint num="38" id="4219" />
+<TGConnectingPoint num="39" id="4220" />
+<TGConnectingPoint num="40" id="4221" />
+<TGConnectingPoint num="41" id="4222" />
+<TGConnectingPoint num="42" id="4223" />
+<TGConnectingPoint num="43" id="4224" />
+<TGConnectingPoint num="44" id="4225" />
+<TGConnectingPoint num="45" id="4226" />
+<TGConnectingPoint num="46" id="4227" />
+<TGConnectingPoint num="47" id="4228" />
+<TGConnectingPoint num="48" id="4229" />
+<TGConnectingPoint num="49" id="4230" />
+<TGConnectingPoint num="50" id="4231" />
+<TGConnectingPoint num="51" id="4232" />
+<TGConnectingPoint num="52" id="4233" />
+<TGConnectingPoint num="53" id="4234" />
+<TGConnectingPoint num="54" id="4235" />
+<TGConnectingPoint num="55" id="4236" />
+<TGConnectingPoint num="56" id="4237" />
+<TGConnectingPoint num="57" id="4238" />
+<TGConnectingPoint num="58" id="4239" />
+<TGConnectingPoint num="59" id="4240" />
+<TGConnectingPoint num="60" id="4241" />
+<TGConnectingPoint num="61" id="4242" />
+<TGConnectingPoint num="62" id="4243" />
+<TGConnectingPoint num="63" id="4244" />
+<TGConnectingPoint num="64" id="4245" />
+<TGConnectingPoint num="65" id="4246" />
+<TGConnectingPoint num="66" id="4247" />
+<TGConnectingPoint num="67" id="4248" />
+<TGConnectingPoint num="68" id="4249" />
+<TGConnectingPoint num="69" id="4250" />
+<TGConnectingPoint num="70" id="4251" />
+<TGConnectingPoint num="71" id="4252" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="4950" index="8" uid="39d32476-240b-44bf-846b-8589f13139ea" >
+<COMPONENT type="5100" id="4255" index="8" uid="39d32476-240b-44bf-846b-8589f13139ea" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
 <new d="false" />
-<TGConnectingPoint num="0" id="4949" />
+<TGConnectingPoint num="0" id="4254" />
 </COMPONENT>
 
 
diff --git a/src/main/java/ai/AIAmulet.java b/src/main/java/ai/AIAmulet.java
index 6d8e9241227c59d4d5ba616ff515933e29fb1841..8bd11a801d4290094daac9f01f952b663ad8be52 100644
--- a/src/main/java/ai/AIAmulet.java
+++ b/src/main/java/ai/AIAmulet.java
@@ -49,6 +49,7 @@ import ui.window.JFrameAI;
 
 import java.io.BufferedReader;
 import java.io.StringReader;
+import java.util.ArrayList;
 
 /**
  * Class AIAmulet
@@ -83,7 +84,41 @@ public class AIAmulet extends AIInteract implements AISysMLV2DiagramContent {
         }
 
         String questionT = "\nTTool:" + chatData.lastQuestion.trim()+ "\n";
-        boolean ok = makeQuestion(questionT);
+        ArrayList<String> errors = new ArrayList<>();
+        errors.add("Errors");
+        int cpt = 0;
+
+        while (cpt<20 && !(errors.isEmpty())){
+            boolean ok = makeQuestion(questionT);
+            String automatedAnswer = chatData.lastAnswer;
+            BufferedReader buff = new BufferedReader(new StringReader(automatedAnswer));
+            String line ;
+            errors.clear();
+            try {
+                while ((line = buff.readLine()) != null) {
+                    if (line.startsWith("add ") || line.startsWith("remove ") || line.startsWith("modify ") || line.startsWith("attach ") || line.startsWith("detach ")) {
+                        try {
+                            AvatarMutation.createFromString(line);
+                        } catch (ParseMutationException e) {
+                            TraceManager.addDev("Exception in parsing mutation: " + e.getMessage());
+                            errors.add("There is an error in your AMULET command: " + e.getMessage() + ". Could you correct the relevant AMULET " +
+                                    "line in your command list?");
+                        }
+                    }
+                }
+                if (!errors.isEmpty()){
+                    questionT = "Your answer was not correct because of the following errors: ";
+                    for (String e:errors){
+                        questionT += "\n" + e;
+                    }
+                }
+            } catch (Exception e) {
+                error("Mutation parsing failed: " + e.getMessage());
+            }
+            cpt++;
+        }
+        TraceManager.addDev("Reached end of AImulet internal request.");
+
     }
 
     public Object applyAnswer(Object input) {
@@ -99,9 +134,8 @@ public class AIAmulet extends AIInteract implements AISysMLV2DiagramContent {
         Boolean mutationApplied = false;
 
         try {
-
             while ((line = buff.readLine()) != null) {
-                if (line.startsWith("add ") || line.startsWith("remove ") || line.startsWith("modify ")) {
+                if (line.startsWith("add ") || line.startsWith("remove ") || line.startsWith("modify ") || line.startsWith("attach ") || line.startsWith("detach ")) {
                     try {
                         AvatarMutation am = AvatarMutation.createFromString(line);
                         if (am != null) {
@@ -142,8 +176,7 @@ public class AIAmulet extends AIInteract implements AISysMLV2DiagramContent {
 
     private void injectAMULETKnowledge() {
         chatData.aiinterface.addKnowledge("AMULET is a SysML mutation language. In AMULET, adding a block b in a block diagram is written " +
-                "\"add block b\".\nRemoving a block b from a block diagram is written \"remove block b\".\n","AMULET source-code for adding a block" +
-                " myBlock is \"add block myBlock\" and for removing a block myBlock is \"remove block myBlock\".");
+                "\"add block b\".\nRemoving a block b from a block diagram is written \"remove block b\".\n","OK.");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. Adding an input signal sig in a block b is written \"add input signal " +
                 "sig in " +
@@ -151,68 +184,58 @@ public class AIAmulet extends AIInteract implements AISysMLV2DiagramContent {
                 "Removing an input signal sig from a block b is written \"remove input signal sig in b\".\n" +
                 "Adding an output signal sig in a block b is written \"add output signal sig in b\". If the signal sig conveys parameters (e.g. int" +
                 " i and bool x), we will write \"add output signal sig(int i, bool x) in b\".\n" +
-                "Removing an output signal sig from a block b is written \"remove output signal sig in b\".\n", "In AMULET, adding an input" +
-                " signal mySig in a block myBlock is written \"add input signal mySig in myBlock\". If this signal conveys three parameters int n, " +
-                "int m and bool b, it is written \"add input signal mySig (int n, int m, bool b) in myBlock\". Adding an output signal mySig in a " +
-                "block myBlock is written \"add output signal mySig in myBlock\". If this signal conveys two parameters bool b and int n, it is " +
-                "written \"add output signal mySig(bool b, int n) in myBlock\". Removing an input signal mySig from a block myBlock is written " +
-                "\"remove input signal mySig in myBlock\", and removing an output signal mySig from a block myBlock is written \"remove output " +
-                "signal mySig in myBlock\".");
+                "Removing an output signal sig from a block b is written \"remove output signal sig in b\".\n", "OK.");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. Adding an integer attribute i in a block b is written \"add attribute " +
                 "int i in b\".\n" + "Adding a boolean " +
                 "attribute x in a block b is written \"add attribute bool x in b\".\n" + "Removing an attribute a from a block b is written" +
-                " \"remove attribute a in b\"","In AMULET, adding an integer attribute n in a block myBlock is written \"add attribute int n in " +
-                "myBlock\".\n" + "Adding a boolean attribute b in a block myBlock is written \"add attribute bool b in myBlock\".\n" +
-                "Removing an attribute myAttribute from a block myBlock is written \"remove attribute myAttribute in myBlock\".");
+                " \"remove attribute a in b\"","OK.");
+
+        chatData.aiinterface.addKnowledge("If you want to add several attributes, you have to add them separately. For instance, you can't write " +
+                "\"add attribute int i, j in myBlock\" but you must write \"add attribute int i in myBlock\" then \"add attribute int j in " +
+                "myBlock\".", "OK.");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. Adding a connection between the ports of two blocks b1 and b2 is " +
                 "written \"add link between b1 and b2\".\n" +
-                "Removing a connection between the ports of two blocks b1 and b2 is written \"remove link between b1 and b2\".", "In " +
-                "AMULET, adding a connection between the ports of two blocks b1 and b2 is written \"add link between b1 and b2\".\n" + "Removing a " +
-                "connection between the ports of two blocks b1 and b2 is written \"remove link between b1 and b2\".");
+                "Removing a connection between the ports of two blocks b1 and b2 is written \"remove link between b1 and b2\".", "OK.");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. If we want an input and an output signal to be synchronized, we need " +
                 "to connect them. Connecting an input signal insig in a block b to an output signal outsig in a block c is written \"add connection " +
-                "between outsig in c to insig in b\".\n" + "Removing a connection between an input signal insig in a block b to an output signal " +
-                "outsig in a block c is written \"remove connection between outsig in c to insig in b\".","In AMULET, connecting an input signal " +
-                "inSig in a block myBlock to an output signal outSig in a block mySecondBlock is written \"add connection between outSig in " +
-                "mySecondBlock to inSig in myBlock\".\n" + "Removing a connection between an input signal inSig in a block myBlock to an output " +
-                "signal outSig in a block mySecondBlock is written \"remove connection between outSig in mySecondBlock to inSig in myBlock\".");
+                "from outsig in c to insig in b\".\n" + "Removing a connection between an input signal insig in a block b to an output signal " +
+                "outsig in a block c is written \"remove connection from outsig in c to insig in b\".","OK.");
 
         chatData.aiinterface.addKnowledge("Connections are only possible between two signals, an input one and an output one.","Right, we can't " +
                 "connect a signal to an attribute but only to another signal of the opposite type (input, output).");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. Adding a state s in a block b's state-machine diagram is written " +
-                "\"add state s in b\".\n Removing a state s from a block b's state-machine diagram is written \"remove state s in b\".", "In " +
-                "AMULET, adding a state myState in a block myBlock's state-machine diagram is written \"add state myState in myBlock\".\n Removing a state myState " +
-                "from a block myBlock's state-machine diagram is written \"remove state myState in myBlock\".");
+                "\"add state s in b\".\n Removing a state s from a block b's state-machine diagram is written \"remove state s in b\".", "OK.");
 
         chatData.aiinterface.addKnowledge("Here are some more AMULET commands. Adding a transition t in a block b's state-machine diagram from a " +
                 "state s0 to" +
                 " a state s1 is written \"add transition t in b from s0 to s1\". If this transition has a guard (i.e., a boolean condition " +
                 "boolean_condition allowing its firing), we will write \"add transition t in b from s0 to s2 with [boolean_condition]\".\n" +
                 "Removing a transition t in a block b's state-machine diagram from a state s0 to a state s1 is written \"remove transition t in b\"" +
-                " or, if there is only one transition from s0 to s1, \"remove transition in b from s0 to s1\".", "In AMULET, adding a transition " +
-                "myTransition in a block myBlock's state-machine diagram from a state myState to a state mySecondState is written \"add transition " +
-                "myTransition in myBlock from myState to mySecondState\". If this transition has a guard (i.e., a boolean condition " +
-                "boolean_condition allowing its firing), we will write \"add transition myTransition in myBlock from myState to mySecondState with " +
-                "[boolean_condition]\".\n" + "Removing a transition myTransition in a block myBlock's state-machine diagram from a state myState to" +
-                " a state mySecondState is written \"remove transition myTransition in myState\" or, if there is only one transition from myState " +
-                "to mySecondState, \"remove transition in myBlock from myState to mySecondState\".");
+                " or, if there is only one transition from s0 to s1, \"remove transition in b from s0 to s1\".", "OK.");
+
+        chatData.aiinterface.addKnowledge("If we want a block b0 to be a subblock (or a child block) of a block b1, we will write \"attach b0 to " +
+                "b1\". And if we no longer want a block b1 to be a superblock (or a parent block) of a block b0, we will write \"detach b0 from " +
+                        "b1\".", "OK.");
+
+        chatData.aiinterface.addKnowledge("In AMULET, if we want to set an existing attribute n of a block myBlock to a value x, we will write " +
+                "\"modify attribute n in myBlock to x","OK.");
 
         chatData.aiinterface.addKnowledge("If we want a block b to receive a parameter p through an input signal and if b has no attribute of the " +
-                "type of p, we need first to add the relevant attribute to b.","Right. For instance, if we want a block b to receive an " +
-                "integer parameter n and if b has no integer attribute, we will first add an integer attribute n: add attribute int n in b");
+                "type of p, you need first to add the relevant attribute to b. Similarly, if we want b to send a parameter p through an output " +
+                "signal and if b has no attribute of the type of p, you must first add the attribute to b.","OK.");
 
         chatData.aiinterface.addKnowledge("Consider a block having an integer attribute myInt. If we want this block to send this value " +
-                "through an output signal myOutSig, the output signal declaration will be myOutSig(int myInt).","Right. And if this block " +
-                "has a boolean attribute myBool and we want it to receive a boolean value from an input signal myInSig and if we want this value to be assigned " +
-                "to myBool, the input signal declaration will be myInSig(bool myBool).");
+                "through an output signal myOutSig, the output signal declaration will be myOutSig(int myInt). Similarly, if this block has a " +
+                "boolean attribute myBool and we want it to receive a boolean value from an input signal myInSig and if we want this value to be " +
+                "assigned to myBool, the input signal declaration will be myInSig(bool myBool)","OK");
 
         chatData.aiinterface.addKnowledge("A link can only exist between two blocks. We can't add a link between to signals, only a connection.",
                 "Right. If I want two blocks b1 and b2 to be connected, I will write \"add link between b1 and b2\", and if I want two signals s1 " +
-                        "and s2 belonging to b1 and b2 to be connected, I will write \"add connection between s1 in b1 to s2 in b2\".");
+                        "and s2 belonging to b1 and b2 to be connected, I will write \"add connection from s1 in b1 to s2 in b2\".");
 
         chatData.aiinterface.addKnowledge("If a block already exists in the model, we don't need to add it with an AMULET \"add\" command.",
                 "Right, if the model I analyze already has a block b1, I will never write \"add block b1\" except if b1 has been deleted by another" +
@@ -223,11 +246,19 @@ public class AIAmulet extends AIInteract implements AISysMLV2DiagramContent {
 
         chatData.aiinterface.addKnowledge("Consider a block diagram with a block b1 and a block b2. I want b1 to send an integer value n to b2. Could" +
                 " you provide the relevant AMULET source code?","add attribute int n in b2\n add attribute int n in b1\n add output signal sendInt" +
-                "(int n) in b1\n add input signal receiveInt(int n) in b2");
+                "(int n) in b1\n add link between b1 and b2\n add input signal receiveInt(int n) in b2");
+
+        chatData.aiinterface.addKnowledge("Consider a block diagram with a block b1 and a block b2, where b1 and b2 are already linked together. I " +
+                "want b1 to send an boolean value b to b2. Could you provide the relevant AMULET source code?","add attribute bool b in b1\n add " +
+                "attribute bool b in b2\n add output signal sendBool(bool b) in b1\n add input signal receiveBool(bool b) in b2");
+
+        chatData.aiinterface.addKnowledge("Prior to writing a \"add connection\" command between a signal from a block b1 and another signal from " +
+                "a block b2, you must check if some ports of b1 and b2 are already connected. If it is not the case, you must first write \"add " +
+                "link between b1 and b2\".","OK.");
 
-        chatData.aiinterface.addKnowledge("Consider a block diagram with a block b1 and a block b2. I want b1 to send an boolean value b to b2. Could" +
-                " you provide the relevant AMULET source code?","add attribute bool b in b1\n add attribute bool b in b2\n add output signal " +
-                "sendBool(bool b) in b1\n add input signal receiveBool(bool b) in b2");
+        chatData.aiinterface.addKnowledge("Even if the SysML textual specification provides the names of the blocks prefixed by \"Block__\", you " +
+                "should never write this prefix in an AMULET command. For instance, for removing a block named \"Block__myBlock\" in the " +
+                "specification, you will write \"remove block myBlock\".","OK.");
     }
 
 	
diff --git a/src/main/java/ai/AIAvatarSpecificationRequired.java b/src/main/java/ai/AIAvatarSpecificationRequired.java
new file mode 100644
index 0000000000000000000000000000000000000000..85bdd4e3ddcd1eac897302b9bb72818e57c5aa8c
--- /dev/null
+++ b/src/main/java/ai/AIAvatarSpecificationRequired.java
@@ -0,0 +1,58 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+package ai;
+
+
+import avatartranslator.AvatarSpecification;
+
+/**
+ * interface AIAvatarSpecificationRequired
+ *
+ * Creation: 15/06/2023
+ * @version 1.0 15/06/2023
+ * @author Ludovic APVRILLE
+ */
+
+
+public interface AIAvatarSpecificationRequired {
+
+  public void setAvatarSpecification(AvatarSpecification _specification);
+    
+}
diff --git a/src/main/java/ai/AIBlock.java b/src/main/java/ai/AIBlock.java
index c18359d9855ed157f656e36664d4a9120cc4bd76..5780fd4e331c945c39fd60aac0ad4a0e04f8305f 100644
--- a/src/main/java/ai/AIBlock.java
+++ b/src/main/java/ai/AIBlock.java
@@ -73,7 +73,7 @@ public class AIBlock extends AIInteract {
             "#Respect: Two connected signals must have " +
             "the same list of attributes, even if they are " +
             "defined in two different blocks. One of them must be output, the other one must be input" +
-            "#Respect: all input signals must have exactly one corresponding output signal, i.e. a signal with the same name" +
+            "#Respect: all input signals must have exactly one corresponding output signal, i.e., an ouput signal with the same name" +
             "#Respect: two signals with the same name must be defined in different blocks";
             /*"and after " +
             "the blocks, add the " +
@@ -90,8 +90,6 @@ public class AIBlock extends AIInteract {
             "# A signal must be involved in one connection exactly";*/
 
 
-
-
     public static String[] KNOWLEDGE_STAGES = {KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_ATTRIBUTES, KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_CONNECTIONS};
     AvatarSpecification specification;
     private String[] QUESTION_IDENTIFY_SYSTEM_BLOCKS = {"From the following system specification, using the specified JSON format, identify the " +
@@ -126,7 +124,7 @@ public class AIBlock extends AIInteract {
             ArrayList<String> errors;
             try {
                 TraceManager.addDev("Making specification from " + chatData.lastAnswer);
-                specification = AvatarSpecification.fromJSON(extractJSON(), "design", null);
+                specification = AvatarSpecification.fromJSON(extractJSON(), "design", null, true);
                 errors = AvatarSpecification.getJSONErrors();
 
             } catch (org.json.JSONException e) {
diff --git a/src/main/java/ai/AIChatData.java b/src/main/java/ai/AIChatData.java
index 38570c34ab8a487b59157e7568c88e4577808fd0..a44f69e2aab1a3121729433d59b24f8ec53fb09d 100644
--- a/src/main/java/ai/AIChatData.java
+++ b/src/main/java/ai/AIChatData.java
@@ -64,6 +64,7 @@ public class AIChatData  {
     public boolean knowledgeOnProperties = false;
     public int knowledgeOnBlockJSON = -1;
     public boolean knowledgeOnAMULET = false;
+    public boolean knowledgeOnStateMachines = false;
 
     public AIFeedback feedback;
     public String lastQuestion;
diff --git a/src/main/java/ai/AISoftwareBlock.java b/src/main/java/ai/AISoftwareBlock.java
index c8beb5da5e0ed4c6732f4d0b731d8d41ce16a069..39c3c2a11c368455d5e8533d8c8ec318fc59d1af 100644
--- a/src/main/java/ai/AISoftwareBlock.java
+++ b/src/main/java/ai/AISoftwareBlock.java
@@ -133,7 +133,7 @@ public class AISoftwareBlock extends AIInteract {
             ArrayList<String> errors;
             try {
                 TraceManager.addDev("Making specification from " + chatData.lastAnswer);
-                specification = AvatarSpecification.fromJSON(extractJSON(), "design", null);
+                specification = AvatarSpecification.fromJSON(extractJSON(), "design", null, cpt == 20);
                 errors = AvatarSpecification.getJSONErrors();
 
             } catch (org.json.JSONException e) {
diff --git a/src/main/java/ai/AIStateMachine.java b/src/main/java/ai/AIStateMachine.java
index 67e00c415da9f88ba6a69aeef6c72f38f7bb64f9..726d92d7c463f053356218ddcb1b645a88047155 100644
--- a/src/main/java/ai/AIStateMachine.java
+++ b/src/main/java/ai/AIStateMachine.java
@@ -42,7 +42,9 @@ package ai;
 
 import avatartranslator.AvatarBlock;
 import avatartranslator.AvatarSpecification;
+import avatartranslator.tosysmlv2.AVATAR2SysMLV2;
 import myutil.TraceManager;
+import org.apache.batik.anim.timing.Trace;
 
 import java.util.ArrayList;
 
@@ -56,50 +58,38 @@ import java.util.ArrayList;
  */
 
 
-public class AIStateMachine extends AIInteract {
+public class AIStateMachine extends AIInteract implements AISysMLV2DiagramContent, AIAvatarSpecificationRequired {
+    private static String[] SUPPORTED_DIAGRAMS = {"BD"};
+    private static String[] EXCLUSIONS_IN_INPUT = {"state",  "method"};
 
-    public static String KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_ATTRIBUTES = "When you are asked to identify SysML blocks, " +
+    public static String KNOWLEDGE_ON_JSON_FOR_STATE_MACHINES = "When you are asked to identify the SysML state machine of a block, " +
             "return them as a JSON specification " +
             "formatted as follows:" +
-            "{blocks: [{ \"name\": \"Name of block\", \"attributes\": [\"name\": \"name of attribute\", \"type\": \"int or bool\" ...} ...]}" +
-            "Use only attributes of type int or boolean. If you want to use \"String\" or another other attribute, use int." +
-            "# Respect: each attribute must be of type \"int\" or \"bool\" only" +
-            "# Respect: Any identifier (block, attribute, etc.) must no contain any space. Use \"_\" instead.";
-    public static String KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_CONNECTIONS = "When you are ask to identify signals of blocks, JSON is as follows: " +
-            "{blocks: [{ \"name\": \"Name of block\", \"signals\": " +
-            "[ ... signals ... ] ... (no need to relist the attributes of signals, nor to give a direction). " +
-            "#Respect: signals are defined like this in JSON: {\"signal\": \"input sig1(int x, bool b)\"} if the signal is an input signal" +
-            " and {\"signal\": \"output sig1(int x, bool b)\"} if the signal is an output signal" +
-            "#Respect 2 signals with the same name are assumed to be connected: this is the only way to connect signals. " +
-            "#Respect: Two connected signals must have " +
-            "the same list of attributes, even if they are " +
-            "defined in two different blocks. One of them must be output, the other one must be input" +
-            "#Respect: all input signals must have exactly one corresponding output signal, i.e. a signal with the same name" +
-            "#Respect: two signals with the same name must be defined in different blocks";
-            /*"and after " +
-            "the blocks, add the " +
-            "following JSON: " +
-            "connections: [{\"block1\" : name of first block, \"sig1\": name of first " +
-            "signal\", \"block2\" : name of second block" +
-            "\"sig2\": \"name of second signal\"}, ." +
-            "..]. " +  ".#" +
-            "Respect: in a connection, sig1 and sig2 must be different. The name of the signal only include its identifier, so not " +
-            "\"input\" nor " +
-            "\"output\", nor its attributes.#" +
-            "Two connected signals must have the \" +\n" +
-            "            \"same list of attributes." +
-            "# A signal must be involved in one connection exactly";*/
-
-
-
-
-    public static String[] KNOWLEDGE_STAGES = {KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_ATTRIBUTES, KNOWLEDGE_ON_JSON_FOR_BLOCKS_AND_CONNECTIONS};
-    AvatarSpecification specification;
-    private String[] QUESTION_IDENTIFY_SYSTEM_BLOCKS = {"From the following system specification, using the specified JSON format, identify the " +
-            "typical system blocks and their attributes. Do respect the JSON format, and provide only JSON (no explanation before or after).\n",
-            "From the previous JSON and system specification, update " +
-            "this JSON with" +
-            " the signals you have to identify. If necessary, you can add new blocks and new attributes."};
+            "{states: [{ \"name\": \"Name of state\", transitions [{ \"destinationstate\" : \"state name\",  \"guard\": \"boolean condition\", " +
+            "\"after\": \"time " +
+        "value\", \"action\":" +
+            " \"attribute action or signal receiving/sending\"}]}]} ." +
+            "# Respect: in actions, use only attributes and signals already defined in the corresponding block" +
+            "# Respect: at least one state must be called \"Start\", which is the start state" +
+            "# Respect: if a guard, an action, or an after is empty, use an empty string \"\", do not use \"null\"" +
+            "# Respect: an action contains either a variable affection, e.g. \"x = x + 1\" or a signal send/receive " +
+            "# Respect If a transition contains several actions, use a \";\" to separate them " +
+            "# Respect: a signal send is out::signalName(..) and a signal receive is in::signaNamd(...) " +
+            "# Respect: the attribute of an action is named by its identifier, do not reference its block " +
+            "# Respect: A guard cannot contain a reference to a signal " +
+            "# Rexpect: To reference the attribute \"x\" of block \"B\", use \"x\" and never \"B.x\" nor \"B::x\"";
+
+
+    private AvatarSpecification specification;
+
+    private String diagramContentInSysMLV2;
+
+    private static String KNOWLEDGE_SYSTEM_SPECIFICATION = "The specification of the system is:";
+    private static String KNOWLEDGE_SYSTEM_BLOCKS = "The specification of the blocks in SysML V2 is:";
+
+    private String[] QUESTION_IDENTIFY_STATE_MACHINE = {"From the  system specification, and from the definition of blocks and" +
+            " their " +
+            "connections, identify the state machine of block: "};
 
 
     public AIStateMachine(AIChatData _chatData) {
@@ -108,61 +98,88 @@ public class AIStateMachine extends AIInteract {
 
     public void internalRequest() {
 
-        int stage = 0;
-        String questionT = QUESTION_IDENTIFY_SYSTEM_BLOCKS[stage] + "\n" + chatData.lastQuestion.trim() + "\n";
+        // Add the knowledge, retrieve the block names, attributes, etc.
+        if (!chatData.knowledgeOnStateMachines) {
+            chatData.aiinterface.addKnowledge(KNOWLEDGE_ON_JSON_FOR_STATE_MACHINES, "ok");
+            chatData.knowledgeOnStateMachines = true;
+        }
+
+        chatData.aiinterface.addKnowledge(KNOWLEDGE_SYSTEM_SPECIFICATION + chatData.lastQuestion, "ok");
+        chatData.aiinterface.addKnowledge(KNOWLEDGE_SYSTEM_BLOCKS + diagramContentInSysMLV2, "ok");
+
+        // Getting block names for SysMLV2 spec
+        //TraceManager.addDev("SysML V2 spec: " + diagramContentInSysMLV2);
+        ArrayList<String> blockNames = AVATAR2SysMLV2.getAllBlockNames(diagramContentInSysMLV2);
+
+        TraceManager.addDev("Going to handle the following blocks: ");
+        for(String s: blockNames) {
+            TraceManager.addDev("\tblock: " + s);
+        }
 
-        makeKnowledge(stage);
 
         boolean done = false;
         int cpt = 0;
 
-        // Blocks and attributes
-        while (!done && cpt < 20) {
-            cpt++;
-            boolean ok = makeQuestion(questionT);
-            if (!ok) {
-                done = true;
-                TraceManager.addDev("Make question failed");
-            }
-            ArrayList<String> errors;
-            try {
-                TraceManager.addDev("Making specification from " + chatData.lastAnswer);
-                specification = AvatarSpecification.fromJSON(extractJSON(), "design", null);
-                errors = AvatarSpecification.getJSONErrors();
-
-            } catch (org.json.JSONException e) {
-                TraceManager.addDev("Invalid JSON spec: " + extractJSON() + " because " + e.getMessage() + ": INJECTING ERROR");
-                errors = new ArrayList<>();
-                errors.add("There is an error in your JSON: " + e.getMessage() + ". probably the JSON spec was incomplete. Do correct it. I need " +
-                        "the full specification at once.");
-            }
+        String questionT;
+
 
-            if ((errors != null) && (errors.size() > 0)) {
-                questionT = "Your answer was not correct because of the following errors:";
-                for (String s : errors) {
-                    questionT += "\n- " + s;
+        for(String blockName: blockNames) {
+            TraceManager.addDev("Handling block: " + blockName);
+            done = false; cpt = 0;
+            int max = 3;
+
+
+            questionT = QUESTION_IDENTIFY_STATE_MACHINE[0] + blockName;
+            while (!done && cpt < max) {
+                done = true;
+                boolean ok = makeQuestion(questionT);
+                if (!ok) {
+                    TraceManager.addDev("Make question failed");
                 }
-            } else {
-                TraceManager.addDev(" Avatar spec=" + specification);
-                stage++;
-                if (stage == KNOWLEDGE_STAGES.length) {
-                    done = true;
-                } else {
-                    makeKnowledge(stage);
-                    questionT = QUESTION_IDENTIFY_SYSTEM_BLOCKS[stage] + "\n";
 
+                if (ok && specification != null) {
+                    AvatarBlock b = specification.getBlockWithName(blockName);
+                    if (b != null) {
+                        TraceManager.addDev("Making the state machine of " + blockName);
+                        ArrayList<String> errors = b.makeStateMachineFromJSON(extractJSON(), cpt == (max - 1));
+                        if ((errors != null) && (errors.size() > 0)) {
+                            done = false;
+                            questionT = "Your answer was not correct because of the following errors:";
+                            for (String s : errors) {
+                                TraceManager.addDev("Error in JSON: " + s);
+                                questionT += "\n- " + s;
+                            }
+                        } else {
+                            TraceManager.addDev("SMD done for Block " + blockName);
+                        }
+                    } else {
+                        TraceManager.addDev("ERROR: no block named " + blockName);
+                    }
+                } else {
+                    TraceManager.addDev("Null specification or false ok");
                 }
-            }
 
-            waitIfConditionTrue(!done && cpt < 20);
+                waitIfConditionTrue(!done && cpt < max);
 
-            cpt++;
+                cpt ++;
+            }
+            // Remove knowledge of previous questions
+            while(cpt > 0) {
+                cpt --;
+                chatData.aiinterface.removePreviousKnowledge();
+            }
         }
-        TraceManager.addDev("Reached end of AIBlock internal request cpt=" + cpt);
+        TraceManager.addDev("Reached end of AIStateMachine internal request cpt=" + cpt);
 
     }
 
     public Object applyAnswer(Object input) {
+        TraceManager.addDev("Apply answer in AIState Machine");
+        if (specification == null) {
+            TraceManager.addDev("Null spec");
+        } else {
+            TraceManager.addDev("Non null spec");
+        }
         if (input == null) {
             return specification;
         }
@@ -170,20 +187,23 @@ public class AIStateMachine extends AIInteract {
         return specification;
     }
 
-    public void makeKnowledge(int stage) {
-        TraceManager.addDev("makeKnowledge. stage: " + stage + " chatData.knowledgeOnBlockJSON: " + chatData.knowledgeOnBlockJSON);
-        if (stage > chatData.knowledgeOnBlockJSON) {
-            chatData.knowledgeOnBlockJSON++;
+    public void setAvatarSpecification(AvatarSpecification _specification) {
+        specification = _specification;
+    };
 
-            String [] know = KNOWLEDGE_STAGES[chatData.knowledgeOnBlockJSON].split("#");
+    public void setDiagramContentInSysMLV2(String _diagramContentInSysMLV2) {
+        diagramContentInSysMLV2 = _diagramContentInSysMLV2;
+    };
 
-            for(String s: know) {
-                TraceManager.addDev("\nKnowledge added: " + s);
-                chatData.aiinterface.addKnowledge(s, "ok");
-            }
-        }
+    public String[] getValidDiagrams() {
+        return SUPPORTED_DIAGRAMS;
     }
 
+    public String[] getDiagramExclusions() {
+        return EXCLUSIONS_IN_INPUT;
+    }
+
+
 
 
 
diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java
index 6a956c1dc7d5333426593e7bf1a70f6e1c80808e..cadfa837c2494a922684b1ffc2a63dab6f18ce94 100644
--- a/src/main/java/avatartranslator/AvatarActionOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java
@@ -61,15 +61,16 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
 	private List<AvatarExpressionAttributeInterface> actionAttr;
 
 
-	public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject ) {
-		this( _name, _signal, _referenceObject, false );
+	public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject, AvatarStateMachineOwner _block) {
+        this( _name, _signal, _referenceObject, _block, false );
 	}
 
 	public AvatarActionOnSignal(	String _name,
 									AvatarSignal _signal,
 									Object _referenceObject,
+                                    AvatarStateMachineOwner _block,
 									boolean _isCheckable ) {
-		super( _name, _referenceObject, _isCheckable, false );
+		super( _name, _referenceObject, _block, _isCheckable, false );
 		
 		signal = _signal;
 		values = new LinkedList<String>();
@@ -143,7 +144,8 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
     	//TraceManager.addDev("I HAVE BEEN CLONED: " + this);
     	AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName());
     	if (sig != null) {
-    		AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable()/*, isChecked()*/);
+    		AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), _block, isCheckable()/*,
+    		isChecked()*/);
     		for(int i=0; i<getNbOfValues(); i++) {
     			aaos.addValue(getValue(i));
     		}
@@ -205,4 +207,25 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
     public void setSignal(AvatarSignal _signal) {
 		signal = _signal;
     }
+
+    public boolean equals(AvatarActionOnSignal _aaos) {
+        if (getSignal() != _aaos.getSignal()) {
+            TraceManager.addDev("\tSignal is different");
+            return false;
+        }
+
+        if (values.size() != _aaos.getNbOfValues()) {
+            TraceManager.addDev("\tNb of values is different");
+            return false;
+        }
+
+        for(int i=0; i<getNbOfValues(); i++) {
+            if (getValue(i).compareTo(_aaos.getValue(i)) != 0) {
+                TraceManager.addDev("\tValue #" + i + " is different");
+                return false;
+            }
+        }
+
+        return true;
+    }
 }
diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java
index 1d44368b2dbc945e3d5a1c3ce0d3fae66cb1fc90..41d995d870ee383a5e9eeea4ce42f6fd8b6e2084 100644
--- a/src/main/java/avatartranslator/AvatarBlock.java
+++ b/src/main/java/avatartranslator/AvatarBlock.java
@@ -38,21 +38,22 @@
 
 package avatartranslator;
 
+import avatartranslator.intboolsolver.AvatarIBSolver;
 import myutil.NameChecker;
 import myutil.TraceManager;
 import myutil.intboolsolver.IBSParamComp;
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.*;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
 
 /**
  * Class AvatarBlock
  * Creation: 20/05/2010
  *
  * @author Ludovic APVRILLE, Raja GATGOUT
- * @version 1.1 01/07/2014
+ * @version 2.0 15/06/2023
  */
 public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwner, NameChecker.NameStartWithUpperCase, IBSParamComp {
 
@@ -351,6 +352,32 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         return sb.toString();
     }
 
+    public String toStringRecursive() {
+        //Thread.currentThread().dumpStack();
+        StringBuffer sb = new StringBuffer("block:" + getName() + " ID=" + getID() + " \n");
+        if (getFather() != null) {
+            sb.append("  subblock of: " + getFather().getName() + " ID=" + getFather().getID() + "\n");
+        } else {
+            sb.append("  top level block\n");
+        }
+        for (AvatarAttribute attribute : attributes) {
+            sb.append("  attribute: " + attribute.toString() + " ID=" + attribute.getID() + "\n");
+        }
+        for (AvatarMethod method : methods) {
+            sb.append("  method: " + method.toString() + " ID=" + method.getID() + "\n");
+        }
+        for (AvatarSignal signal : signals) {
+            sb.append("  signal: " + signal.toString() + " ID=" + signal.getID() + "\n");
+        }
+        if (asm != null) {
+            sb.append(asm.toStringRecursive());
+        } else {
+            sb.append("No state machine");
+        }
+
+        return sb.toString();
+    }
+
     public String toShortString() {
         //Thread.currentThread().dumpStack();
         StringBuffer sb = new StringBuffer("block:" + getName() + " ID=" + getID() + " \n");
@@ -612,7 +639,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
     }
 
     public String findUniqueSignalName(String inputName) {
-        for(AvatarSignal signal: signals) {
+        for (AvatarSignal signal : signals) {
             if (signal.getSignalName().compareTo(inputName) == 0) {
                 return findUniqueSignalName(inputName + "0");
             }
@@ -621,7 +648,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
     }
 
     public String findUniqueAttributeName(String inputName) {
-        for(AvatarAttribute attr: attributes) {
+        for (AvatarAttribute attr : attributes) {
             if (attr.getName().compareTo(inputName) == 0) {
                 return findUniqueAttributeName(inputName + "0");
             }
@@ -888,7 +915,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
                             toKeep = true;
                         }
                     } else if (elt instanceof AvatarLibraryFunctionCall) {
-                        if ( ((AvatarLibraryFunctionCall)(elt)).getReturnAttributes().contains(attr)) {
+                        if (((AvatarLibraryFunctionCall) (elt)).getReturnAttributes().contains(attr)) {
                             toKeep = true;
                         }
                     }
@@ -951,7 +978,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
 
         // Replacing ops
         for (AvatarQueryOnSignal q : elts) {
-            AvatarActionOnSignal aaosQuery = new AvatarActionOnSignal("query", _newSignal, q.getReferenceObject());
+            AvatarActionOnSignal aaosQuery = new AvatarActionOnSignal("query", _newSignal, q.getReferenceObject(), asm.getOwner());
             aaosQuery.addValue(q.getAttribute().getName());
             asm.replace(q, aaosQuery);
         }
@@ -1003,4 +1030,293 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         }
         return nes;
     }
+
+    // Returns errors as String
+    public ArrayList<String> makeStateMachineFromJSON(String _jsonSpec, boolean forceIfIncorrectExpression) {
+        if (_jsonSpec == null) {
+            return null;
+        }
+
+        asm.clear();
+        AvatarStartState startState = new AvatarStartState("StartState", null, asm.getOwner());
+        asm.addElement(startState);
+        asm.setStartState(startState);
+
+        ArrayList<String> errors = new ArrayList<>();
+        JSONObject mainObject;
+
+        try {
+            mainObject = new JSONObject(_jsonSpec);
+
+            JSONArray statesJSON = mainObject.getJSONArray("states");
+
+            for (int i = 0; i < statesJSON.length(); i++) {
+                JSONObject state0 = statesJSON.getJSONObject(i);
+                String name = AvatarSpecification.removeSpaces(state0.getString("name"));
+
+                AvatarState sameState = asm.getStateByName(name);
+                if (sameState != null) {
+                    TraceManager.addDev("State " + name + " is defined several times");
+                    errors.add("State " + name + " is defined several times");
+                } else {
+                    AvatarState newState = new AvatarState(name, this.getReferenceObject(), asm.getOwner());
+                    asm.addElement(newState);
+                    TraceManager.addDev("Adding state " + newState);
+
+                    if (name.toLowerCase(Locale.ROOT).compareTo("start") == 0) {
+                        TraceManager.addDev("This state is a start state: " + newState);
+                        AvatarTransition at = new AvatarTransition(this, "firstTransition", this.getReferenceObject());
+                        asm.addElement(at);
+                        asm.getStartState().addNext(at);
+                        at.addNext(newState);
+                    }
+                }
+            }
+
+            for (int i = 0; i < statesJSON.length(); i++) {
+                JSONObject state0 = statesJSON.getJSONObject(i);
+                String name = AvatarSpecification.removeSpaces(state0.getString("name"));
+                if (name != null) {
+                    TraceManager.addDev("Getting state: " + name);
+                    AvatarState originState = asm.getStateByName(name);
+                    if (originState != null) {
+                        TraceManager.addDev("Non null state: " + name);
+                        JSONArray transitionsJSON = state0.getJSONArray("transitions");
+                        for (int j = 0; j < transitionsJSON.length(); j++) {
+                            JSONObject transitions0 = transitionsJSON.getJSONObject(j);
+                            String destinationState = transitions0.getString("destinationstate");
+                            if (destinationState == null) {
+                                //TraceManager.addDev("A transition has no destination: \"destinationstate\"");
+                                // Looping on itself
+                                destinationState = name;
+
+                                //errors.add("A transition has no destination: \"destinationstate\"");
+                            }
+                            destinationState = AvatarSpecification.removeSpaces(destinationState);
+                            AvatarState dstState = asm.getStateByName(destinationState);
+                            if (dstState == null) {
+                                TraceManager.addDev("A transition has a undefined destination state to state\"" + destinationState + "\"");
+                                //errors.add("A transition has a undefined destination state to state\"" + destinationState + "\"");
+                                AvatarState newState = new AvatarState(destinationState, this.getReferenceObject(), asm.getOwner());
+                                asm.addElement(newState);
+                                dstState = asm.getStateByName(destinationState);
+                            }
+                            AvatarTransition at =
+                                    new AvatarTransition(this, "name" + "_to_" + destinationState, getReferenceObject());
+                            asm.addElement(at);
+                            originState.addNext(at);
+                            at.addNext(dstState);
+
+                            // Handling guard, after and action
+                            String guard = transitions0.getString("guard");
+                            if ((guard != null) && (guard.length() > 0)) {
+
+                                int g = AvatarSyntaxChecker.isAValidGuard(getAvatarSpecification(), this, guard);
+
+                                if ((g != 0) && (!forceIfIncorrectExpression)) {
+                                    TraceManager.addDev("The following guard " + guard + " is incorrect");
+                                    errors.add("The following guard " + guard + " is incorrect");
+                                } else {
+                                    at.setGuard(guard);
+                                }
+
+                                // Check if the guard is valid
+                                    /*AvatarIBSolver.clearBadIdents();
+                                    AvatarIBSExpressions.BExpr g = AvatarIBSolver.parseBool(this, guard);
+                                    if (g == null) {
+                                        HashSet<String> hs = AvatarIBSolver.getBadIdents();
+                                        String badAttrib = "";
+                                        for (String s : hs) {
+                                            badAttrib += s + " ";
+                                        }
+                                        errors.add("The following elements of the guard " + guard + " are incorrect: " + badAttrib);
+                                    } else {
+                                        at.setGuard(guard);
+                                    }*/
+                            }
+
+                            // After
+                            String afterS = transitions0.getString("after");
+                            if ((afterS != null) && (afterS.length() > 0)) {
+
+                                int af = AvatarSyntaxChecker.isAValidIntExpr(getAvatarSpecification(), this, afterS);
+
+                                if ((af != 0) && (!forceIfIncorrectExpression)){
+                                    TraceManager.addDev("The following after clause \"" + afterS + "\" is incorrect (maybe the attribute does not exist?" +
+                                            " In that case, directly use a numerical value)");
+                                    errors.add("The following after clause \"" + afterS + "\" is incorrect (maybe the attribute does not exist?" +
+                                            " In that case, directly use a numerical value)");
+                                } else {
+                                    at.setDelays(afterS, afterS);
+                                }
+
+
+                                    /*AvatarIBSolver.clearBadIdents();
+                                    AvatarIBSExpressions.IExpr expr = AvatarIBSolver.parseInt(this, afterS);
+                                    if (expr == null) {
+                                        HashSet<String> hs = AvatarIBSolver.getBadIdents();
+                                        String badAttrib = "";
+                                        for (String s : hs) {
+                                            badAttrib += s + " ";
+                                        }
+                                        errors.add("The following elements of the after " + afterS + " are incorrect: " + badAttrib);
+                                    } else {
+                                        at.setDelays(afterS, afterS);
+                                    }*/
+                            }
+
+                            // Action
+                            String actionS = transitions0.getString("action");
+
+                            if ((actionS != null) && (actionS.length() > 0)) {
+                                String actions[] = actionS.split(";");
+
+                                try {
+                                    for (String action : actions) {
+                                        // Affectation?
+                                        if (action.contains("=")) {
+                                            int index = action.indexOf('=');
+                                            String variableName = action.substring(0, index).trim();
+                                            AvatarAttribute aa = getAvatarAttributeWithName(variableName);
+                                            if (aa == null) {
+                                                TraceManager.addDev("The following action is not valid: " + action + " because it contains an attribute  " +
+                                                        variableName + " which is not declared in the block " + getName());
+                                                errors.add("The following action is not valid: " + action + " because it contains an attribute  " +
+                                                        variableName + " which is not declared in the block " + getName());
+                                            } else {
+                                                String expr = action.substring(index + 1).trim();
+                                                TraceManager.addDev("Analyzing expr:" + expr);
+                                                AvatarIBSolver.clearBadIdents();
+                                                if (aa.getType() == AvatarType.INTEGER) {
+                                                    TraceManager.addDev("int expr");
+
+                                                    int ex = AvatarSyntaxChecker.isAValidIntExpr(getAvatarSpecification(), this, expr);
+
+                                                    if ((ex != 0) && (!forceIfIncorrectExpression)) {
+                                                        TraceManager.addDev("The  action " + action + " is incorrect. Maybe it uses undeclared " +
+                                                                "attributes? In that case");
+                                                        errors.add("The  action " + action + " is incorrect. Maybe it uses undeclared " +
+                                                                "attributes? In that case");
+                                                    } else {
+                                                        at.addAction(action);
+                                                    }
+
+                                                    /*AvatarIBSExpressions.IExpr iExpr = AvatarIBSolver.parseInt(this, expr);
+                                                    if (iExpr == null) {
+                                                        HashSet<String> hs = AvatarIBSolver.getBadIdents();
+                                                        String badAttrib = "";
+                                                        for (String s : hs) {
+                                                            badAttrib += s + " ";
+                                                        }
+                                                        errors.add("The following elements of the int expr " + action + " are incorrect: " + badAttrib);
+                                                    } else {
+                                                        at.addAction(action);
+                                                    }*/
+                                                } else if (aa.getType() == AvatarType.BOOLEAN) {
+                                                    TraceManager.addDev("bool expr");
+                                                    int ex = AvatarSyntaxChecker.isAValidBoolExpr(getAvatarSpecification(), this, expr);
+
+                                                    if ((ex != 0)&& (!forceIfIncorrectExpression)) {
+                                                        TraceManager.addDev("The  action " + action + " is incorrect");
+                                                        errors.add("The  action " + action + " is incorrect");
+                                                    } else {
+                                                        at.addAction(action);
+                                                    }
+                                                    /*AvatarIBSExpressions.BExpr bExpr = AvatarIBSolver.parseBool(this, expr);
+                                                    if (bExpr == null) {
+                                                        HashSet<String> hs = AvatarIBSolver.getBadIdents();
+                                                        String badAttrib = "";
+                                                        for (String s : hs) {
+                                                            badAttrib += s + " ";
+                                                        }
+                                                        errors.add("The following elements of the bool expr " + action + " are incorrect: " + badAttrib);
+                                                    } else {
+                                                        at.addAction(action);
+                                                    }*/
+                                                }
+
+                                            }
+
+
+                                        }
+                                        // signal sending / receiving
+                                        else if (action.contains("::")) {
+                                            TraceManager.addDev("Handing communication action: " + action);
+
+                                            int index = action.indexOf("::");
+                                            boolean isIn = action.substring(0, index).trim().compareTo("in") == 0;
+                                            String signalSent = action.substring(index+2);
+
+                                            if (signalSent.length() >0) {
+                                                 int indexLPar = signalSent.indexOf("(");
+                                                 String sigName = signalSent;
+                                                 if (indexLPar > - 1) {
+                                                     sigName = signalSent.substring(0, indexLPar).trim();
+                                                 }
+                                                AvatarSignal atas = getAvatarSignalWithName(sigName);
+                                                 if ((atas == null) && (!forceIfIncorrectExpression)) {
+                                                     TraceManager.addDev("No signal named \"" + action + "\" in block \"" + getName() + "\"");
+                                                     errors.add("No signal named \"" + action + "\" in block \"" + getName() + "\"" );
+                                                 } else {
+                                                     if (atas == null) {
+                                                         // Adding signal to block
+                                                         atas = new AvatarSignal(sigName, isIn?AvatarSignal.IN : AvatarSignal.OUT, null);
+                                                         addSignal(atas);
+                                                     }
+                                                     AvatarActionOnSignal aaos = new AvatarActionOnSignal(
+                                                             sigName + "_aaos", atas, null, asm.getOwner());
+                                                     // Chaining components
+                                                     asm.addElement(aaos);
+                                                     AvatarTransition atBis =
+                                                             new AvatarTransition(this, "name" + "_from_" + sigName, getReferenceObject());
+                                                     asm.addElement(atBis);
+
+                                                     AvatarStateMachineElement asme = at.getNext(0);
+                                                     at.removeAllNexts();
+                                                     at.addNext(aaos);
+                                                     aaos.addNext(atBis);
+                                                     atBis.addNext(asme);
+                                                     at = atBis;
+
+
+                                                 }
+
+                                            } else {
+                                                TraceManager.addDev("No signal provided in the following action: " + action + ".");
+                                                errors.add("No signal provided in the following action: " + action + ".");
+                                            }
+
+
+
+                                        } else {
+                                            if (forceIfIncorrectExpression) {
+                                                at.addAction(action);
+                                            } else {
+                                                TraceManager.addDev("The following action is not valid: " + action + ". It must contain either the affectation of a " +
+                                                        "variable or a signal send/receive");
+                                                errors.add("The following action is not valid: " + action + ". It must contain either the affectation of a " +
+                                                        "variable or a signal send/receive");
+                                            }
+                                        }
+                                    }
+                                } catch (Exception e) {
+
+                                }
+                            }
+
+
+                        }
+                    }
+                }
+
+            }
+        } catch (org.json.JSONException e) {
+            errors.add("Invalid JSON: " + e.getMessage());
+        }
+
+        TraceManager.addDev("******************** State Machine of block: " + getName() + ":" + getStateMachine().toString());
+
+
+        return errors;
+    }
 }
diff --git a/src/main/java/avatartranslator/AvatarBlockTemplate.java b/src/main/java/avatartranslator/AvatarBlockTemplate.java
index 054d02d7774f48de0f01f74f1bc7e0a4b0575e13..239e38cc6bd1f77ba96afeef95720149bdc0cbf8 100644
--- a/src/main/java/avatartranslator/AvatarBlockTemplate.java
+++ b/src/main/java/avatartranslator/AvatarBlockTemplate.java
@@ -78,32 +78,32 @@ public class AvatarBlockTemplate {
         ab.addSignal(expire);
 
         AvatarStateMachine asm = ab.getStateMachine();
-        AvatarStartState ass = new AvatarStartState("start", _referenceBlock);
+        AvatarStartState ass = new AvatarStartState("start", _referenceBlock, ab);
 
         asm.setStartState(ass);
         asm.addElement(ass);
 
-        AvatarState as1 = new AvatarState("wait4set", _referenceBlock);
+        AvatarState as1 = new AvatarState("wait4set", _referenceBlock, ab);
         asm.addElement(as1);
 
-        AvatarState as2 = new AvatarState("wait4expire", _referenceBlock);
+        AvatarState as2 = new AvatarState("wait4expire", _referenceBlock, ab);
         asm.addElement(as2);
 
-        AvatarActionOnSignal aaos1 = new AvatarActionOnSignal("set1", set, _referenceSet);
+        AvatarActionOnSignal aaos1 = new AvatarActionOnSignal("set1", set, _referenceSet, ab);
         aaos1.addValue("value");
         asm.addElement(aaos1);
 
-        AvatarActionOnSignal aaos2 = new AvatarActionOnSignal("set2", set, _referenceSet);
+        AvatarActionOnSignal aaos2 = new AvatarActionOnSignal("set2", set, _referenceSet, ab);
         aaos2.addValue("value");
         asm.addElement(aaos2);
 
-        AvatarActionOnSignal aaos3 = new AvatarActionOnSignal("reset1", reset, _referenceReset);
+        AvatarActionOnSignal aaos3 = new AvatarActionOnSignal("reset1", reset, _referenceReset, ab);
         asm.addElement(aaos3);
 
-        AvatarActionOnSignal aaos4 = new AvatarActionOnSignal("reset2", reset, _referenceReset);
+        AvatarActionOnSignal aaos4 = new AvatarActionOnSignal("reset2", reset, _referenceReset, ab);
         asm.addElement(aaos4);
 
-        AvatarActionOnSignal aaos5 = new AvatarActionOnSignal("expire", expire, _referenceExpire);
+        AvatarActionOnSignal aaos5 = new AvatarActionOnSignal("expire", expire, _referenceExpire, ab);
         asm.addElement(aaos5);
 
         AvatarTransition at;
@@ -176,19 +176,17 @@ public class AvatarBlockTemplate {
         ab.addAttribute(queryA);
         queryS.addParameter(queryA.advancedClone(null));
 
-
         AvatarTransition at;
         AvatarStateMachine asm = ab.getStateMachine();
 
 
-
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _referenceRelation);
+        AvatarStartState ass = new AvatarStartState("start", _referenceRelation, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // Main state: Wait4Request
-        AvatarState main = new AvatarState("Wait4Request", _referenceRelation);
+        AvatarState main = new AvatarState("Wait4Request", _referenceRelation, ab);
         asm.addElement(main);
         at = makeAvatarEmptyTransitionBetween(ab, asm, ass, main, _referenceRelation);
 
@@ -202,7 +200,7 @@ public class AvatarBlockTemplate {
         if ( (_sig1.getListOfAttributes().size() == 0) ) {
 
             // Write
-            AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_elt", write, _referenceRelation);
+            AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_elt", write, _referenceRelation, ab);
             asm.addElement(aaos_write);
             at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaos_write, _referenceRelation);
             at.setGuard("[(size < maxSize)]");
@@ -210,7 +208,7 @@ public class AvatarBlockTemplate {
             at.addAction("size = size + 1");
 
             if (!_ar.isBlocking()) {
-                AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("write_elt_bucket", write, _referenceRelation);
+                AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("write_elt_bucket", write, _referenceRelation, ab);
                 asm.addElement(aaos_write_bucket);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaos_write_bucket, _referenceRelation);
                 at.setGuard("[(size == maxSize)]");
@@ -218,7 +216,7 @@ public class AvatarBlockTemplate {
             }
 
             if (_ar.isLossy()) {
-                AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("write_elt_loss", write, _referenceRelation);
+                AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("write_elt_loss", write, _referenceRelation, ab);
                 asm.addElement(aaos_write_loss);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaos_write_loss, _referenceRelation);
                 at.setGuard("[(size < maxSize)]");
@@ -226,7 +224,7 @@ public class AvatarBlockTemplate {
             }
 
             // read
-            AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_elt", read, _referenceRelation);
+            AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_elt", read, _referenceRelation, ab);
             asm.addElement(aaos_read);
             at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaos_read, _referenceRelation);
             at.setGuard("[(size > 0)]");
@@ -289,7 +287,7 @@ public class AvatarBlockTemplate {
 
 
             // Can write only if fifo is not full only if transition
-            AvatarState testHead = new AvatarState("testHead", _referenceRelation);
+            AvatarState testHead = new AvatarState("testHead", _referenceRelation, ab);
             asm.addElement(testHead);
             at = makeAvatarEmptyTransitionBetween(ab, asm, testHead, main, _referenceRelation);
             at.addAction("head = head + 1");
@@ -301,7 +299,7 @@ public class AvatarBlockTemplate {
             at.addAction("size = size + 1");
 
             for (int i = 0; i < _sizeOfFifo; i++) {
-                AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_" + i, write, _referenceRelation);
+                AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_" + i, write, _referenceRelation, ab);
                 for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                     aaos_write.addValue("arg_" + aa.getName() + "_" + i);
                 }
@@ -315,7 +313,7 @@ public class AvatarBlockTemplate {
             }
             // if is lossy, can write, and does not store this nor increase the fifo size
             if (_ar.isLossy()) {
-                AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("writeloss_", write, _referenceRelation);
+                AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("writeloss_", write, _referenceRelation, ab);
                 for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                     aaos_write_loss.addValue("loss_" + aa.getName());
                 }
@@ -328,7 +326,7 @@ public class AvatarBlockTemplate {
             /// If maxSize has been reached
             // If it is blocking, then, the new message is written but not added
             if (!(_ar.isBlocking())) {
-                AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("writebucket_", write, _referenceRelation);
+                AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("writebucket_", write, _referenceRelation, ab);
                 for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                     aaos_write_bucket.addValue("bucket_" + aa.getName());
                 }
@@ -339,7 +337,7 @@ public class AvatarBlockTemplate {
             }
 
             // Read
-            AvatarState testTail = new AvatarState("testTail", _referenceRelation);
+            AvatarState testTail = new AvatarState("testTail", _referenceRelation, ab);
             asm.addElement(testTail);
             at = makeAvatarEmptyTransitionBetween(ab, asm, testTail, main, _referenceRelation);
             at.setGuard("[tail<(maxSize-1)]");
@@ -350,7 +348,7 @@ public class AvatarBlockTemplate {
             at.addAction("tail=0");
             at.addAction("size = size - 1");
             for (int i = 0; i < _sizeOfFifo; i++) {
-                AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_" + i, read, _referenceRelation);
+                AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_" + i, read, _referenceRelation, ab);
                 for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                     aaos_read.addValue("arg_" + aa.getName() + "_" + i);
                 }
@@ -368,7 +366,7 @@ public class AvatarBlockTemplate {
         }
 
         // Query
-        AvatarActionOnSignal aaosQuery = new AvatarActionOnSignal("query", queryS, _referenceRelation);
+        AvatarActionOnSignal aaosQuery = new AvatarActionOnSignal("query", queryS, _referenceRelation, ab);
         asm.addElement(aaosQuery);
         aaosQuery.addValue("size");
         at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaosQuery, _referenceRelation);
@@ -463,18 +461,18 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _referenceRelation);
+        AvatarStartState ass = new AvatarStartState("start", _referenceRelation, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // Main state: Wait4Request
-        AvatarState main = new AvatarState("Wait4Request", _referenceRelation);
+        AvatarState main = new AvatarState("Wait4Request", _referenceRelation, ab);
         asm.addElement(main);
         at = makeAvatarEmptyTransitionBetween(ab, asm, ass, main, _referenceRelation);
 
 
         // Can write only if fifo is not full only if transition
-        AvatarState testHead = new AvatarState("testHead", _referenceRelation);
+        AvatarState testHead = new AvatarState("testHead", _referenceRelation, ab);
         asm.addElement(testHead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, testHead, main, _referenceRelation);
         at.setGuard("[head<maxSize]");
@@ -483,7 +481,7 @@ public class AvatarBlockTemplate {
         at.addAction("head=0");
 
         for (int i = 0; i < _sizeOfFifo; i++) {
-            AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_" + i, write, _referenceRelation);
+            AvatarActionOnSignal aaos_write = new AvatarActionOnSignal("write_" + i, write, _referenceRelation, ab);
             for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                 aaos_write.addValue("arg_" + aa.getName() + "_" + i);
             }
@@ -497,7 +495,7 @@ public class AvatarBlockTemplate {
         }
         // if is lossy, can write, and does not store this nor increase the fifo size
         if (_ar.isLossy()) {
-            AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("writeloss_", write, _referenceRelation);
+            AvatarActionOnSignal aaos_write_loss = new AvatarActionOnSignal("writeloss_", write, _referenceRelation, ab);
             for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                 aaos_write_loss.addValue("loss_" + aa.getName());
             }
@@ -509,7 +507,7 @@ public class AvatarBlockTemplate {
 
         // If it is non blocking, then, the new message is written but not added
         if (!(_ar.isBlocking())) {
-            AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("writebucket_", write, _referenceRelation);
+            AvatarActionOnSignal aaos_write_bucket = new AvatarActionOnSignal("writebucket_", write, _referenceRelation, ab);
             for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                 aaos_write_bucket.addValue("bucket_" + aa.getName());
             }
@@ -520,7 +518,7 @@ public class AvatarBlockTemplate {
         }
 
         // Read
-        AvatarState testTail = new AvatarState("testTail", _referenceRelation);
+        AvatarState testTail = new AvatarState("testTail", _referenceRelation, ab);
         asm.addElement(testTail);
         at = makeAvatarEmptyTransitionBetween(ab, asm, testTail, main, _referenceRelation);
         at.setGuard("[tail<maxSize]");
@@ -528,7 +526,7 @@ public class AvatarBlockTemplate {
         at.setGuard("[tail==maxSize]");
         at.addAction("tail=0");
         for (int i = 0; i < _sizeOfFifo; i++) {
-            AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_" + i, read, _referenceRelation);
+            AvatarActionOnSignal aaos_read = new AvatarActionOnSignal("read_" + i, read, _referenceRelation, ab);
             for (AvatarAttribute aa : _sig1.getListOfAttributes()) {
                 aaos_read.addValue("arg_" + aa.getName() + "_" + i);
             }
@@ -541,7 +539,7 @@ public class AvatarBlockTemplate {
         }
 
         // Notified
-        AvatarActionOnSignal aaosNotified = new AvatarActionOnSignal("notified", notified, _referenceRelation);
+        AvatarActionOnSignal aaosNotified = new AvatarActionOnSignal("notified", notified, _referenceRelation, ab);
         aaosNotified.addValue("size");
         asm.addElement(aaosNotified);
         at = makeAvatarEmptyTransitionBetween(ab, asm, main, aaosNotified, _referenceRelation);
@@ -609,23 +607,23 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _refB);
+        AvatarStartState ass = new AvatarStartState("start", _refB, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // Main state
-        AvatarState mainState = new AvatarState("Main", _refB);
+        AvatarState mainState = new AvatarState("Main", _refB, ab);
         asm.addElement(mainState);
 
         if (unblokedBySigs.size() > 1) {
 
-            AvatarState waitForUnblock = new AvatarState("start", _refB);
+            AvatarState waitForUnblock = new AvatarState("start", _refB, ab);
             asm.addElement(waitForUnblock);
             at = makeAvatarEmptyTransitionBetween(ab, asm, ass, waitForUnblock, _refB);
 
             // Wait for being unblocked
             for (AvatarSignal as : unblokedBySigs) {
-                AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+                AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
                 asm.addElement(aaosRead);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, waitForUnblock, aaosRead, _refB);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, waitForUnblock, _refB);
@@ -637,7 +635,7 @@ public class AvatarBlockTemplate {
             at.setGuard("nbOfUnblocks == " + unblokedBySigs.size());
         } else if (unblokedBySigs.size() == 1){
             AvatarSignal as = unblokedBySigs.get(0);
-            AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(aaosRead);
             at = makeAvatarEmptyTransitionBetween(ab, asm, ass, aaosRead, _refB);
             at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, mainState, _refB);
@@ -645,18 +643,18 @@ public class AvatarBlockTemplate {
             at = makeAvatarEmptyTransitionBetween(ab, asm, ass, mainState, _refB);
         }
 
-        AvatarActionOnSignal selectWrite = new AvatarActionOnSignal("write_" + selectP.getSignalName(), selectP, _refB);
+        AvatarActionOnSignal selectWrite = new AvatarActionOnSignal("write_" + selectP.getSignalName(), selectP, _refB, ab);
         asm.addElement(selectWrite);
         selectWrite.addValue("duration");
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, selectWrite, _refB);
 
         // Activated
-        AvatarState activatedState = new AvatarState("activatedState", _refB);
+        AvatarState activatedState = new AvatarState("activatedState", _refB, ab);
         asm.addElement(activatedState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectWrite, activatedState, _refB);
 
         // Making a step
-        AvatarActionOnSignal stepRead = new AvatarActionOnSignal("read_" + stepP.getSignalName(), stepP, _refB);
+        AvatarActionOnSignal stepRead = new AvatarActionOnSignal("read_" + stepP.getSignalName(), stepP, _refB, ab);
         stepRead.addValue("step");
         asm.addElement(stepRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, activatedState, stepRead, _refB);
@@ -666,7 +664,7 @@ public class AvatarBlockTemplate {
         at.addAction("duration = duration - step");
 
         // Preempted
-        AvatarActionOnSignal preemptRead = new AvatarActionOnSignal("read_" + preemptP.getSignalName(), preemptP, _refB);
+        AvatarActionOnSignal preemptRead = new AvatarActionOnSignal("read_" + preemptP.getSignalName(), preemptP, _refB, ab);
         asm.addElement(preemptRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, activatedState, preemptRead, _refB);
         at.setGuard("duration>0");
@@ -675,7 +673,7 @@ public class AvatarBlockTemplate {
         // Finished!
 
         // Unblocking next
-        AvatarState unblockingState = new AvatarState("unblockingState", _refB);
+        AvatarState unblockingState = new AvatarState("unblockingState", _refB, ab);
         asm.addElement(unblockingState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, unblockingState, _refB);
         at.setGuard("duration==0");
@@ -683,18 +681,18 @@ public class AvatarBlockTemplate {
         AvatarStateMachineElement previous = unblockingState;
         // Adding all unblocking signals
         for(AvatarSignal as: unblokingBySigs) {
-            AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(aaosWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, previous, aaosWrite, _refB);
             previous = aaosWrite;
         }
 
 
-        AvatarActionOnSignal finishRead = new AvatarActionOnSignal("write_" + finishP.getSignalName(), finishP, _refB);
+        AvatarActionOnSignal finishRead = new AvatarActionOnSignal("write_" + finishP.getSignalName(), finishP, _refB, ab);
         asm.addElement(finishRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, previous, finishRead, _refB);
 
-        AvatarStopState stopState = new AvatarStopState("stopState", _refB);
+        AvatarStopState stopState = new AvatarStopState("stopState", _refB, ab);
         asm.addElement(stopState);
 
         at = makeAvatarEmptyTransitionBetween(ab, asm, finishRead, stopState, _refB);
@@ -761,23 +759,23 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _refB);
+        AvatarStartState ass = new AvatarStartState("start", _refB, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // Main state
-        AvatarState mainState = new AvatarState("Main", _refB);
+        AvatarState mainState = new AvatarState("Main", _refB, ab);
         asm.addElement(mainState);
 
         if (unblokedBySigs.size() > 1) {
 
-            AvatarState waitForUnblock = new AvatarState("start", _refB);
+            AvatarState waitForUnblock = new AvatarState("start", _refB, ab);
             asm.addElement(waitForUnblock);
             at = makeAvatarEmptyTransitionBetween(ab, asm, ass, waitForUnblock, _refB);
 
             // Wait for being unblocked
             for (AvatarSignal as : unblokedBySigs) {
-                AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+                AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
                 asm.addElement(aaosRead);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, waitForUnblock, aaosRead, _refB);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, waitForUnblock, _refB);
@@ -789,7 +787,7 @@ public class AvatarBlockTemplate {
             at.setGuard("nbOfUnblocks == " + unblokedBySigs.size());
         } else if (unblokedBySigs.size() == 1){
             AvatarSignal as = unblokedBySigs.get(0);
-            AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(aaosRead);
             at = makeAvatarEmptyTransitionBetween(ab, asm, ass, aaosRead, _refB);
             at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, mainState, _refB);
@@ -812,29 +810,29 @@ public class AvatarBlockTemplate {
         asm.addElement(mainState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, previous, mainState, _refB);*/
 
-        AvatarActionOnSignal selectWrite = new AvatarActionOnSignal("write_" + selectP.getSignalName(), selectP, _refB);
+        AvatarActionOnSignal selectWrite = new AvatarActionOnSignal("write_" + selectP.getSignalName(), selectP, _refB, ab);
         selectWrite.addValue("duration");
         asm.addElement(selectWrite);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, selectWrite, _refB);
 
 
         // Activation / deactivation
-        AvatarActionOnSignal deactivateRead = new AvatarActionOnSignal("read_" + deactivatedP.getSignalName(), deactivatedP, _refB);
+        AvatarActionOnSignal deactivateRead = new AvatarActionOnSignal("read_" + deactivatedP.getSignalName(), deactivatedP, _refB, ab);
         asm.addElement(deactivateRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, deactivateRead, _refB);
-        AvatarActionOnSignal activateRead = new AvatarActionOnSignal("read_" + reactivatedP.getSignalName(), reactivatedP, _refB);
+        AvatarActionOnSignal activateRead = new AvatarActionOnSignal("read_" + reactivatedP.getSignalName(), reactivatedP, _refB, ab);
         asm.addElement(activateRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, deactivateRead, activateRead, _refB);
         at = makeAvatarEmptyTransitionBetween(ab, asm, activateRead, mainState, _refB);
 
 
         // Activated
-        AvatarState activatedState = new AvatarState("activatedState", _refB);
+        AvatarState activatedState = new AvatarState("activatedState", _refB, ab);
         asm.addElement(activatedState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectWrite, activatedState, _refB);
 
         // Making a step
-        AvatarActionOnSignal stepRead = new AvatarActionOnSignal("read_" + stepP.getSignalName(), stepP, _refB);
+        AvatarActionOnSignal stepRead = new AvatarActionOnSignal("read_" + stepP.getSignalName(), stepP, _refB, ab);
         stepRead.addValue("step");
         asm.addElement(stepRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, activatedState, stepRead, _refB);
@@ -847,7 +845,7 @@ public class AvatarBlockTemplate {
 
 
         // Unblocking next
-        AvatarState unblockingState = new AvatarState("unblockingState", _refB);
+        AvatarState unblockingState = new AvatarState("unblockingState", _refB, ab);
         asm.addElement(unblockingState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, activatedState, unblockingState, _refB);
         at.setGuard("duration==0");
@@ -855,18 +853,18 @@ public class AvatarBlockTemplate {
         AvatarStateMachineElement previous = unblockingState;
         // Adding all unblocking signals
         for(AvatarSignal as: unblokingBySigs) {
-            AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(aaosWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, previous, aaosWrite, _refB);
             previous = aaosWrite;
         }
 
 
-        AvatarActionOnSignal finishRead = new AvatarActionOnSignal("write_" + finishP.getSignalName(), finishP, _refB);
+        AvatarActionOnSignal finishRead = new AvatarActionOnSignal("write_" + finishP.getSignalName(), finishP, _refB, ab);
         asm.addElement(finishRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, previous, finishRead, _refB);
 
-        AvatarStopState stopState = new AvatarStopState("stopState", _refB);
+        AvatarStopState stopState = new AvatarStopState("stopState", _refB, ab);
         asm.addElement(stopState);
 
         at = makeAvatarEmptyTransitionBetween(ab, asm, finishRead, stopState, _refB);
@@ -935,18 +933,18 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _refB);
+        AvatarStartState ass = new AvatarStartState("start", _refB, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // Main state
-        AvatarState mainState = new AvatarState("mainState", _refB);
+        AvatarState mainState = new AvatarState("mainState", _refB, ab);
         asm.addElement(mainState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, ass, mainState, _refB);
 
 
         // Min Computation state
-        AvatarState minState = new AvatarState("minState", _refB);
+        AvatarState minState = new AvatarState("minState", _refB, ab);
         asm.addElement(minState);
         for(AvatarAttribute aa0: allMins) {
             at = makeAvatarEmptyTransitionBetween(ab, asm, minState, mainState, _refB);
@@ -967,7 +965,7 @@ public class AvatarBlockTemplate {
         // SelectClock
         for(String task: allTasks) {
             as = ab.getAvatarSignalWithName("selectClock_" + task);
-            AvatarActionOnSignal newStepRead = new AvatarActionOnSignal("selectClock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal newStepRead = new AvatarActionOnSignal("selectClock_" + as.getSignalName(), as, _refB, ab);
             newStepRead.addValue("step_" + task);
             asm.addElement(newStepRead);
             at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, newStepRead, _refB);
@@ -978,7 +976,7 @@ public class AvatarBlockTemplate {
         //TraceManager.addDev("Set clock actions");
         for(String task: allTasks) {
             as = ab.getAvatarSignalWithName("setClock_" + task);
-            AvatarActionOnSignal newStepRead = new AvatarActionOnSignal("setClock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal newStepRead = new AvatarActionOnSignal("setClock_" + as.getSignalName(), as, _refB, ab);
             newStepRead.addValue("step_" + task);
             asm.addElement(newStepRead);
             at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, newStepRead, _refB);
@@ -989,7 +987,7 @@ public class AvatarBlockTemplate {
 
 
         // Tick
-        AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("sendTickIn_" + tick.getSignalName(), tick, _refB);
+        AvatarActionOnSignal aaosWrite = new AvatarActionOnSignal("sendTickIn_" + tick.getSignalName(), tick, _refB, ab);
         asm.addElement(aaosWrite);
         aaosWrite.addValue("step");
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, aaosWrite, _refB);
@@ -1000,12 +998,12 @@ public class AvatarBlockTemplate {
         }
 
         // finished
-        aaosWrite = new AvatarActionOnSignal("sendAllFinished_" + allFinished.getSignalName(), allFinished, _refB);
+        aaosWrite = new AvatarActionOnSignal("sendAllFinished_" + allFinished.getSignalName(), allFinished, _refB, ab);
         aaosWrite.addValue("h");
         asm.addElement(aaosWrite);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, aaosWrite, _refB);
 
-        AvatarStopState stop = new AvatarStopState("stop", _refB);
+        AvatarStopState stop = new AvatarStopState("stop", _refB, ab);
         asm.addElement(stop);
         at = makeAvatarEmptyTransitionBetween(ab, asm, aaosWrite, stop, _refB);
 
@@ -1030,23 +1028,23 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _refB);
+        AvatarStartState ass = new AvatarStartState("start", _refB, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // MainState state
-        AvatarState mainState = new AvatarState("mainState", _refB);
+        AvatarState mainState = new AvatarState("mainState", _refB, ab);
         asm.addElement(mainState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, ass, mainState, _refB);
 
         // Receive startDR
-        AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("startDR", startDR, _refB);
+        AvatarActionOnSignal aaosRead = new AvatarActionOnSignal("startDR", startDR, _refB, ab);
         asm.addElement(aaosRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, aaosRead, _refB);
         at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, mainState, _refB);
 
         // Receive stopDR
-        aaosRead = new AvatarActionOnSignal("stopDR", stopDR, _refB);
+        aaosRead = new AvatarActionOnSignal("stopDR", stopDR, _refB, ab);
         asm.addElement(aaosRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, mainState, aaosRead, _refB);
         at = makeAvatarEmptyTransitionBetween(ab, asm, aaosRead, mainState, _refB);
@@ -1220,21 +1218,21 @@ public class AvatarBlockTemplate {
         AvatarStateMachine asm = ab.getStateMachine();
 
         // Start state
-        AvatarStartState ass = new AvatarStartState("start", _refB);
+        AvatarStartState ass = new AvatarStartState("start", _refB, ab);
         asm.setStartState(ass);
         asm.addElement(ass);
 
         // finishSW state
-        AvatarState finishSW = new AvatarState("finishSW", _refB);
+        AvatarState finishSW = new AvatarState("finishSW", _refB, ab);
         asm.addElement(finishSW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, ass, finishSW, _refB);
 
         for(String task: swTasks) {
             as = ab.getAvatarSignalWithName("finished_" + task);
-            AvatarActionOnSignal finishedSWRead = new AvatarActionOnSignal("read_" + as.getSignalName() + "_" + task, as, _refB);
+            AvatarActionOnSignal finishedSWRead = new AvatarActionOnSignal("read_" + as.getSignalName() + "_" + task, as, _refB, ab);
             asm.addElement(finishedSWRead);
             as = ab.getAvatarSignalWithName("selectClock_" + task);
-            AvatarActionOnSignal selectSWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectSWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB, ab);
             selectSWWrite.addValue("maxStep");
             asm.addElement(selectSWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, finishSW, finishedSWRead, _refB);
@@ -1246,7 +1244,7 @@ public class AvatarBlockTemplate {
         }
 
         // finishHW state
-        AvatarState finishHW = new AvatarState("finishHW", _refB);
+        AvatarState finishHW = new AvatarState("finishHW", _refB, ab);
         asm.addElement(finishHW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, finishSW, finishHW, _refB);
         at.setDelays("1", "1");
@@ -1255,10 +1253,10 @@ public class AvatarBlockTemplate {
         cpt = 0;
         for(String task: hwTasks) {
             as = ab.getAvatarSignalWithName("finished_" + task);
-            AvatarActionOnSignal finishedHWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal finishedHWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(finishedHWRead);
             as = ab.getAvatarSignalWithName("selectClock_" + task);
-            AvatarActionOnSignal selectHWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectHWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB, ab);
             selectHWWrite.addValue("maxStep");
             asm.addElement(selectHWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, finishHW, finishedHWRead, _refB);
@@ -1274,7 +1272,7 @@ public class AvatarBlockTemplate {
 
             } else {
                 as = allFinished;
-                AvatarActionOnSignal allFinishedRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+                AvatarActionOnSignal allFinishedRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
                 allFinishedRead.addValue("finalClockValue");
                 asm.addElement(allFinishedRead);
 
@@ -1283,7 +1281,7 @@ public class AvatarBlockTemplate {
                 at.addAction("runningHW = runningHW - 1");
                 at.addAction("nbHWTasks = nbHWTasks - 1");
 
-                AvatarStopState stop = new AvatarStopState("stopAllFinished", _refB);
+                AvatarStopState stop = new AvatarStopState("stopAllFinished", _refB, ab);
                 asm.addElement(stop);
                 at = makeAvatarEmptyTransitionBetween(ab, asm, allFinishedRead, stop, _refB);
             }
@@ -1292,14 +1290,14 @@ public class AvatarBlockTemplate {
         }
 
         // evaluateSW state
-        AvatarState evaluateSW = new AvatarState("evaluateSW", _refB);
+        AvatarState evaluateSW = new AvatarState("evaluateSW", _refB, ab);
         asm.addElement(evaluateSW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, finishHW, evaluateSW, _refB);
         at.setDelays("1", "1");
 
 
         // preemptSW state
-        AvatarState preemptSW = new AvatarState("preemptSW", _refB);
+        AvatarState preemptSW = new AvatarState("preemptSW", _refB, ab);
         asm.addElement(preemptSW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, evaluateSW, preemptSW, _refB);
         at.setGuard("(allocCore > 0) && (rescheduleSW)");
@@ -1307,7 +1305,7 @@ public class AvatarBlockTemplate {
 
         for(String task: swTasks) {
             as = ab.getAvatarSignalWithName("preempt_" + task);
-            AvatarActionOnSignal preemptSWWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal preemptSWWrite = new AvatarActionOnSignal("write_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(preemptSWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, preemptSW, preemptSWWrite, _refB);
             at = makeAvatarEmptyTransitionBetween(ab, asm, preemptSWWrite, preemptSW, _refB);
@@ -1316,7 +1314,7 @@ public class AvatarBlockTemplate {
 
 
         // selectSW state
-        AvatarState selectSW = new AvatarState("selectSW", _refB);
+        AvatarState selectSW = new AvatarState("selectSW", _refB, ab);
         asm.addElement(selectSW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, preemptSW, selectSW, _refB);
         at.setDelays("1", "1");
@@ -1325,11 +1323,11 @@ public class AvatarBlockTemplate {
 
         for(String task: swTasks) {
             as = ab.getAvatarSignalWithName("select_" + task);
-            AvatarActionOnSignal selectSWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectSWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
             selectSWRead.addValue("step");
             asm.addElement(selectSWRead);
             as = ab.getAvatarSignalWithName("selectClock_" + task);
-            AvatarActionOnSignal selectSWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectSWWrite = new AvatarActionOnSignal("writeclock_" + as.getSignalName(), as, _refB, ab);
             selectSWWrite.addValue("step");
             asm.addElement(selectSWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, selectSW, selectSWRead, _refB);
@@ -1343,7 +1341,7 @@ public class AvatarBlockTemplate {
 
         //TraceManager.addDev("Main block: 1" );
         // selectHW state
-        AvatarState selectHW = new AvatarState("selectHW", _refB);
+        AvatarState selectHW = new AvatarState("selectHW", _refB, ab);
         asm.addElement(selectHW);
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectSW, selectHW, _refB);
         at.setDelays("2", "2");
@@ -1353,11 +1351,11 @@ public class AvatarBlockTemplate {
         cpt = 0;
         for(String task: hwTasks) {
             as = ab.getAvatarSignalWithName("select_" + task);
-            AvatarActionOnSignal selectHWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectHWRead = new AvatarActionOnSignal("read_" + as.getSignalName(), as, _refB, ab);
             selectHWRead.addValue("step");
             asm.addElement(selectHWRead);
             as = ab.getAvatarSignalWithName("selectClock_" + task);
-            AvatarActionOnSignal selectHWWrite = new AvatarActionOnSignal("writeClock_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal selectHWWrite = new AvatarActionOnSignal("writeClock_" + as.getSignalName(), as, _refB, ab);
             selectHWWrite.addValue("step");
             asm.addElement(selectHWWrite);
             //TraceManager.addDev("Main block: 1.2" );
@@ -1385,14 +1383,14 @@ public class AvatarBlockTemplate {
 
 
         // blockNonSelected state
-        AvatarState blockNonSelected = new AvatarState("blockNonSelected", _refB);
+        AvatarState blockNonSelected = new AvatarState("blockNonSelected", _refB, ab);
         asm.addElement(blockNonSelected);
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectHW, blockNonSelected, _refB);
         at.setGuard("runningHW> 0 ");
 
         for(String task: hwTasks) {
             as = ab.getAvatarSignalWithName("deactivate_" + task);
-            AvatarActionOnSignal deactivateHWWrite = new AvatarActionOnSignal("deactivate_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal deactivateHWWrite = new AvatarActionOnSignal("deactivate_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(deactivateHWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, blockNonSelected, deactivateHWWrite, _refB);
             at = makeAvatarEmptyTransitionBetween(ab, asm, deactivateHWWrite, blockNonSelected, _refB);
@@ -1400,14 +1398,14 @@ public class AvatarBlockTemplate {
         //TraceManager.addDev("Main block: 1.5" );
 
         // startDR state
-        AvatarState startDR = new AvatarState("startDR", _refB);
+        AvatarState startDR = new AvatarState("startDR", _refB, ab);
         asm.addElement(startDR);
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectHW, startDR, _refB);
         //at.setGuard("(runningHW == 0) && (allocHW > 0)");
         at.setGuard("(runningHW == 0) && ((allocHW > 0) && (delayDR == false))");
-        AvatarActionOnSignal startDRWrite = new AvatarActionOnSignal("startDRWrite", startDRSig, _refB);
+        AvatarActionOnSignal startDRWrite = new AvatarActionOnSignal("startDRWrite", startDRSig, _refB, ab);
         asm.addElement(startDRWrite);
-        AvatarActionOnSignal startDRWriteClock = new AvatarActionOnSignal("startDRWrite", selectDR, _refB);
+        AvatarActionOnSignal startDRWriteClock = new AvatarActionOnSignal("startDRWrite", selectDR, _refB, ab);
         startDRWriteClock.addValue("durationDR");
         asm.addElement(startDRWriteClock);
         at = makeAvatarEmptyTransitionBetween(ab, asm, startDR, startDRWrite, _refB);
@@ -1418,14 +1416,14 @@ public class AvatarBlockTemplate {
         at.addAction("delayDR = true");
 
         // unblockAllHWP state
-        AvatarState unblockAllHWP = new AvatarState("unblockAllHWP", _refB);
+        AvatarState unblockAllHWP = new AvatarState("unblockAllHWP", _refB, ab);
         asm.addElement(unblockAllHWP);
         at = makeAvatarEmptyTransitionBetween(ab, asm, startDRWriteClock, unblockAllHWP, _refB);
 
 
         for(String task: hwTasks) {
             as = ab.getAvatarSignalWithName("reactivate_" + task);
-            AvatarActionOnSignal reactivateHWWrite = new AvatarActionOnSignal("reactivate_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal reactivateHWWrite = new AvatarActionOnSignal("reactivate_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(reactivateHWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, unblockAllHWP, reactivateHWWrite, _refB);
             at = makeAvatarEmptyTransitionBetween(ab, asm, reactivateHWWrite, unblockAllHWP, _refB);
@@ -1433,7 +1431,7 @@ public class AvatarBlockTemplate {
 
         //TraceManager.addDev("Main block: 2" );
         // makeStep state
-        AvatarState makeStep = new AvatarState("makeStep", _refB);
+        AvatarState makeStep = new AvatarState("makeStep", _refB, ab);
         asm.addElement(makeStep);
 
         at = makeAvatarEmptyTransitionBetween(ab, asm, selectSW, makeStep, _refB);
@@ -1457,11 +1455,11 @@ public class AvatarBlockTemplate {
 
         //TraceManager.addDev("Main block: 3" );
         // makeSteps state
-        AvatarState makeSteps = new AvatarState("makeSteps", _refB);
+        AvatarState makeSteps = new AvatarState("makeSteps", _refB, ab);
         asm.addElement(makeSteps);
-        AvatarState verifyStep = new AvatarState("verifyStep", _refB);
+        AvatarState verifyStep = new AvatarState("verifyStep", _refB, ab);
         asm.addElement(verifyStep);
-        AvatarActionOnSignal tickRead = new AvatarActionOnSignal(tick.getSignalName(), tick, _refB);
+        AvatarActionOnSignal tickRead = new AvatarActionOnSignal(tick.getSignalName(), tick, _refB, ab);
         tickRead.addValue("step");
         asm.addElement(tickRead);
         at = makeAvatarEmptyTransitionBetween(ab, asm, makeStep, tickRead, _refB);
@@ -1471,14 +1469,14 @@ public class AvatarBlockTemplate {
         at = makeAvatarEmptyTransitionBetween(ab, asm, verifyStep, makeSteps, _refB);
         at.setGuard("else");
 
-        AvatarStopState stopState = new AvatarStopState("stopState", _refB);
+        AvatarStopState stopState = new AvatarStopState("stopState", _refB, ab);
         asm.addElement(stopState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, verifyStep, stopState, _refB);
         at.setGuard("(step == 0) || (step>5000)");
 
         for(String task: swTasks) {
             as = ab.getAvatarSignalWithName("step_" + task);
-            AvatarActionOnSignal stepSWWrite = new AvatarActionOnSignal("step_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal stepSWWrite = new AvatarActionOnSignal("step_" + as.getSignalName(), as, _refB, ab);
             stepSWWrite.addValue("step");
             asm.addElement(stepSWWrite);
             at = makeAvatarEmptyTransitionBetween(ab, asm, makeSteps, stepSWWrite, _refB);
@@ -1487,7 +1485,7 @@ public class AvatarBlockTemplate {
 
         for(String task: hwTasks) {
             as = ab.getAvatarSignalWithName("step_" + task);
-            AvatarActionOnSignal stepHWWrite = new AvatarActionOnSignal("step_" + as.getSignalName(), as, _refB);
+            AvatarActionOnSignal stepHWWrite = new AvatarActionOnSignal("step_" + as.getSignalName(), as, _refB, ab);
             asm.addElement(stepHWWrite);
             stepHWWrite.addValue("step");
             at = makeAvatarEmptyTransitionBetween(ab, asm, makeSteps, stepHWWrite, _refB);
@@ -1496,20 +1494,20 @@ public class AvatarBlockTemplate {
         //TraceManager.addDev("Main block: 3" );
 
         // nothing is running? Stop now!
-        AvatarStopState assDeadlock = new AvatarStopState("deadlockstate", _refB);
+        AvatarStopState assDeadlock = new AvatarStopState("deadlockstate", _refB, ab);
         asm.addElement(assDeadlock);
         at = makeAvatarEmptyTransitionBetween(ab, asm, makeSteps, assDeadlock, _refB);
         at.setGuard("(runningHW == 0) && ((allocCore == 0) && (currentDR == 0))");
 
         // waitForSteps state
-        AvatarState waitForSteps = new AvatarState("waitForSteps", _refB);
+        AvatarState waitForSteps = new AvatarState("waitForSteps", _refB, ab);
         asm.addElement(waitForSteps);
 
         at = makeAvatarEmptyTransitionBetween(ab, asm, makeSteps, waitForSteps, _refB);
         at.setDelays("1", "1");
         at.setGuard("currentDR == 0");
 
-        AvatarState DRAnalysisSState = new AvatarState("DRAnalysisSState", _refB);
+        AvatarState DRAnalysisSState = new AvatarState("DRAnalysisSState", _refB, ab);
         asm.addElement(DRAnalysisSState);
         at = makeAvatarEmptyTransitionBetween(ab, asm, makeSteps, DRAnalysisSState, _refB);
         at.setDelays("1", "1");
@@ -1520,9 +1518,9 @@ public class AvatarBlockTemplate {
         at.setGuard("currentDR > 0");
 
 
-        AvatarActionOnSignal drStopWrite = new AvatarActionOnSignal("drStopWrite", stopDRSig, _refB);
+        AvatarActionOnSignal drStopWrite = new AvatarActionOnSignal("drStopWrite", stopDRSig, _refB, ab);
         asm.addElement(drStopWrite);
-        AvatarActionOnSignal stopDRWriteClock = new AvatarActionOnSignal("stopDRWriteClock", setDR, _refB);
+        AvatarActionOnSignal stopDRWriteClock = new AvatarActionOnSignal("stopDRWriteClock", setDR, _refB, ab);
         stopDRWriteClock.addValue("maxStep");
         asm.addElement(stopDRWriteClock);
         at = makeAvatarEmptyTransitionBetween(ab, asm, DRAnalysisSState, drStopWrite, _refB);
diff --git a/src/main/java/avatartranslator/AvatarCompactDependencyGraph.java b/src/main/java/avatartranslator/AvatarCompactDependencyGraph.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b0efc82a696f484bbd23a777bc82bd88e6a0dba
--- /dev/null
+++ b/src/main/java/avatartranslator/AvatarCompactDependencyGraph.java
@@ -0,0 +1,998 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package avatartranslator;
+
+
+import graph.AUTGraph;
+import graph.AUTState;
+import graph.AUTTransition;
+import myutil.TraceManager;
+import org.apache.batik.anim.timing.Trace;
+import org.jfree.data.json.impl.JSONObject;
+import ui.TGComponent;
+
+import java.util.*;
+
+/**
+ * Class AvatarCompactDependencyGraph
+ * Creation: 27/06/2023
+ *
+ * @author Ludovic APVRILLE
+ * @version 1.0 27/06/2023
+ */
+public class AvatarCompactDependencyGraph {
+    private AUTGraph graph;
+    private int id = 0;
+
+    public static int ID = 0;
+
+    public AvatarCompactDependencyGraph() {
+        //fromStates = new HashMap<>();
+    }
+
+    public AUTGraph getGraph() {
+        return graph;
+    }
+
+    public void setGraph(AUTGraph _g) {
+        graph = _g;
+    }
+
+    /*public void setRefs(HashMap<AvatarElement, ArrayList<AUTState>> _toStates, HashMap<AUTState, AvatarElement> _fromStates) {
+        toStates = _toStates;
+        fromStates = _fromStates;
+    }*/
+
+    public AUTState getFirstStateWithReference(AvatarElement _ae) {
+        return graph.getFirstStateWithReference(_ae);
+    }
+
+    public void buildGraph(AvatarSpecification _avspec, boolean withID) {
+
+
+        graph = new AUTGraph();
+        id = 0;
+
+        ArrayList<AUTState> states = new ArrayList<>();
+        ArrayList<AUTTransition> transitions = new ArrayList<>();
+        // First build state machines, and then link them on RD / WR operators
+
+        for (AvatarBlock block : _avspec.getListOfBlocks()) {
+            AvatarStateMachine asm = block.getStateMachine();
+            if (!(asm.isBasicStateMachine())) {
+                AvatarStartState ass = asm.getStartState();
+
+                // Make general structure
+                makeCompactDependencyGraphForAvatarElement(block, ass, null, null, states, transitions, withID, null);
+            }
+        }
+
+        ArrayList<AUTState> newStates = new ArrayList<>();
+        HashSet<AUTState> oldStatesRemove = new HashSet<>();
+
+        HashSet<AUTState> previousRead = new HashSet<>();
+
+        // Connect everything i.e. writers to all potential readers
+        // For each writing state, we draw a transition to all possible corresponding readers
+        // Double direction if synchronous
+        for (AUTState state : states) {
+            AvatarActionOnSignal aaos = getAvatarActionOnSignalInReferences(state);
+            if (aaos != null) {
+
+                // Find previous of state
+                AUTTransition previousTr = state.inTransitions.get(0);
+                int previousId = previousTr.origin;
+                AUTState previousState = null;
+                for (AUTState st : states) {
+                    if (st.id == previousId) {
+                        previousState = st;
+                        break;
+                    }
+                }
+
+                if (previousState != null) {
+                    AvatarSignal signal = aaos.getSignal();
+                    boolean found = false;
+
+                    AUTTransition previousDTr = null;
+                    AUTState previousStateD = null;
+
+                    if (signal.isOut()) {
+                        // Write operation
+                        AvatarSignal correspondingSig = _avspec.getCorrespondingSignal(signal);
+                        //TraceManager.addDev("Corresponding signal=" + correspondingSig);
+                        if (correspondingSig != null) {
+                            for (AUTState stateDestination : states) {
+                                AvatarActionOnSignal aaosD = getAvatarActionOnSignalInReferences(stateDestination);
+                                if (aaosD != null) {
+                                    if (aaosD.getSignal() == correspondingSig) {
+                                        // Found relation
+                                        //TraceManager.addDev("Found relation!");
+                                        found = true;
+                                        oldStatesRemove.add(state);
+
+                                        // Create a new state dedicated to this relation
+                                        AUTState newState = new AUTState(id);
+                                        newState.referenceObject = state.referenceObject;
+                                        newState.info = state.info;
+
+                                        newStates.add(newState);
+                                        id++;
+
+                                        AUTTransition tr = new AUTTransition(previousId, "", newState.id);
+                                        transitions.add(tr);
+                                        previousState.addOutTransition(tr);
+                                        newState.addInTransition(tr);
+
+                                        tr = new AUTTransition(newState.id, "", state.id);
+                                        transitions.add(tr);
+                                        newState.addOutTransition(tr);
+                                        state.addInTransition(tr);
+
+                                        // We must do the same for the destination : create a state before
+
+                                        // Find previous of state
+                                        previousDTr = stateDestination.inTransitions.get(0);
+                                        int previousDId = previousDTr.origin;
+                                        previousStateD = null;
+                                        for (AUTState st : states) {
+                                            if (st.id == previousDId) {
+                                                previousStateD = st;
+                                                break;
+                                            }
+                                        }
+
+                                        if (previousStateD != null) {
+                                            oldStatesRemove.add(stateDestination);
+                                            previousRead.add(previousStateD);
+
+                                            AUTState newStateD = new AUTState(id);
+                                            newStateD.referenceObject = stateDestination.referenceObject;
+                                            newStateD.info = stateDestination.info;
+                                            newStates.add(newStateD);
+                                            id++;
+
+                                            // linking the new state to the correct states
+
+                                            tr = new AUTTransition(previousDId, "", newStateD.id);
+                                            transitions.add(tr);
+                                            previousStateD.addOutTransition(tr);
+                                            newStateD.addInTransition(tr);
+
+                                            tr = new AUTTransition(newStateD.id, "", stateDestination.id);
+                                            transitions.add(tr);
+                                            newStateD.addOutTransition(tr);
+                                            stateDestination.addInTransition(tr);
+
+
+                                            // Links between the two new states
+
+                                            tr = new AUTTransition(newState.id, "", newStateD.id);
+                                            tr.addTag(AUTGraph.COMM_TAG);
+                                            transitions.add(tr);
+                                            newState.addOutTransition(tr);
+                                            newStateD.addInTransition(tr);
+                                            AvatarRelation ar = _avspec.getAvatarRelationWithSignal(correspondingSig);
+
+                                            if (!(ar.isAsynchronous())) {
+                                                tr = new AUTTransition(newStateD.id, "", newState.id);
+                                                tr.addTag(AUTGraph.COMM_TAG);
+                                                transitions.add(tr);
+                                                newStateD.addOutTransition(tr);
+                                                newState.addInTransition(tr);
+                                            }
+
+                                            // We can remove the transition between the prev and the first sttae of this read
+
+
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    if (found) {
+                        // We have to remove the old transition
+                        if (state.inTransitions.size() > 0) {
+                            TraceManager.addDev("Found: we have to remove the wrong transition tr=" + state.inTransitions.get(0).toString());
+                            previousState.outTransitions.remove(0);
+                            state.inTransitions.remove(0);
+                            transitions.remove(previousTr);
+                        } else {
+                            TraceManager.addDev("No inTransition for state " + state.id);
+                        }
+
+                    }
+                }
+            }
+        }
+
+
+        // We remove all transitions from previous to the first next in read operations
+        for (AUTState state : previousRead) {
+            if (state.outTransitions.size() > 0) {
+                AUTTransition tr = state.outTransitions.get(0);
+                AUTState otherState = states.get(tr.destination);
+                state.outTransitions.remove(0);
+                otherState.inTransitions.remove(0);
+                transitions.remove(tr);
+            }
+        }
+
+        for (AUTState state : newStates) {
+            states.add(state);
+        }
+
+        for (AUTState state : oldStatesRemove) {
+
+            ArrayList<AUTTransition> newTR = new ArrayList<>();
+            for (AUTTransition atPrev : state.inTransitions) {
+                for (int i = 0; i < state.outTransitions.size(); i++) {
+                    AUTTransition tr = new AUTTransition(atPrev.origin,
+                            state.outTransitions.get(i).transition, state.outTransitions.get(i).destination);
+                    newTR.add(tr);
+                    state.outTransitions.get(i);
+                }
+            }
+
+            AUTState sTmp;
+            for (AUTTransition atPrev : state.outTransitions) {
+                transitions.remove(atPrev);
+                sTmp = states.get(atPrev.destination);
+                sTmp.removeInTransition(atPrev);
+            }
+
+            for (AUTTransition atPrev : state.inTransitions) {
+                transitions.remove(atPrev);
+                sTmp = states.get(atPrev.origin);
+                sTmp.removeOutTransition(atPrev);
+            }
+
+            for (AUTTransition tr : newTR) {
+                transitions.add(tr);
+                sTmp = states.get(tr.destination);
+                sTmp.addInTransition(tr);
+                sTmp = states.get(tr.origin);
+                sTmp.addOutTransition(tr);
+            }
+        }
+
+        for (AUTState state : oldStatesRemove) {
+            states.remove(state);
+        }
+
+        int cpt = 0;
+
+        cpt = 0;
+        for (AUTState state : states) {
+            if (cpt != state.id) {
+                // We now have to compact state ids
+                // We place the last state at index position
+                // We  accordingly modify transitions
+                // Nothing to do if state index is already at last position
+                state.id = cpt;
+                for (AUTTransition atIn : state.inTransitions) {
+                    atIn.destination = cpt;
+                }
+                for (AUTTransition atOut : state.outTransitions) {
+                    atOut.origin = cpt;
+                }
+            }
+            cpt++;
+        }
+
+        cpt = 0;
+
+
+        /*for(AUTState state: states) {
+            TraceManager.addDev("" + cpt + ": state " + state.id + " / " + state.info + " / " + state);
+            cpt ++;
+        }*/
+
+        // Optimization: remove states representing empty transitions
+        ArrayList<AUTState> toBeRemoved = new ArrayList<>();
+        for (AUTState state : states) {
+            //TraceManager.addDev("Testing " + state.referenceObject.toString());
+            if (state.referenceObject instanceof AvatarTransition) {
+                AvatarTransition at = (AvatarTransition) state.referenceObject;
+                TraceManager.addDev("Found  transition ID: " + at.getID());
+                if (at.isEmpty()) {
+                    TraceManager.addDev("Found empty transition ID: " + at.getID());
+                    if (!at.isGuarded()) {
+                        TraceManager.addDev("Not guarded ID: " + at.getID());
+                        if (at.getNexts().size() > 0) {
+                            //if (state.outTransitions.size() == 1) {
+                            // State can be removed
+
+                            // We can update the transitions
+                            // We assume that there is only one out transition
+
+                            toBeRemoved.add(state);
+                            ArrayList<AUTTransition> newTR = new ArrayList<>();
+                            for (AUTTransition atPrev : state.inTransitions) {
+                                for (int i = 0; i < state.outTransitions.size(); i++) {
+                                    AUTTransition tr = new AUTTransition(atPrev.origin,
+                                            state.outTransitions.get(i).transition, state.outTransitions.get(i).destination);
+                                    newTR.add(tr);
+                                    state.outTransitions.get(i);
+                                }
+                            }
+
+                            AUTState sTmp;
+                            for (AUTTransition atPrev : state.outTransitions) {
+                                transitions.remove(atPrev);
+                                sTmp = states.get(atPrev.destination);
+                                sTmp.removeInTransition(atPrev);
+                            }
+
+                            for (AUTTransition atPrev : state.inTransitions) {
+                                transitions.remove(atPrev);
+                                sTmp = states.get(atPrev.origin);
+                                sTmp.removeOutTransition(atPrev);
+                            }
+
+                            for (AUTTransition tr : newTR) {
+                                transitions.add(tr);
+                                sTmp = states.get(tr.destination);
+                                sTmp.addInTransition(tr);
+                                sTmp = states.get(tr.origin);
+                                sTmp.addOutTransition(tr);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+        for (AUTState state : toBeRemoved) {
+            states.remove(state);
+        }
+
+
+        // We update all ids;
+        cpt = 0;
+        for (AUTState state : states) {
+            if (cpt != state.id) {
+                // We now have to compact state ids
+                // We place the last state at index position
+                // We  accordingly modify transitions
+                // Nothing to do if state index is already at last position
+                state.id = cpt;
+                for (AUTTransition atIn : state.inTransitions) {
+                    atIn.destination = cpt;
+                }
+                for (AUTTransition atOut : state.outTransitions) {
+                    atOut.origin = cpt;
+                }
+            }
+            cpt++;
+        }
+
+        cpt = 0;
+        /*for(AUTState state: states) {
+            TraceManager.addDev("" + cpt + ": state " + state.id + " / " + state.info + " / " + state);
+            cpt ++;
+        }*/
+
+
+        // Rework Avatar Actions on Signals if multiple, synchros for the same AAOS
+
+        // Make the graph
+        graph = new AUTGraph(states, transitions);
+
+
+    }
+
+    @SuppressWarnings("unchecked")
+    private void addReferenceElement(AUTState _state,  AvatarStateMachineElement _elt) {
+        ArrayList<AvatarStateMachineElement> refs = null;
+        if ( (_state.referenceObject == null) ) {
+            refs = new ArrayList<>();
+            _state.referenceObject = refs;
+        } else {
+            refs = (ArrayList<AvatarStateMachineElement> ) (_state.referenceObject);
+        }
+        refs.add(_elt);
+    }
+
+    @SuppressWarnings("unchecked")
+    private boolean hasReferenceObject(AUTState _state,  AvatarStateMachineElement _elt) {
+        if (_state.referenceObject == null) {
+            return false;
+        }
+        ArrayList<AvatarStateMachineElement> refs = (ArrayList<AvatarStateMachineElement> )(_state.referenceObject);
+        return refs.contains(_elt);
+    }
+
+    @SuppressWarnings("unchecked")
+    private AvatarActionOnSignal getAvatarActionOnSignalInReferences(AUTState _state) {
+        if (_state.referenceObject == null) {
+            return null;
+        }
+        ArrayList<AvatarStateMachineElement> refs = (ArrayList<AvatarStateMachineElement> )(_state.referenceObject);
+        for(AvatarStateMachineElement elt: refs) {
+            if (elt instanceof AvatarActionOnSignal) {
+                return (AvatarActionOnSignal)elt;
+            }
+        }
+        return null;
+    }
+
+    @SuppressWarnings("unchecked")
+    private AvatarStateMachineElement getFirstReferenceObjectFromState(AUTState _state) {
+        if (_state.referenceObject == null) {
+            return null;
+        }
+        ArrayList<AvatarStateMachineElement> refs = (ArrayList<AvatarStateMachineElement> )(_state.referenceObject);
+        if (refs.size() > 0) {
+            return refs.get(0);
+        }
+        return null;
+    }
+
+    @SuppressWarnings("unchecked")
+    private AvatarStateMachineElement getLastReferenceObjectFromState(AUTState _state) {
+        if (_state.referenceObject == null) {
+            return null;
+        }
+        ArrayList<AvatarStateMachineElement> refs = (ArrayList<AvatarStateMachineElement> )(_state.referenceObject);
+        if (refs.size() > 0) {
+            return refs.get(refs.size()-1);
+        }
+        return null;
+    }
+
+
+
+
+    private AUTState makeCompactDependencyGraphForAvatarElement(AvatarBlock bl, AvatarStateMachineElement _elt,
+                                                         AUTState _previousS, AvatarStateMachineElement _previousE,
+                                                         ArrayList<AUTState> _states,
+                                                         ArrayList<AUTTransition> _transitions, boolean withID,
+                                                                AvatarTransition _previousAvatarTransition) {
+        if (_elt == null) {
+            return null;
+        }
+
+        // Already a state for a next?
+        AUTState stateN = null;
+        for (AUTState st : _states) {
+            if (hasReferenceObject(st, _elt)) {
+                stateN = st;
+                TraceManager.addDev("Found known state machine element for " + _elt.getExtendedName());
+                break;
+            }
+        }
+        //AUTState stateN = getFirstStateFor(eltN);
+        if (stateN != null) {
+            AUTTransition tr = new AUTTransition(_previousS.id, "", stateN.id);
+            _transitions.add(tr);
+            _previousS.addOutTransition(tr);
+            stateN.addInTransition(tr);
+            return stateN;
+        }
+
+        TraceManager.addDev("Handling sme: " + _elt.getName() + "/" + _elt.getExtendedName());
+
+        if ( (_elt instanceof AvatarTransition) && (_elt.getNext(0) instanceof AvatarActionOnSignal)) {
+            if (_elt.getNext(0) != null) {
+                return makeCompactDependencyGraphForAvatarElement(bl, _elt.getNext(0), _previousS, _elt, _states, _transitions, withID,
+                        (AvatarTransition) _elt);
+            } else {
+                return _previousS;
+            }
+        }
+
+        if (_elt instanceof AvatarTransition) {
+            AvatarTransition at = (AvatarTransition) _elt;
+            if (at.isEmpty()) {
+                if (_elt.getNext(0) != null) {
+                    return makeCompactDependencyGraphForAvatarElement(bl, _elt.getNext(0), _previousS, _elt, _states, _transitions, withID,
+                            null);
+                } else {
+                    return _previousS;
+                }
+            }
+        }
+
+        //
+        // Find
+        AUTState state = new AUTState(id);
+        _states.add(state);
+        if (_previousAvatarTransition != null) {
+            addReferenceElement(state, _previousAvatarTransition);
+        }
+        addReferenceElement(state, _elt);
+        if (withID) {
+            state.info = _elt.toStringExtendedID();
+        } else {
+            state.info = bl.getName() + " / " + _elt.getExtendedName();
+        }
+
+        if (_elt.referenceObject instanceof ElementWithNew) {
+            if (((ElementWithNew) (_elt.referenceObject)).isNew()) {
+                state.info += " (New)";
+            }
+        }
+
+        //putState(_elt, state);
+
+        //fromStates.put(state, _elt);
+        id++;
+
+        if (_previousE != null) {
+            AUTTransition tr = new AUTTransition(_previousS.id, "", state.id);
+            _transitions.add(tr);
+            _previousS.addOutTransition(tr);
+            state.addInTransition(tr);
+        } else {
+            state.isOrigin = true;
+        }
+
+        // Handling all nexts
+        //if (!(_elt instanceof AvatarActionOnSignal)) {
+        for (AvatarStateMachineElement eltN : _elt.getNexts()) {
+            makeCompactDependencyGraphForAvatarElement(bl, eltN, state, _elt, _states, _transitions, withID, null);
+        }
+        //}
+        return state;
+    }
+
+
+    @SuppressWarnings("unchecked")
+    public AvatarCompactDependencyGraph clone() {
+        AvatarCompactDependencyGraph adg = new AvatarCompactDependencyGraph();
+        AUTGraph g = graph.cloneMe();
+        adg.setGraph(g);
+
+        //HashMap<AvatarElement, ArrayList<AUTState>> newToStates = new HashMap<>();
+        //HashMap<AUTState, AvatarElement> newFromStates = new HashMap<>();
+
+        //adg.setRefs(newToStates, newFromStates);
+
+        // Filling states references
+        /*for (AvatarElement ae : toStates.keySet()) {
+            ArrayList<AUTState> list  = toStates.get(ae);
+
+            ArrayList<AUTState> newList = new ArrayList<>();
+            for(AUTState oldS: list) {
+                // We must find the corresponding state in the new graph
+                AUTState newState = g.getState(oldS.id);
+                newList.add(newState);
+                newFromStates.put(newState, ae);
+            }
+            if (newList.size() > 0) {
+                newToStates.put(ae, newList);
+            }
+        }*/
+
+
+        return adg;
+    }
+
+    public AvatarCompactDependencyGraph reduceGraphBefore(ArrayList<AvatarElement> eltsOfInterest) {
+        AvatarCompactDependencyGraph result = clone();
+
+        /*TraceManager.addDev("Size of original graph: s" + graph.getNbOfStates() + " t" + graph.getNbOfTransitions());
+        TraceManager.addDev("Size of graph after clone: s" + result.graph.getNbOfStates() + " t" + result.graph.getNbOfTransitions());
+
+        TraceManager.addDev("old graph:\n" + graph.toStringAll() + "\n");
+
+        TraceManager.addDev("Cloned graph:\n" + result.graph.toStringAll() + "\n");*/
+
+        /*TraceManager.addDev("Size of original graph toStates:" + toStates.size());
+        TraceManager.addDev("Size of original graph fromStates:" + fromStates.size());
+        TraceManager.addDev("Size of cloned graph toStates:" + result.toStates.size());
+        TraceManager.addDev("Size of cloned graph fromStates:" + result.fromStates.size());*/
+
+        // For each state, we figure out whether if it is linked to go to the elt states
+        // or if they are after the elts.
+
+        HashSet<AUTState> beforeStates = new HashSet<>();
+
+
+        // We take each elt one after the other and we complete the after or before states
+        for (AvatarElement ae : eltsOfInterest) {
+            //TraceManager.addDev("Considering elt:" + ae.getName());
+            Object ref = ae.getReferenceObject();
+            if (ref != null) {
+                // Finding the state referencing o
+                AUTState stateOfInterest = null;
+                for (AUTState s : graph.getStates()) {
+                    AvatarElement elt = (AvatarElement) s.referenceObject;
+                    if (elt.getReferenceObject() == ref) {
+                        stateOfInterest = s;
+                        break;
+                    }
+                }
+
+                if (stateOfInterest != null) {
+                    //TraceManager.addDev("Has a state of interest: " + stateOfInterest.id);
+                    for (AUTState state : graph.getStates()) {
+                        if (state == stateOfInterest) {
+                            beforeStates.add(result.graph.getState(state.id));
+                        } else {
+                            /*if (graph.hasPathFromTo(state.id, stateOfInterest.id)) {
+                                beforeStates.add(result.graph.getState(state.id));
+                            }*/
+                            if (graph.canGoFromTo(state.id, stateOfInterest.id)) {
+                                beforeStates.add(result.graph.getState(state.id));
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        TraceManager.addDev("Size of before: " + beforeStates.size());
+
+        // We now have to figure out which states have to be removed
+        ArrayList<AUTState> toRemoveStates = new ArrayList<>();
+        for (AUTState st : result.graph.getStates()) {
+            if (!beforeStates.contains(st)) {
+                toRemoveStates.add(st);
+            }
+        }
+
+        TraceManager.addDev("Size of remove: " + toRemoveStates.size());
+
+        result.graph.removeStates(toRemoveStates);
+        result.removeReferencesOf(toRemoveStates);
+
+        /*TraceManager.addDev("Size of graph after remove: s" + result.graph.getNbOfStates() + " t" + result.graph.getNbOfTransitions());
+        TraceManager.addDev("New graph:\n" +result.graph.toStringAll() + "\n");*/
+
+
+        // We have to update state references
+
+
+        return result;
+
+    }
+
+    public AvatarSpecification makeAvatarSpecification() {
+        ID = 0;
+
+        AvatarSpecification newAvspec = new AvatarSpecification("from CDG", this);
+
+        // We look for start states: we create the block with attributes / signals etc.
+        // We take from the other avatar spec of relations
+
+        // We create all blocks
+        for (AUTState st : graph.getStates()) {
+            if (st.getNbInTransitions() == 0) {
+                // This is a start state
+                AvatarStateMachineElement asme = getFirstReferenceObjectFromState(st);
+                if ((asme != null) && (asme instanceof AvatarStartState)) {
+                    AvatarStateMachineOwner asmo = asme.getOwner();
+
+                    if ((asmo != null) && (asmo instanceof AvatarBlock)) {
+                        AvatarBlock ab = (AvatarBlock) asmo;
+                        AvatarBlock newBlock = new AvatarBlock(ab.getName(), newAvspec, this);
+                        TraceManager.addDev("Creating new block: " + newBlock.getName() + " from block " + ab.getName());
+                        newAvspec.addBlock(newBlock);
+                        for (AvatarAttribute aa : ab.getAttributes()) {
+                            AvatarAttribute newA = aa.advancedClone(newBlock);
+                            newA.clearReferenceObject();
+                            newA.setReferenceObject(this);
+                            newBlock.addAttribute(newA);
+                            TraceManager.addDev("\t Adding attribute: " + newA.getName());
+                        }
+                        for (AvatarMethod am : ab.getMethods()) {
+                            AvatarMethod newAm = am.advancedClone(newBlock);
+                            newAm.clearReferenceObject();
+                            newAm.setReferenceObject(this);
+                            newBlock.addMethod(newAm);
+                            TraceManager.addDev("\t Adding method: " + newAm.getName());
+                        }
+                        for (AvatarSignal as : ab.getSignals()) {
+                            AvatarSignal newAs = as.advancedClone(newBlock);
+                            newAs.clearReferenceObject();
+                            newAs.setReferenceObject(this);
+                            newBlock.addSignal(newAs);
+                            TraceManager.addDev("\t Adding signal: " + newAs.getName());
+                        }
+                    }
+                }
+            }
+        }
+
+        // We have to ensure the block hierarchy
+        for (AUTState st : graph.getStates()) {
+            if (st.getNbInTransitions() == 0) {
+                // This is a start state
+                AvatarStateMachineElement asme = getFirstReferenceObjectFromState(st);
+                if ((asme != null) && (asme instanceof AvatarStartState)) {
+                    AvatarStateMachineOwner asmo = asme.getOwner();
+
+                    if ((asmo != null) && (asmo instanceof AvatarBlock)) {
+                        AvatarBlock ab = (AvatarBlock) asmo;
+
+
+                        AvatarBlock father = ab.getFather();
+                        if (father != null) {
+                            AvatarBlock newSon = newAvspec.getBlockWithName(ab.getName());
+                            AvatarBlock newFather = newAvspec.getBlockWithName(father.getName());
+
+                            if (newSon != null && newFather != null) {
+                                newSon.setFather(newFather);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        // We make the relations between blocks
+        for (AUTState st : graph.getStates()) {
+            if (st.getNbInTransitions() == 0) {
+                // This is a start state
+                AvatarStateMachineElement asme = getFirstReferenceObjectFromState(st);
+                if ((asme != null) && (asme instanceof AvatarStartState)) {
+                    AvatarStateMachineOwner asmo = asme.getOwner();
+
+                    if ((asmo != null) && (asmo instanceof AvatarBlock)) {
+                        AvatarBlock ab = (AvatarBlock) asmo;
+                        AvatarBlock newBlock = newAvspec.getBlockWithName(ab.getName());
+                        if (newBlock != null) {
+                            // We add relations for which the two related blocks have been defined
+                            AvatarSpecification oldSpec = asmo.getAvatarSpecification();
+                            if (oldSpec != null) {
+                                for (AvatarRelation ar: oldSpec.getRelations()) {
+                                    boolean b1 = ar.getBlock1().getName().compareTo(newBlock.getName()) == 0;
+
+                                    if (b1) {
+                                        String nameOther = ar.getBlock2().getName();
+
+                                        //TraceManager.addDev("Looking for relation with blocks " + newBlock.getName() + " and " + nameOther);
+                                        AvatarBlock bOther = newAvspec.getBlockWithName(nameOther);
+                                        //TraceManager.addDev("Checking bOther");
+                                        if (bOther != null) {
+
+                                            HashMap<AvatarBlock, AvatarBlock> blMap = new HashMap<AvatarBlock, AvatarBlock>();
+                                            blMap.put(ar.getBlock1(), newBlock);
+                                            blMap.put(ar.getBlock2(), bOther);
+                                            AvatarRelation newAr = ar.advancedClone(blMap);
+                                            //TraceManager.addDev("Cloning the relation");
+                                            if (newAr != null) {
+                                                newAr.setReferenceObject(this);
+                                                //TraceManager.addDev("Non null relation");
+                                                newAvspec.addRelation(newAr);
+                                            } else {
+                                                TraceManager.addDev("Null clone");
+                                            }
+                                        }
+                                    }
+
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+        // We make the state machines
+        for (AUTState st : graph.getStates()) {
+            if (st.getNbInTransitions() == 0) {
+                // This is a start state
+                AvatarStateMachineElement asme = getFirstReferenceObjectFromState(st);
+                if ((asme != null) && (asme instanceof AvatarStartState)) {
+                    AvatarStateMachineOwner asmo = asme.getOwner();
+
+                    if ((asmo != null) && (asmo instanceof AvatarBlock)) {
+                        AvatarBlock ab = (AvatarBlock) asmo;
+                        AvatarBlock newBlock = newAvspec.getBlockWithName(ab.getName());
+                        if (newBlock != null) {
+
+                            // We start from the start state to build the SMD
+                            makeASMFromState(newBlock, st, null, null);
+                        }
+                    }
+                }
+            }
+        }
+
+
+        if (newAvspec.removeDuplicatedTransitions()) {
+            TraceManager.addDev("Useless transitions were removed");
+        } else {
+            TraceManager.addDev("No duplicate transitions");
+        }
+
+        return newAvspec;
+
+
+    }
+
+    @SuppressWarnings("unchecked")
+    public void makeASMFromState(AvatarBlock _block, AUTState _currentState, AvatarStateMachineElement _previousE, HashMap<AUTState,
+            AvatarStateMachineElement> elementM) {
+        // Handling referenced elements
+
+        AvatarStateMachineElement asme = getLastReferenceObjectFromState(_currentState);
+        if (asme == null) {
+            return;
+        }
+
+        AvatarStateMachine asm = _block.getStateMachine();
+        if (asm == null) {
+            return;
+        }
+
+        if (elementM == null) {
+            elementM = new HashMap<>();
+        }
+
+
+        if (_previousE != null) {
+            //TraceManager.addDev("Considering state " + _currentState.id + " with previous=" + _previousE.getName());
+        } else {
+            //TraceManager.addDev("Considering state " + _currentState.id + " with no previous");
+        }
+        if (_currentState.referenceObject == null) {
+            //TraceManager.addDev("Nb of referenced elements of this state: 0");
+        } else {
+            Object o = _currentState.referenceObject;
+            try {
+                ArrayList<AvatarStateMachineElement> refs = (ArrayList<AvatarStateMachineElement>)(_currentState.referenceObject);
+                for(AvatarStateMachineElement refAsme: refs) {
+                    //TraceManager.addDev("\tref object:" + refAsme.getName() + " / " + refAsme.getClass().toString());
+                }
+            } catch (Exception e) {
+                TraceManager.addDev("No valid referenced object");
+            }
+        }
+
+        boolean mustLinkToPrevious = false;
+        AvatarStateMachineElement newE = null;
+        AvatarStateMachineElement newASME = elementM.get(_currentState);
+
+        if (asme instanceof AvatarStartState) {
+            AvatarStartState ass = new AvatarStartState(asme.getName() + ID++, this, _block);
+            asm.addElement(ass);
+            asm.setStartState(ass);
+            newE = ass;
+
+        } else if (asme instanceof AvatarState) {
+
+            if (newASME == null) {
+                AvatarState as = new AvatarState(asme.getName(), this, _block);
+                asm.addElement(as);
+                newE = as;
+            } else {
+                newE = newASME;
+            }
+            mustLinkToPrevious = true;
+
+
+        } else if (asme instanceof AvatarStopState) {
+            AvatarStopState ass = new AvatarStopState(asme.getName() + ID++, this, _block);
+            asm.addElement(ass);
+            newE = ass;
+            mustLinkToPrevious = true;
+
+        } else if (asme instanceof AvatarActionOnSignal) {
+            AvatarActionOnSignal aaos = ((AvatarActionOnSignal) asme).basicCloneMe(_block);
+            aaos.setName(aaos.getName() + ID++);
+            asm.addElement(aaos);
+            newE = aaos;
+
+            if (_previousE instanceof AvatarTransition) {
+                mustLinkToPrevious = true;
+            } else {
+                // Look at reference objects
+                AvatarStateMachineElement asmeFirst = getFirstReferenceObjectFromState(_currentState);
+                if (asmeFirst instanceof AvatarTransition) {
+                    //TraceManager.addDev("Transition before aaos found in referenced objects");
+                    AvatarTransition at = ((AvatarTransition) asmeFirst).cloneMe();
+                    at.removeAllNexts();
+                    at.setName("TransitionBeforeAAOS" + ID++);
+                    at.setReferenceObject(this);
+                    asm.addElement(at);
+                    _previousE.addNext(at);
+                    at.addNext(newE);
+                    mustLinkToPrevious = false;
+                } else {
+                    mustLinkToPrevious = true;
+                }
+            }
+
+        } else if (asme instanceof AvatarTransition) {
+            AvatarTransition at = ((AvatarTransition) asme).cloneMe();
+            at.removeAllNexts();
+            at.setName("TransitionInGraph" + ID++);
+            asme.setReferenceObject(this);
+            asm.addElement(at);
+            _previousE.addNext(at);
+            newE = at;
+        }
+
+        if (mustLinkToPrevious && _previousE != null && newE != null) {
+            if (_previousE instanceof AvatarTransition) {
+                _previousE.addNext(newE);
+            } else {
+                AvatarTransition at = new AvatarTransition(_block, "EmptyTransition" + ID++, this);
+                asm.addElement(at);
+                _previousE.addNext(at);
+                at.addNext(newE);
+            }
+        }
+
+        if (newE != null) {
+            elementM.put(_currentState, newE);
+        }
+
+        if ((newE != null) && (newASME == null)) {
+            // We have to handle the next states of currentState
+            for(AUTTransition tr: _currentState.outTransitions) {
+                if (!(tr.hasTag(AUTGraph.COMM_TAG))) {
+                    AUTState st = graph.getState(tr.destination);
+                    if (st != null) {
+                        makeASMFromState(_block, st, newE, elementM);
+                    }
+                }
+            }
+        }
+
+
+    }
+
+    public void removeReferencesOf(Collection<AUTState> _c) {
+        /*for (AUTState st : _c) {
+            fromStates.remove(st);
+        }
+
+        ArrayList<AvatarElement> toBeRemoved = new ArrayList<>();
+        for (AvatarElement ae : toStates.keySet()) {
+            if (_c.contains(toStates.get(ae))) {
+                toBeRemoved.add(ae);
+            }
+        }
+
+        for (AvatarElement ae : toBeRemoved) {
+            toStates.remove(ae);
+        }*/
+    }
+
+
+}
diff --git a/src/main/java/avatartranslator/AvatarDummyState.java b/src/main/java/avatartranslator/AvatarDummyState.java
index 3bd0f6623725fa38b72984437b1672c22fac7fe3..860bfb0ca56ca8226ba1aafec7e58ee254e4457c 100644
--- a/src/main/java/avatartranslator/AvatarDummyState.java
+++ b/src/main/java/avatartranslator/AvatarDummyState.java
@@ -12,7 +12,8 @@ package avatartranslator;
 public class AvatarDummyState extends AvatarState {
 
 	public AvatarDummyState( 	final String name,
-								final Object _referenceObject ) {
-		super( name + "_converted_to_dummy_state", _referenceObject );
+								final Object _referenceObject,
+								final AvatarStateMachineOwner _block) {
+		super( name + "_converted_to_dummy_state", _referenceObject, _block);
 	}
 }
diff --git a/src/main/java/avatartranslator/AvatarElement.java b/src/main/java/avatartranslator/AvatarElement.java
index c6af29ede2b65188522ea35ba3783b055d1e90c0..ab9abde53357bd0ddffd1f69e95b368b93b18b0e 100644
--- a/src/main/java/avatartranslator/AvatarElement.java
+++ b/src/main/java/avatartranslator/AvatarElement.java
@@ -78,6 +78,14 @@ public class AvatarElement implements NameChecker.NamedElement {
 
     }
 
+    public void clearReferenceObject() {
+        referenceObject = null;
+    }
+
+    public void setReferenceObject(Object _referenceObject) {
+        referenceObject = _referenceObject;
+    }
+
     public void addReferenceObject(Object _ref) {
         if (otherReferenceObjects == null) {
             otherReferenceObjects = new Vector<Object>();
diff --git a/src/main/java/avatartranslator/AvatarEmpty.java b/src/main/java/avatartranslator/AvatarEmpty.java
index 4ab48360c2cc4cf568740b5efdc80d2f7d6a4e86..fd9ab1f9914acd3d91f024ecbfbfa9fbf955e412 100644
--- a/src/main/java/avatartranslator/AvatarEmpty.java
+++ b/src/main/java/avatartranslator/AvatarEmpty.java
@@ -49,13 +49,10 @@ package avatartranslator;
  */
 public class AvatarEmpty extends AvatarStateMachineElement {
 
-
-    public AvatarEmpty(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarEmpty(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
     }
 
-
-
     public String getNiceName() {
         return "Empty " ;
     }
@@ -65,8 +62,7 @@ public class AvatarEmpty extends AvatarStateMachineElement {
     }
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-	 AvatarEmpty ar = new AvatarEmpty(getName() + "_clone", getReferenceObject());
-
+	 AvatarEmpty ar = new AvatarEmpty(getName() + "_clone", getReferenceObject(), _block);
 
 	 return ar;
     }
diff --git a/src/main/java/avatartranslator/AvatarExpireTimer.java b/src/main/java/avatartranslator/AvatarExpireTimer.java
index 680fc475f6a2a6756ba8c33fa39dfea269523f08..f9b319bb7f7cd7c5d63ddd810e49624cfd3956f5 100644
--- a/src/main/java/avatartranslator/AvatarExpireTimer.java
+++ b/src/main/java/avatartranslator/AvatarExpireTimer.java
@@ -49,12 +49,13 @@ package avatartranslator;
  */
 public class AvatarExpireTimer extends AvatarTimerOperator {
 	
-    public AvatarExpireTimer(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarExpireTimer(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+
+		super(_name, _referenceObject, _block);
     }
 	
 	public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-		AvatarExpireTimer aet = new AvatarExpireTimer(getName(), getReferenceObject());
+		AvatarExpireTimer aet = new AvatarExpireTimer(getName(), getReferenceObject(), _block);
 		aet.setTimer(getTimer());
 		return aet;
 	}
diff --git a/src/main/java/avatartranslator/AvatarLibraryFunction.java b/src/main/java/avatartranslator/AvatarLibraryFunction.java
index 6d19b4849af32133e7b9221a981884ac77ed451e..b5ed6a9d841dc6e15e4fc7797d938de6383424a7 100644
--- a/src/main/java/avatartranslator/AvatarLibraryFunction.java
+++ b/src/main/java/avatartranslator/AvatarLibraryFunction.java
@@ -454,7 +454,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
     public AvatarState translateASMWithMapping( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping,
                                                 AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) {
         /* Create the last state */
-        AvatarState lastState = new AvatarState ("exit_" + this.name + "_" + counter, referenceObject);
+        AvatarState lastState = new AvatarState ("exit_" + this.name + "_" + counter, referenceObject, block);
         block.getStateMachine().addElement(lastState);
 
         /* Create the argument object that will be passed to translation functions */
@@ -521,14 +521,14 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
 
         if (_asme instanceof AvatarSetTimer) {
             // TODO: isn't the name used for the timer ?
-            asme = new AvatarSetTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject);
+            asme = new AvatarSetTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, _asme.getOwner());
 
             // TODO: should probably replace attributes too, right ?
             ((AvatarSetTimer) asme).setTimerValue (((AvatarSetTimer) _asme).getTimerValue ());
         } else if (_asme instanceof AvatarResetTimer)
-            asme = new AvatarResetTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject);
+            asme = new AvatarResetTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, _asme.getOwner());
         else if (_asme instanceof AvatarExpireTimer) 
-            asme = new AvatarExpireTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject);
+            asme = new AvatarExpireTimer (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, _asme.getOwner());
         else
             /* !!! should not happen */
             return;
@@ -542,7 +542,8 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
     public void translateActionOnSignal (AvatarActionOnSignal _asme, Object _arg) {
         TranslatorArgument arg = (TranslatorArgument) _arg;
 
-        AvatarActionOnSignal asme = new AvatarActionOnSignal (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.signalsMapping.get (_asme.getSignal ()), arg.referenceObject);
+        AvatarActionOnSignal asme = new AvatarActionOnSignal (this.name + "_" + arg.counter + "__" + _asme.getName (),
+                arg.signalsMapping.get (_asme.getSignal ()), arg.referenceObject, _asme.getOwner());
         for (String s: _asme.getValues ()) {
             AvatarAttribute attr = this.getAvatarAttributeWithName (s);
             if (attr == null)
@@ -609,7 +610,8 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
          * reachability of state in a function for a particular invocation of this
          * function.
          */
-        AvatarState asme = new AvatarState (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, false, false);
+        AvatarState asme = new AvatarState (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, _asme.getOwner(), false,
+                false);
         asme.setHidden (true);
         asme.addEntryCode (_asme.getEntryCode ());
 
@@ -620,7 +622,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
     public void translateRandom (AvatarRandom _asme, Object _arg) {
         TranslatorArgument arg = (TranslatorArgument) _arg;
 
-        AvatarRandom asme = new AvatarRandom (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject);
+        AvatarRandom asme = new AvatarRandom (this.name + "_" + arg.counter + "__" + _asme.getName (), arg.referenceObject, _asme.getOwner());
         asme.setValues (replaceAttributesInExpr(_asme.getMinValue (), _arg), replaceAttributesInExpr(_asme.getMaxValue (), _arg));
         asme.setFunctionId (_asme.getFunctionId ());
         asme.setExtraAttribute1(_asme.getExtraAttribute1());
diff --git a/src/main/java/avatartranslator/AvatarLibraryFunctionCall.java b/src/main/java/avatartranslator/AvatarLibraryFunctionCall.java
index 99b4cb14a3779961456efdeb1a4988c50a810a0b..f6ce6c1d53d9fcbd90f1f88c507a4fb0a52874ae 100644
--- a/src/main/java/avatartranslator/AvatarLibraryFunctionCall.java
+++ b/src/main/java/avatartranslator/AvatarLibraryFunctionCall.java
@@ -93,7 +93,7 @@ public class AvatarLibraryFunctionCall extends AvatarStateMachineElement {
      *      The library function that corresponds to this call.
      */
     public AvatarLibraryFunctionCall (String name, AvatarLibraryFunction libraryFunction, Object referenceObject) {
-        super(name, referenceObject);
+        super(name, referenceObject, libraryFunction);
 
         this.libraryFunction = libraryFunction;
         this.counter = this.libraryFunction.getCounter();
diff --git a/src/main/java/avatartranslator/AvatarQueryOnSignal.java b/src/main/java/avatartranslator/AvatarQueryOnSignal.java
index 45fcaf48edb11744700db76c0e10748d160788a1..321b1790d0d0b30dd3567e7ff5d508e52e8acd4a 100644
--- a/src/main/java/avatartranslator/AvatarQueryOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarQueryOnSignal.java
@@ -56,8 +56,8 @@ public class AvatarQueryOnSignal extends AvatarStateMachineElement {
     private AvatarSignal signal;
     private AvatarAttribute attribute;
 
-	public AvatarQueryOnSignal(String _name, AvatarSignal _signal, AvatarAttribute _attribute, Object _referenceObject ) {
-	   super(_name, _referenceObject);
+	public AvatarQueryOnSignal(String _name, AvatarSignal _signal, AvatarAttribute _attribute, Object _referenceObject, AvatarStateMachineOwner _block ) {
+	   super(_name, _referenceObject, _block);
 	   signal = _signal;
 	   attribute = _attribute;
 
@@ -80,7 +80,7 @@ public class AvatarQueryOnSignal extends AvatarStateMachineElement {
     	AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName());
     	AvatarAttribute att = _block.getAvatarAttributeWithName(getAttribute().getName());
     	if ((sig != null) && (att != null)) {
-            AvatarQueryOnSignal aqos = new AvatarQueryOnSignal(getName() + "__clone", sig, att, getReferenceObject());
+            AvatarQueryOnSignal aqos = new AvatarQueryOnSignal(getName() + "__clone", sig, att, getReferenceObject(), _block);
     		return aqos;
     	} else {
     	    TraceManager.addDev("Basic clone failed for AvatarQueryOnSignal");
diff --git a/src/main/java/avatartranslator/AvatarRandom.java b/src/main/java/avatartranslator/AvatarRandom.java
index 3082e3c4dcb957c8c8332203f9ddd757ac0e1b38..581ccc0ffed668b8fb9640661fba3b76509da8f8 100644
--- a/src/main/java/avatartranslator/AvatarRandom.java
+++ b/src/main/java/avatartranslator/AvatarRandom.java
@@ -69,8 +69,8 @@ public class AvatarRandom extends AvatarStateMachineElement {
     protected String extraAttribute1;
     protected String extraAttribute2;
 
-    public AvatarRandom(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarRandom(String _name, Object _referenceObject, AvatarStateMachineOwner block) {
+        super(_name, _referenceObject, block);
     }
 
     public String getVariable() {
@@ -126,7 +126,7 @@ public class AvatarRandom extends AvatarStateMachineElement {
     }
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-	 AvatarRandom ar = new AvatarRandom(getName() + "_clone", getReferenceObject());
+	 AvatarRandom ar = new AvatarRandom(getName() + "_clone", getReferenceObject(), _block);
 
 	 ar.setVariable(variable);
 	 ar.setValues(minValue, maxValue);
diff --git a/src/main/java/avatartranslator/AvatarRelation.java b/src/main/java/avatartranslator/AvatarRelation.java
index 21a19fab1f4f5f4b2afb9bf30e25a7882bd003d5..f42dbf9460ff4d20725e3ccc68bba6cb83e101c1 100644
--- a/src/main/java/avatartranslator/AvatarRelation.java
+++ b/src/main/java/avatartranslator/AvatarRelation.java
@@ -310,7 +310,7 @@ public class AvatarRelation extends AvatarElement {
 		    AvatarSignal ns1 = b1.getSignalByName(s1.getName());
 		    AvatarSignal ns2 = b2.getSignalByName(s2.getName());
 		    if ((ns1 == null) || (ns2 == null)) {
-			continue;
+			    continue;
 		    }	   	
 		    ar.addSignals(ns1, ns2);
 		}
diff --git a/src/main/java/avatartranslator/AvatarResetTimer.java b/src/main/java/avatartranslator/AvatarResetTimer.java
index 2efeb8a8caa82bdc947a69e7a29d3a1ec6f56c6a..b534b6f3c8d7c5c5b35c92229c718b458b840c53 100644
--- a/src/main/java/avatartranslator/AvatarResetTimer.java
+++ b/src/main/java/avatartranslator/AvatarResetTimer.java
@@ -49,12 +49,12 @@ package avatartranslator;
  */
 public class AvatarResetTimer extends AvatarTimerOperator {
 	
-    public AvatarResetTimer(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarResetTimer(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+		super(_name, _referenceObject, _block);
     }
 	
 	public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-		AvatarResetTimer art = new AvatarResetTimer(getName(), getReferenceObject());
+		AvatarResetTimer art = new AvatarResetTimer(getName(), getReferenceObject(), _block);
 		art.setTimer(getTimer());
 		return art;
 	}
diff --git a/src/main/java/avatartranslator/AvatarSetTimer.java b/src/main/java/avatartranslator/AvatarSetTimer.java
index 25e0808e52b1b8dd6e7d95032054866dfbd29f3b..4b59f161600e9c6252bdb343fa10abb95649aa9d 100644
--- a/src/main/java/avatartranslator/AvatarSetTimer.java
+++ b/src/main/java/avatartranslator/AvatarSetTimer.java
@@ -50,8 +50,9 @@ package avatartranslator;
 public class AvatarSetTimer extends AvatarTimerOperator {
 	protected String setValue;
 	
-    public AvatarSetTimer(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarSetTimer(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+
+		super(_name, _referenceObject, _block);
     }
 	
 	public void setTimerValue(String _setValue) {
@@ -63,7 +64,7 @@ public class AvatarSetTimer extends AvatarTimerOperator {
 	}
 	
 	public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-		AvatarSetTimer ast = new AvatarSetTimer(getName(), getReferenceObject());
+		AvatarSetTimer ast = new AvatarSetTimer(getName(), getReferenceObject(), _block);
 		ast.setTimer(getTimer());
 		ast.setTimerValue(getTimerValue());
 		return ast;
diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java
index 7cb434b5e8c743679157dcfc42e24fb568be1296..01b5be9953466eeda484f6f867d5e6579b0ed4fe 100644
--- a/src/main/java/avatartranslator/AvatarSpecification.java
+++ b/src/main/java/avatartranslator/AvatarSpecification.java
@@ -518,7 +518,7 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
     *
     *
      */
-    public static AvatarSpecification fromJSON(String _spec, String _name, Object _referenceObject) {
+    public static AvatarSpecification fromJSON(String _spec, String _name, Object _referenceObject, boolean acceptErrors) {
         if (_spec == null) {
             return null;
         }
@@ -601,6 +601,9 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
                         } else if (nameS.startsWith("output")) {
                             nameS = nameS.substring(6).trim();
                             nameS = "out " + nameS;
+                        } else {
+                            nameS = nameS.substring(6).trim();
+                            nameS = "in " + nameS;
                         }
 
                         AvatarSignal as = AvatarSignal.isAValidSignalThenCreate(nameS, newBlock);
@@ -614,6 +617,7 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
                         }*/
 
                         if (as != null) {
+                            TraceManager.addDev("Added signal: " + nameS);
                             newBlock.addSignal(as);
                         } else {
                             TraceManager.addDev("Invalid signal: " + nameS);
@@ -696,20 +700,24 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
             }
         }
 
-        // Identify in signals that are not connected
-        for(AvatarBlock block: spec.getListOfBlocks()) {
-            for (AvatarSignal inSig : block.getSignals()) {
-                if (!(signalSet.contains(inSig))) {
-                    if (inSig.isIn()) {
-                        toBeRemoved.add(inSig);
+        if (!acceptErrors) {
+            // Identify in signals that are not connected
+            for (AvatarBlock block : spec.getListOfBlocks()) {
+                for (AvatarSignal inSig : block.getSignals()) {
+                    if (!(signalSet.contains(inSig))) {
+                        if (inSig.isIn()) {
+                            toBeRemoved.add(inSig);
+                            jsonErrors.add("In block " + block.getName() + " signal " + inSig.getSignalName() + " was removed because there is" +
+                                    " no correponding output signal with the same name");
+                        }
                     }
                 }
             }
-        }
 
-        for(AvatarSignal as: toBeRemoved) {
-            for (AvatarBlock block : spec.getListOfBlocks()) {
-                block.removeAvatarSignal(as);
+            for (AvatarSignal as : toBeRemoved) {
+                for (AvatarBlock block : spec.getListOfBlocks()) {
+                    block.removeAvatarSignal(as);
+                }
             }
         }
 
@@ -822,7 +830,7 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
         return jsonErrors;
     }
 
-    public String removeSpaces(String _input) {
+    public static String removeSpaces(String _input) {
         return _input.trim().replaceAll(" ", "_");
     }
 
@@ -998,11 +1006,20 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
 
     @Override
     public String toString() {
+        return toStringRecursive(false);
+        //Thread.currentThread().dumpStack();
+    }
+
+    public String toStringRecursive(boolean isRecursive) {
         //Thread.currentThread().dumpStack();
         StringBuffer sb = new StringBuffer("Blocks:\n");
         //TraceManager.addDev("TS Block");
         for (AvatarBlock block : blocks) {
-            sb.append("*** " + block.toString() + "\n");
+            if (isRecursive) {
+                sb.append("*** " + block.toString() + "\n");
+            } else {
+                sb.append("*** " + block.toStringRecursive() + "\n");
+            }
         }
         //TraceManager.addDev("TS Relations");
         sb.append("\nRelations:\n");
@@ -1629,6 +1646,16 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
         return adg;
     }
 
+    public AvatarCompactDependencyGraph makeCompactDependencyGraph() {
+        return makeCompactDependencyGraph(true);
+    }
+
+    public AvatarCompactDependencyGraph makeCompactDependencyGraph(boolean withID) {
+        AvatarCompactDependencyGraph adg = new AvatarCompactDependencyGraph();
+        adg.buildGraph(this, withID);
+        return adg;
+    }
+
     public AvatarSpecification simplifyFromDependencies(ArrayList<AvatarElement> eltsOfInterest) {
         AvatarSpecification clonedSpec = advancedClone();
         AvatarDependencyGraph adg = clonedSpec.makeDependencyGraph();
@@ -1783,6 +1810,16 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
 
     }
 
+
+    public boolean removeDuplicatedTransitions() {
+        boolean b = false;
+
+        for(AvatarBlock ab: blocks) {
+             b = b || ab.getStateMachine().removeDuplicatedTransitions();
+        }
+        return b;
+    }
+
     public NameChecker.NamedElement[] getSubNamedElements() {
         NameChecker.NamedElement[] lne = new NameChecker.NamedElement[blocks.size()];
         int index = 0;
diff --git a/src/main/java/avatartranslator/AvatarStartState.java b/src/main/java/avatartranslator/AvatarStartState.java
index 3c900d392368395f765b3175b4cf3315de52d6b5..433742218c1284a2263bce7909dc1b7887ca03c1 100644
--- a/src/main/java/avatartranslator/AvatarStartState.java
+++ b/src/main/java/avatartranslator/AvatarStartState.java
@@ -41,6 +41,8 @@
 
 package avatartranslator;
 
+import myutil.TraceManager;
+
 /**
  * Class AvatarStartState
  * Creation: 20/05/2010
@@ -50,12 +52,13 @@ package avatartranslator;
 public class AvatarStartState extends AvatarStateElement {
 
 
-    public AvatarStartState(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarStartState(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
+        TraceManager.addDev("Start state created for block " + _block.getName());
     }
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-	AvatarStartState astart = new AvatarStartState(getName(), getReferenceObject());
+	AvatarStartState astart = new AvatarStartState(getName(), getReferenceObject(), _block);
 	astart.setAsVerifiable(canBeVerified());
         return astart;
     }
diff --git a/src/main/java/avatartranslator/AvatarState.java b/src/main/java/avatartranslator/AvatarState.java
index 888e227c5132aafab9c1a243f26c833d8fb3a1f6..26179d78f09d6f36408beed3ae83b4e99790908e 100644
--- a/src/main/java/avatartranslator/AvatarState.java
+++ b/src/main/java/avatartranslator/AvatarState.java
@@ -52,19 +52,19 @@ public class AvatarState extends AvatarStateElement {
     private boolean checkLatency;
     private boolean commit = false; // Not used currently
 
-    public AvatarState(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarState(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
 
         //TraceManager.addDev("CREATING state with name = "+ _name);
     }
 
-    public AvatarState(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject, _isCheckable, _isChecked);
+    public AvatarState(String _name, Object _referenceObject, AvatarStateMachineOwner _block, boolean _isCheckable, boolean _isChecked) {
+        super(_name, _referenceObject, _block, _isCheckable, _isChecked);
         //TraceManager.addDev("CREATING state with name = "+ _name);
     }
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-        AvatarState as = new AvatarState(getName(), getReferenceObject(), isCheckable(), isChecked());
+        AvatarState as = new AvatarState(getName(), getReferenceObject(), _block, isCheckable(), isChecked());
         as.setAsVerifiable(canBeVerified());
         as.addEntryCode(getEntryCode());
         return as;
diff --git a/src/main/java/avatartranslator/AvatarStateElement.java b/src/main/java/avatartranslator/AvatarStateElement.java
index 87584cbd42e3ff09d9856322e5fc6d967bded777..ab2ec8c0c1c10ff87c286708532bea196ad98b9a 100644
--- a/src/main/java/avatartranslator/AvatarStateElement.java
+++ b/src/main/java/avatartranslator/AvatarStateElement.java
@@ -46,11 +46,11 @@ package avatartranslator;
  */
 public abstract class AvatarStateElement extends AvatarStateMachineElement {
 
-    public AvatarStateElement(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarStateElement(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
     }
 
-    public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked ) {
-        super(_name, _referenceObject, _isCheckable, _isChecked );
+    public AvatarStateElement(String _name, Object _referenceObject, AvatarStateMachineOwner _block, boolean _isCheckable, boolean _isChecked ) {
+        super(_name, _referenceObject, _block, _isCheckable, _isChecked );
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java
index 0f9646c0b950216e0fefd57eb97120bcff02bf4a..d2a7e65cbce83d2ecce76673ee2be90ca6dd729b 100644
--- a/src/main/java/avatartranslator/AvatarStateMachine.java
+++ b/src/main/java/avatartranslator/AvatarStateMachine.java
@@ -68,6 +68,10 @@ public class AvatarStateMachine extends AvatarElement {
         elements = new LinkedList<AvatarStateMachineElement>();
     }
 
+    public AvatarStateMachineOwner getOwner() {
+        return block;
+    }
+
     public AvatarStartState getStartState() {
         return startState;
     }
@@ -86,18 +90,25 @@ public class AvatarStateMachine extends AvatarElement {
         return cpt;
     }
 
+    public void clear() {
+        elements.clear();
+        startState = null;
+        allStates = null;
+        states = null;
+    }
+
     public void makeBasicSM(AvatarStateMachineOwner owner) {
         elements.clear();
 
         if (startState == null) {
-            startState = new AvatarStartState("StartState", null);
+            startState = new AvatarStartState("StartState", null, owner);
         } else {
             startState.removeAllNexts();
         }
         addElement(startState);
 
         AvatarTransition at = new AvatarTransition(owner, "Transition", startState.getReferenceObject());
-        AvatarStopState stopS = new AvatarStopState("StopState", startState.getReferenceObject());
+        AvatarStopState stopS = new AvatarStopState("StopState", startState.getReferenceObject(), owner);
         addElement(at);
         addElement(stopS);
         startState.addNext(at);
@@ -172,12 +183,12 @@ public class AvatarStateMachine extends AvatarElement {
                 if (!((current instanceof AvatarStopState) || (current instanceof AvatarState))) {
                     // We need to add a next
                     if (current instanceof AvatarTransition) {
-                        AvatarStopState stopS = new AvatarStopState("StopState", current.getReferenceObject());
+                        AvatarStopState stopS = new AvatarStopState("StopState", current.getReferenceObject(), owner);
                         addElement(stopS);
                         current.addNext(stopS);
                     } else {
                         AvatarTransition at = new AvatarTransition(owner, "Transition", current.getReferenceObject());
-                        AvatarStopState stopS = new AvatarStopState("StopState", current.getReferenceObject());
+                        AvatarStopState stopS = new AvatarStopState("StopState", current.getReferenceObject(), owner);
                         addElement(at);
                         addElement(stopS);
                         current.addNext(at);
@@ -233,6 +244,17 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
+    public AvatarState getStateByName(String _name) {
+        for (AvatarElement ae : elements) {
+            if (ae instanceof AvatarState) {
+                if (ae.getName().compareTo(_name) == 0) {
+                    return (AvatarState) ae;
+                }
+            }
+        }
+        return null;
+    }
+
     public void makeAllStates() {
         int cpt = 0;
         allStates = new AvatarStateElement[getNbOfStatesElement()];
@@ -409,9 +431,35 @@ public class AvatarStateMachine extends AvatarElement {
             sb.append("\t" + element.getClass() + "->" + element.toString() + "\n");
         }
 
+
         return sb.toString();
     }
 
+    public String toStringRecursive() {
+        AvatarStartState ass = getStartState();
+        if (ass == null) {
+            return "empty asm";
+        }
+
+        return toStringRecursiveElt(ass);
+    }
+
+    public String toStringRecursiveElt(AvatarStateMachineElement _asme) {
+        String ret = "";
+        ret += "* " + _asme.toStringExtendedID() + "\n";
+
+        for (AvatarStateMachineElement asme : _asme.getNexts()) {
+            ret += "\tnext: " + asme.toStringExtendedID() + "\n";
+
+        }
+        for (AvatarStateMachineElement asme : _asme.getNexts()) {
+            ret += toStringRecursiveElt(asme);
+        }
+
+        return ret;
+
+    }
+
 
     // Add missing implicit states.
     public void makeFullStates(AvatarBlock _block) {
@@ -435,7 +483,7 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         for (AvatarStateMachineElement elt : toConsider) {
-            AvatarStopState stopMe = new AvatarStopState("stopCreated", elt.getReferenceObject());
+            AvatarStopState stopMe = new AvatarStopState("stopCreated", elt.getReferenceObject(), _b);
             addElement(stopMe);
             AvatarTransition tr = new AvatarTransition(_b, "trForStopCreated", elt.getReferenceObject());
             addElement(tr);
@@ -454,7 +502,7 @@ public class AvatarStateMachine extends AvatarElement {
                 if (elt.getNext(0) instanceof AvatarTransition) {
                     AvatarTransition tr = (AvatarTransition) elt.getNext(0);
                     // We create an intermediate state
-                    AvatarState state = new AvatarState("IntermediateState4__" + id, elt.getReferenceObject());
+                    AvatarState state = new AvatarState("IntermediateState4__" + id, elt.getReferenceObject(), _block);
                     state.setCommit(true);
                     toAdd.add(state);
                     AvatarTransition at1 = new AvatarTransition(_block, "TransitionForIntermediateState4__" + id, elt.getReferenceObject());
@@ -494,7 +542,7 @@ public class AvatarStateMachine extends AvatarElement {
                     if ((previous != null) && (next != null)) {
                         if ((!(previous instanceof AvatarStateElement)) && (next instanceof AvatarStateElement)) {
                             // We create an intermediate state
-                            AvatarState state = new AvatarState("IntermediateState1__" + id, elt.getReferenceObject());
+                            AvatarState state = new AvatarState("IntermediateState1__" + id, elt.getReferenceObject(), _block);
                             state.setCommit(true);
                             toAdd.add(state);
                             AvatarTransition at1 = new AvatarTransition(_block, "TransitionForIntermediateState1__" + id, elt.getReferenceObject());
@@ -535,7 +583,7 @@ public class AvatarStateMachine extends AvatarElement {
                 if ((previous != null) && (next != null)) {
                     if ((!(previous instanceof AvatarStateElement)) && (!(next instanceof AvatarStateElement))) {
                         // We create an intermediate state
-                        AvatarState state = new AvatarState("IntermediateState2__" + id, elt.getReferenceObject());
+                        AvatarState state = new AvatarState("IntermediateState2__" + id, elt.getReferenceObject(), _block);
                         toAdd.add(state);
                         AvatarTransition at1 = new AvatarTransition(_block, "TransitionForIntermediateState2__" + id, elt.getReferenceObject());
                         toAdd.add(at1);
@@ -581,7 +629,7 @@ public class AvatarStateMachine extends AvatarElement {
 
                     if (!(next instanceof AvatarState)) {
                         // We create an intermediate state
-                        AvatarState state = new AvatarState("IntermediateState3__" + id, elt.getReferenceObject());
+                        AvatarState state = new AvatarState("IntermediateState3__" + id, elt.getReferenceObject(), _block);
                         state.setCommit(true);
                         toAdd.add(state);
                         AvatarTransition at1 = new AvatarTransition(_block, "TransitionForIntermediateState3__" + id, elt.getReferenceObject());
@@ -613,7 +661,7 @@ public class AvatarStateMachine extends AvatarElement {
                     previous = getPreviousElementOf(elt);
                     if (!(previous instanceof AvatarStateElement)) {
                         // We create an intermediate state
-                        AvatarState state = new AvatarState("IntermediateState__" + id, elt.getReferenceObject());
+                        AvatarState state = new AvatarState("IntermediateState__" + id, elt.getReferenceObject(), _block);
                         state.setCommit(true);
                         toAdd.add(state);
                         AvatarTransition at1 = new AvatarTransition(_block, "TransitionForIntermediateState__" + id, elt.getReferenceObject());
@@ -673,13 +721,13 @@ public class AvatarStateMachine extends AvatarElement {
                 }
 
                 at1.addAction(random.getVariable() + "=" + minExpr);
-                AvatarState randomState = new AvatarState("StateForRandom__" + elt.getName() + "__" + id, elt.getReferenceObject());
-                AvatarState beforeRandom = new AvatarState("StateBeforeRandom__" + elt.getName() + "__" + id, elt.getReferenceObject());
+                AvatarState randomState = new AvatarState("StateForRandom__" + elt.getName() + "__" + id, elt.getReferenceObject(), _block);
+                AvatarState beforeRandom = new AvatarState("StateBeforeRandom__" + elt.getName() + "__" + id, elt.getReferenceObject(), _block);
                 AvatarTransition at2 = new AvatarTransition(_block, "Transition2ForRandom__" + elt.getName() + "__" + id, elt.getReferenceObject());
                 at2.setGuard("[" + random.getVariable() + " < " + maxExprToBeUsed + "]");
                 at2.addAction(random.getVariable() + "=" + random.getVariable() + " + 1");
                 AvatarTransition at3 = new AvatarTransition(_block, "Transition3ForRandom__ " + elt.getName() + "__" + id, elt.getReferenceObject());
-                AvatarState afterRandom = new AvatarState("StateAfterRandom__" + elt.getName() + "__" + id, elt.getReferenceObject());
+                AvatarState afterRandom = new AvatarState("StateAfterRandom__" + elt.getName() + "__" + id, elt.getReferenceObject(), _block);
 
                 // Adding elements
                 toAdd.add(at1);
@@ -795,7 +843,7 @@ public class AvatarStateMachine extends AvatarElement {
                 if (element.getNext(0) instanceof AvatarStopState) {
                     AvatarStopState stop = (AvatarStopState) (element.getNext(0));
                     if (stop.getState() != null) {
-                        AvatarState newState = new AvatarState(stop.getName(), stop.getReferenceObject());
+                        AvatarState newState = new AvatarState(stop.getName(), stop.getReferenceObject(), block);
                         element.removeNext(0);
                         element.addNext(newState);
                         toAdd.add(newState);
@@ -852,7 +900,7 @@ public class AvatarStateMachine extends AvatarElement {
                 if (!(element instanceof AvatarState)) {
                     // Must add an intermediate state
                     String tmp = findUniqueStateName("splitstate_after__");
-                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject());
+                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject(), block);
                     addElement(as);
                     as.setHidden(true);
                     as.setState(_currentState);
@@ -870,7 +918,7 @@ public class AvatarStateMachine extends AvatarElement {
             if (_at.getNbOfAction() > 1) {
                 //TraceManager.addDev("New split state");
                 String tmp = findUniqueStateName("splitstate_action__");
-                AvatarState as = new AvatarState(tmp, null);
+                AvatarState as = new AvatarState(tmp, null, block);
                 as.setHidden(true);
                 as.setState(_currentState);
                 AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block));
@@ -1416,7 +1464,7 @@ public class AvatarStateMachine extends AvatarElement {
                 ast = (AvatarSetTimer) elt;
                 as = sets.get(ast.getTimer().getName());
                 if (as != null) {
-                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject());
+                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject(), block);
                     aaos.addValue(timerAttributeName);
                     olds.add(elt);
                     news.add(aaos);
@@ -1442,7 +1490,7 @@ public class AvatarStateMachine extends AvatarElement {
                 ato = (AvatarTimerOperator) elt;
                 as = resets.get(ato.getTimer().getName());
                 if (as != null) {
-                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject());
+                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject(), block);
                     olds.add(elt);
                     news.add(aaos);
                 }
@@ -1452,7 +1500,7 @@ public class AvatarStateMachine extends AvatarElement {
                 ato = (AvatarTimerOperator) elt;
                 as = expires.get(ato.getTimer().getName());
                 if (as != null) {
-                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject());
+                    AvatarActionOnSignal aaos = new AvatarActionOnSignal(elt.getName(), as, elt.getReferenceObject(), block);
                     olds.add(elt);
                     news.add(aaos);
                 }
@@ -1512,11 +1560,11 @@ public class AvatarStateMachine extends AvatarElement {
         AvatarState as;
         for (AvatarTransition att : ll) {
             //TraceManager.addDev(" ------------------ Dealing with an entrance transition");
-            ar = new AvatarRandom("randomfortimer", _block.getReferenceObject());
+            ar = new AvatarRandom("randomfortimer", _block.getReferenceObject(), _block);
             ar.setVariable(val.getName());
             ar.setValues(_at.getMinDelay(), _at.getMaxDelay());
 
-            ast = new AvatarSetTimer("settimer_" + aa.getName(), _block.getReferenceObject());
+            ast = new AvatarSetTimer("settimer_" + aa.getName(), _block.getReferenceObject(), _block);
             ast.setTimerValue(val.getName());
             ast.setTimer(aa);
 
@@ -1538,11 +1586,11 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         // Wait for timer expiration on the transition
-        AvatarExpireTimer aet = new AvatarExpireTimer("expiretimer_" + aa.getName(), _block.getReferenceObject());
+        AvatarExpireTimer aet = new AvatarExpireTimer("expiretimer_" + aa.getName(), _block.getReferenceObject(), _block);
         aet.setTimer(aa);
         newat0 = new AvatarTransition(_block, "transition0_expiretimer_" + aa.getName(), _block.getReferenceObject());
         newat1 = new AvatarTransition(_block, "transition1_expiretimer_" + aa.getName(), _block.getReferenceObject());
-        as = new AvatarState("state1_expiretimer_" + aa.getName(), _block.getReferenceObject());
+        as = new AvatarState("state1_expiretimer_" + aa.getName(), _block.getReferenceObject(), _block);
         addElement(aet);
         addElement(newat0);
         addElement(newat1);
@@ -1608,7 +1656,7 @@ public class AvatarStateMachine extends AvatarElement {
 
             TraceManager.addDev("-> Timer modification");
 
-            AvatarState myState = new AvatarState("statefortransition__" + ID_ELT, _at.getReferenceObject());
+            AvatarState myState = new AvatarState("statefortransition__" + ID_ELT, _at.getReferenceObject(), block);
             myState.setHidden(true);
             AvatarTransition at2 = new AvatarTransition(_at.getBlock(), "transitionfortransition__" + ID_ELT, _at.getReferenceObject());
             ID_ELT++;
@@ -1624,7 +1672,7 @@ public class AvatarStateMachine extends AvatarElement {
 
             return;
         } else {
-            AvatarState myState = new AvatarState("statefortransition__" + ID_ELT, _at.getReferenceObject());
+            AvatarState myState = new AvatarState("statefortransition__" + ID_ELT, _at.getReferenceObject(), block);
             AvatarTransition at = new AvatarTransition(_at.getBlock(), "transitionfortransition__", _at.getReferenceObject());
             at.addNext(_at.getNext(0));
             _at.removeAllNexts();
@@ -1733,7 +1781,7 @@ public class AvatarStateMachine extends AvatarElement {
 
         for (AvatarStopState ass : ll) {
             TraceManager.addDev("Removed a stop state");
-            AvatarState astate = new AvatarState("OldStopState", ass.getReferenceObject());
+            AvatarState astate = new AvatarState("OldStopState", ass.getReferenceObject(), block);
             astate.setState(ass.getState());
             replace(ass, astate);
         }
@@ -1763,7 +1811,7 @@ public class AvatarStateMachine extends AvatarElement {
 
     public void handleUnfollowedStartState(AvatarStateMachineOwner _block) {
         if (startState.nbOfNexts() == 0) {
-            AvatarStopState stopState = new AvatarStopState("__StopState", startState.getReferenceObject());
+            AvatarStopState stopState = new AvatarStopState("__StopState", startState.getReferenceObject(), _block);
             AvatarTransition at = new AvatarTransition(_block, "__toStop", startState.getReferenceObject());
             addElement(stopState);
             addElement(at);
@@ -1794,7 +1842,8 @@ public class AvatarStateMachine extends AvatarElement {
                 AvatarLibraryFunctionCall alfc = (AvatarLibraryFunctionCall) curAsme;
 
                 /* Create a state that will be used as an entry point for the sub-state machine */
-                AvatarState firstState = new AvatarState("entry_" + alfc.getLibraryFunction().getName() + "_" + alfc.getCounter(), curAsme.getReferenceObject());
+                AvatarState firstState = new AvatarState("entry_" + alfc.getLibraryFunction().getName() + "_" + alfc.getCounter(),
+                        curAsme.getReferenceObject(), block);
                 elements.add(firstState);
 
                 /* Add this state to the mapping so that future state can use it to replace their next element */
@@ -2253,4 +2302,91 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
+    public boolean removeDuplicatedTransitions() {
+
+        ArrayList<AvatarStateMachineElement> toBeRemoved = new ArrayList<>();
+        for (AvatarStateMachineElement elt : elements) {
+            if (elt instanceof AvatarState) {
+                // We look at the nexts
+                // If transition -> state duplicated, or transition -> aaos duplicated -> state : we remove  the duplicate
+                toBeRemoved.addAll(removeDuplicatedTransitionsFromState((AvatarState) elt));
+            }
+        }
+
+        for (AvatarStateMachineElement asme : toBeRemoved) {
+            elements.remove(asme);
+        }
+
+        for (AvatarStateMachineElement elt : elements) {
+            if (elt instanceof AvatarState) {
+                toBeRemoved.clear();
+                for (AvatarStateMachineElement asmeState: elt.getNexts()) {
+                    if (!(elements.contains(asmeState))) {
+                        toBeRemoved.add(asmeState);
+                    }
+                }
+                for (AvatarStateMachineElement asme : toBeRemoved) {
+                    elt.getNexts().remove(asme);
+                }
+            }
+
+
+        }
+
+
+        return toBeRemoved.size() != 0;
+    }
+
+    public ArrayList<AvatarStateMachineElement> removeDuplicatedTransitionsFromState(AvatarState _st) {
+        ArrayList<AvatarStateMachineElement> toBeRemoved = new ArrayList<>();
+
+        // At least two exiting transitions
+        if (_st.getNexts().size() < 2) {
+            return toBeRemoved;
+        }
+
+        // We check is the at least two transitions are equivalent
+
+        for (int i = 0; i < _st.getNexts().size(); i++) {
+            AvatarTransition at1 = (AvatarTransition) (_st.getNexts().get(i));
+            for (int j = i + 1; j < _st.getNexts().size(); j++) {
+                AvatarTransition at2 = (AvatarTransition) (_st.getNexts().get(j));
+                if (at1.equals(at2)) {
+                    //TraceManager.addDev("\tTwo equal transitions in state " + _st.getName());
+                    // We have to consider the next of at1 and at2
+                    AvatarStateMachineElement next1, next2;
+                    next1 = at1.getNext(0);
+                    next2 = at2.getNext(0);
+                    if (next1 instanceof AvatarState && next1 == next2) {
+                        toBeRemoved.add(at2);
+                    } else if ((next1 instanceof AvatarActionOnSignal) && (next2 instanceof AvatarActionOnSignal)) {
+                        //TraceManager.addDev("\tChecking for equal AAOS " + _st.getName());
+                        AvatarActionOnSignal aaos1 = (AvatarActionOnSignal) next1;
+                        AvatarActionOnSignal aaos2 = (AvatarActionOnSignal) next2;
+                        if (next1.getNexts().get(0) instanceof AvatarTransition && next2.getNexts().get(0) instanceof AvatarTransition) {
+                            AvatarTransition at11 = (AvatarTransition) next1.getNexts().get(0);
+                            AvatarTransition at21 = (AvatarTransition) next2.getNexts().get(0);
+                            if (at11.equals(at21)) {
+                                if (at11.getNexts().get(0) instanceof AvatarState && (at11.getNexts().get(0) == at21.getNexts().get(0))) {
+                                    // We need to compare the two AvatarActionOnSignal
+                                    //TraceManager.addDev("\tComparing aaos1 and aaos2 in " + _st.getName());
+                                    if (aaos1.equals(aaos2)) {
+                                        toBeRemoved.add(at2);
+                                        toBeRemoved.add(aaos2);
+                                        toBeRemoved.add(at21);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        TraceManager.addDev("\ttoBeRemoved of size " + toBeRemoved.size() + " for state " + _st.getName());
+
+
+        return toBeRemoved;
+    }
+
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java
index 18c27f1061527e447c27e6f70ab8188d3bf1154b..da7d5026d2c64a8c9f12129ce389ffd954241a30 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineElement.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java
@@ -57,6 +57,9 @@ import java.util.List;
  */
 public abstract class AvatarStateMachineElement extends AvatarElement implements IBSParamState {
 
+
+    protected AvatarStateMachineOwner block;
+
     protected List<AvatarStateMachineElement> nexts;
     private AvatarState myState;
 
@@ -67,12 +70,15 @@ public abstract class AvatarStateMachineElement extends AvatarElement implements
     private boolean isHidden = false;
 
     public AvatarStateMachineElement(	final String _name, 
-    									final Object _referenceObject ) {
-    	this( _name, _referenceObject, false, false );
+    									final Object _referenceObject,
+                                         final AvatarStateMachineOwner _block) {
+    	this( _name, _referenceObject, _block, false, false );
+        block = _block;
     }
 
     public AvatarStateMachineElement(	String _name,
     									Object _referenceObject,
+                                         final AvatarStateMachineOwner _block,
     									boolean _isCheckable,
     									final boolean _isChecked ) {
         super( _name, _referenceObject );
@@ -81,6 +87,11 @@ public abstract class AvatarStateMachineElement extends AvatarElement implements
         isCheckable = _isCheckable;
         canBeVerified = false;
         isChecked = _isChecked;
+        block = _block;
+    }
+
+    public AvatarStateMachineOwner getOwner() {
+        return block;
     }
 
     public void setAsVerifiable(boolean _canBeVerified) {
diff --git a/src/main/java/avatartranslator/AvatarStopState.java b/src/main/java/avatartranslator/AvatarStopState.java
index 99fa3c7fb620ec15543732132649ae42719b29ac..6de7503aa438bc389b26b47a511d4834e3be5483 100644
--- a/src/main/java/avatartranslator/AvatarStopState.java
+++ b/src/main/java/avatartranslator/AvatarStopState.java
@@ -46,12 +46,12 @@ package avatartranslator;
  */
 public class AvatarStopState extends AvatarStateElement {
 
-    public AvatarStopState(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarStopState(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
     }
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
-        AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject());
+        AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject(), _block);
         astop.setAsVerifiable(canBeVerified());
 	
         return astop;
diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
index d9f89037ae6d3d861f1ba101e53b25f5cefb36b9..692d8b86d23bc86c87939f99f3dcb47b56d2dfde 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
@@ -45,6 +45,7 @@ import compiler.tmlparser.SimpleNode;
 import compiler.tmlparser.TMLExprParser;
 import compiler.tmlparser.TokenMgrError;
 import myutil.Conversion;
+import myutil.IntExpressionEvaluator;
 import myutil.NameChecker;
 import myutil.TraceManager;
 
@@ -401,7 +402,7 @@ public class AvatarSyntaxChecker {
     /*
      * @return 0 if ok, -1 if failure
      */
-    public static int isAValidIntExpr(AvatarSpecification _as, AvatarStateMachineOwner _ab, String _expr) {
+    public static int isAValidIntExprReplaceVariables(AvatarSpecification _as, AvatarStateMachineOwner _ab, String _expr) {
 
         /*AvatarExpressionSolver e1 = new AvatarExpressionSolver("x + y");
         e1.buildExpression(_ab);*/
@@ -417,20 +418,66 @@ public class AvatarSyntaxChecker {
             act = Conversion.putVariableValueInString(AvatarSpecification.ops, act, aa.getName(), aa.getDefaultInitialValue());
         }
 
+        //TraceManager.addDev("Checking if expr " + _expr + " is valid");
         AvatarIBSExpressions.IExpr e1 = AvatarIBSolver.parseInt(act);
-        return (e1 != null ? 0 : -1);
+        //TraceManager.addDev("Checking if expr " + _expr + " is valid: " + (e1 != null));
+
 
         /*IntExpressionEvaluator iee = new IntExpressionEvaluator();
 
         //TraceManager.addDev("Evaluating int:" + act);
         double result = iee.getResultOf(act);
         if (iee.getError() != null) {
-            //TraceManager.addDev("Error: " + iee.getError());
-            return -1;
+            TraceManager.addDev("My parsing Error: " + iee.getError());
+        } else {
+            TraceManager.addDev("My parsing ok");
+        }*/
+
+        //TraceManager.addDev("my parsing:" + parse(_as, _ab, "actionnat", _expr));
+
+        return (e1 != null ? 0 : -1);
+
+    }
+
+    public static int isAValidIntExpr(AvatarSpecification _as, AvatarStateMachineOwner _ab, String _expr) {
+
+        /*AvatarExpressionSolver e1 = new AvatarExpressionSolver("x + y");
+        e1.buildExpression(_ab);*/
+
+        if (_expr.trim().length() == 0) {
+            return 0;
         }
 
-        return 0;*/
-        // OLD return parse(_as, _ab, "actionnat", _expr);
+        String tmp = _expr.replaceAll(" ", "").trim();
+        String act = tmp;
+
+        /*for (AvatarAttribute aa : _ab.getAttributes()) {
+            act = Conversion.putVariableValueInString(AvatarSpecification.ops, act, aa.getName(), aa.getDefaultInitialValue());
+        }*/
+
+        //TraceManager.addDev("Checking if expr " + _expr + " is valid");
+        if (_ab instanceof AvatarBlock) {
+            AvatarIBSExpressions.IExpr e1 = AvatarIBSolver.parseInt((AvatarBlock)_ab, act);
+            return (e1 != null ? 0 : -1);
+        }
+
+        return isAValidIntExprReplaceVariables(_as, _ab, _expr);
+
+        //TraceManager.addDev("Checking if expr " + _expr + " is valid: " + (e1 != null));
+
+        /*IntExpressionEvaluator iee = new IntExpressionEvaluator();
+
+        //TraceManager.addDev("Evaluating int:" + act);
+        double result = iee.getResultOf(act);
+        if (iee.getError() != null) {
+            TraceManager.addDev("My parsing Error: " + iee.getError());
+        } else {
+            TraceManager.addDev("My parsing ok");
+        }*/
+
+        //TraceManager.addDev("my parsing:" + parse(_as, _ab, "actionnat", _expr));
+
+
 
     }
 
diff --git a/src/main/java/avatartranslator/AvatarTimerOperator.java b/src/main/java/avatartranslator/AvatarTimerOperator.java
index 9f7147c87b4b77a18de6b5662e9d34cb1dcec371..a3706614ab249be5ffa71858d8407bbe9247da96 100644
--- a/src/main/java/avatartranslator/AvatarTimerOperator.java
+++ b/src/main/java/avatartranslator/AvatarTimerOperator.java
@@ -49,8 +49,8 @@ package avatartranslator;
 public abstract class AvatarTimerOperator extends AvatarStateMachineElement {
     protected AvatarAttribute timer;
 
-    public AvatarTimerOperator(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+    public AvatarTimerOperator(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
+        super(_name, _referenceObject, _block);
     }
 
     public void setTimer(AvatarAttribute _timer) {
diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java
index 1f4f1d02bc2a25461670fc61e9e4832fef4f4dcb..0d8c3f612a648e2cdda245a4096584cef5688e40 100644
--- a/src/main/java/avatartranslator/AvatarTransition.java
+++ b/src/main/java/avatartranslator/AvatarTransition.java
@@ -101,7 +101,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
     private List<AvatarAction> actions; // actions on variable, or method call
 
     public AvatarTransition(AvatarStateMachineOwner _block, String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
+        super(_name, _referenceObject, _block);
         actions = new LinkedList<AvatarAction>();
         this.guard = new AvatarGuardEmpty();
         this.block = _block;
@@ -551,6 +551,56 @@ public class AvatarTransition extends AvatarStateMachineElement {
         return "Empty transition" + s;
     }
 
+    public boolean equals(AvatarTransition _at) {
+        if (isGuarded() != _at.isGuarded()) {
+            return false;
+        }
+        if (isGuarded()) {
+            if (getGuard().toString().compareTo(_at.getGuard().toString()) != 0) {
+                return false;
+            }
+        }
+
+        if (minDelay.compareTo(_at.getMinDelay()) != 0) {
+            return false;
+        }
+
+        if (maxDelay.compareTo(_at.getMaxDelay()) != 0) {
+            return false;
+        }
+
+        if (delayDistributionLaw != _at.getDelayDistributionLaw()) {
+            return false;
+        }
+
+        if (delayDistributionLaw > 0) {
+            if (delayExtra1.compareTo(_at.getDelayExtra1()) != 0) {
+                return false;
+            }
+            if (delayExtra2.compareTo(_at.getDelayExtra2()) != 0) {
+                return false;
+            }
+        }
+
+        if (getNbOfAction() != _at.getNbOfAction()) {
+            return false;
+        }
+
+        int cpt = 0;
+        for(AvatarAction a: actions) {
+            if (a.toString().compareTo(_at.getAction(cpt).toString()) != 0) {
+                return false;
+            }
+            cpt ++;
+        }
+
+        return true;
+
+
+
+
+    }
+
 
     public void translate(AvatarTranslator translator, Object arg) {
         translator.translateTransition(this, arg);
diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
index b86df99e07899517e1fa18a84a822c1d43ba25d5..33837dc20af708f080e465b7809541f847b025c2 100644
--- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
+++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
@@ -750,6 +750,10 @@ public class AvatarSimulationBlock {
     }
 
     public int newEvaluateIntExpression(String _expr, Vector<String> _attributeValues) {
+        //TraceManager.addDev("Evaluating int expr:" + _expr);
+        if (_expr == null || _expr.trim().length() == 0) {
+            return 0;
+        }
         AvatarIBSExpressions.IExpr e1 = AvatarIBSolver.parseInt(block,_expr);
         SpecificationBlock sb = new SpecificationBlock(_attributeValues);
         return e1.eval(sb);
diff --git a/src/main/java/avatartranslator/incrementalverification/IncrementalVerificationManager.java b/src/main/java/avatartranslator/incrementalverification/IncrementalVerificationManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..92763e8b6a43d83230344a17430b5546ea066102
--- /dev/null
+++ b/src/main/java/avatartranslator/incrementalverification/IncrementalVerificationManager.java
@@ -0,0 +1,92 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package avatartranslator.incrementalverification;
+
+
+import avatartranslator.AvatarDependencyGraph;
+import avatartranslator.AvatarSpecification;
+import graph.*;
+
+import java.util.ArrayList;
+
+/**
+   * Class IncrementalVerificationManager
+   * Creation: 22/06/2023
+   * @version 1.0 22/06/2023
+   * @author Ludovic Apvrille
+ */
+public class IncrementalVerificationManager {
+
+    // Initial spec
+    public AvatarSpecification initialSpec;
+    AvatarDependencyGraph dgi;
+
+
+    // New spec
+    public AvatarSpecification newSpec;
+    public AvatarDependencyGraph dgm;
+
+    public AUTState vpI, vpM; // same Vp, in the two graphs
+
+
+    public AvatarDependencyGraph dgr; //dgr is a reduced graphs on which model-
+    //checking decides if vp is reachable through an
+    //old path
+    public ArrayList<AUTState> Pr; // List of states which reachability must be studied on dgr
+
+    public AvatarDependencyGraph dgp; //dgp is a reduced graphs on which model-
+    // checking decides if vp is reachable through a
+    // new path.
+
+
+
+
+
+
+    public IncrementalVerificationManager() {
+
+    }
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java
index a14c2d572dfab958a075d229560fa1e0cee348fc..acf8f2fbacb8b64339b2eee19f120d87216de906 100644
--- a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java
@@ -61,7 +61,7 @@ public class AddActionOnSignalMutation extends ActionOnSignalMutation implements
 
     public AvatarActionOnSignal createElement(AvatarSpecification _avspec) throws ApplyMutationException {
         AvatarSignal signal = getSignal(_avspec, getSignalName());
-        AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName(), signal, null);
+        AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName(), signal, null, getAvatarStateMachine(_avspec).getOwner());
         
         if (isCheckLatencySet())
             aaos.setCheckLatency(this.getCheckLatency());
diff --git a/src/main/java/avatartranslator/mutation/AddBlockMutation.java b/src/main/java/avatartranslator/mutation/AddBlockMutation.java
index 122fdd223644b05d3fe14918526a8462ef0b538c..2627248179081bc226a277d200ceecdc87797261 100644
--- a/src/main/java/avatartranslator/mutation/AddBlockMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddBlockMutation.java
@@ -74,7 +74,7 @@ public class AddBlockMutation extends BlockElementMutation implements AddMutatio
         AvatarBlock block = createElement(_avspec);
         _avspec.addBlock(block);
 
-        AvatarStartState start = new AvatarStartState("start", null);
+        AvatarStartState start = new AvatarStartState("start", null, block);
 
         AvatarStateMachine asm = block.getStateMachine();
 
diff --git a/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java b/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java
index 7819443fbc2a3ca94d62e5cb5a32570c05ea2b9f..fe8966f73be58739d81f7ce730d2efb5990de8a8 100644
--- a/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java
@@ -58,7 +58,7 @@ public class AddExpireTimerMutation extends ExpireTimerMutation implements AddMu
     }
 
     public AvatarExpireTimer createElement(AvatarSpecification _avspec) throws ApplyMutationException {
-        AvatarExpireTimer elt = new AvatarExpireTimer(getName(), null);
+        AvatarExpireTimer elt = new AvatarExpireTimer(getName(), null, getAvatarStateMachine(_avspec).getOwner());
         AvatarAttribute timer = getAttribute(_avspec, getTimerName());
         if (timer == null) {
             throw new ApplyMutationException("No timer named " + getTimerName() + " in block " + getBlockName());
diff --git a/src/main/java/avatartranslator/mutation/AddRandomMutation.java b/src/main/java/avatartranslator/mutation/AddRandomMutation.java
index ce9d2638525e2427a012750a31c08462ab16e7b9..5ccc33c69a15f60a4912f4104517a4001674eeb8 100644
--- a/src/main/java/avatartranslator/mutation/AddRandomMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddRandomMutation.java
@@ -60,7 +60,7 @@ public class AddRandomMutation extends RandomMutation implements AddMutation {
     
     //todo : add Graphical referenceObject
     public AvatarRandom createElement(AvatarSpecification _avspec) throws ApplyMutationException {
-        AvatarRandom rand = new AvatarRandom(getName(), null);
+        AvatarRandom rand = new AvatarRandom(getName(), null, getAvatarStateMachine(_avspec).getOwner());
         rand.setVariable(getAttributeName());
         if(areValuesSet()) rand.setValues(getMinValue(), getMaxValue());
         if(isFunctionSet()) {
diff --git a/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java b/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java
index b54fd631042f6adc949cede6bdfd9bb3b0c1345d..f0b2332d74a7af83e215284243059ce4f198ab1d 100644
--- a/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java
@@ -58,7 +58,7 @@ public class AddResetTimerMutation extends ResetTimerMutation implements AddMuta
     }
 
     public AvatarResetTimer createElement(AvatarSpecification _avspec) throws ApplyMutationException {
-        AvatarResetTimer elt = new AvatarResetTimer(getName(), null);
+        AvatarResetTimer elt = new AvatarResetTimer(getName(), null, getAvatarStateMachine(_avspec).getOwner());
         AvatarAttribute timer = getAttribute(_avspec, getTimerName());
         if (timer == null) {
             throw new ApplyMutationException("No timer named " + getTimerName() + " in block " + getBlockName());
diff --git a/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java b/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java
index 75e3e8463140e5183aeae64b9927f8b806fb23f9..1972abade1c991bd56a7eebd50656ffba87a2d2b 100644
--- a/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java
@@ -59,7 +59,7 @@ public class AddSetTimerMutation extends SetTimerMutation implements AddMutation
 
     //todo : graphique
     public AvatarSetTimer createElement(AvatarSpecification _avspec) throws ApplyMutationException {
-        AvatarSetTimer elt = new AvatarSetTimer(getName(), null);
+        AvatarSetTimer elt = new AvatarSetTimer(getName(), null, getAvatarStateMachine(_avspec).getOwner());
         AvatarAttribute timer = getAttribute(_avspec, getTimerName());
         if (timer == null) {
             throw new ApplyMutationException("No timer named " + getTimerName() + " in block " + getBlockName());
diff --git a/src/main/java/avatartranslator/mutation/AddStateMutation.java b/src/main/java/avatartranslator/mutation/AddStateMutation.java
index f7c7583c897d9a4e2a76c4c9d9f03d49af208960..91738a6a390873ebbdaac02305195a23d7c53cac 100644
--- a/src/main/java/avatartranslator/mutation/AddStateMutation.java
+++ b/src/main/java/avatartranslator/mutation/AddStateMutation.java
@@ -54,14 +54,14 @@ public class AddStateMutation extends StateMutation implements AddMutation {
         super(_blockName, _stateName);
     }
     
-    public AvatarState createElement() {
-        AvatarState state = new AvatarState(getStateName(), null);
+    public AvatarState createElement(AvatarStateMachineOwner _block) {
+        AvatarState state = new AvatarState(getStateName(), null, _block);
         return state;
 
     }
 
-    public AvatarState createElement(AvatarSpecification _avspec) {
-        return createElement();
+    public AvatarState createElement(AvatarSpecification _avspec) throws ApplyMutationException {
+        return createElement(getAvatarStateMachine(_avspec).getOwner());
     }
 
     public void apply(AvatarSpecification _avspec) throws ApplyMutationException {
@@ -75,7 +75,7 @@ public class AddStateMutation extends StateMutation implements AddMutation {
             }
         }
 
-        AvatarState state = createElement();
+        AvatarState state = createElement(asm.getOwner());
         asm.addElement(state);
     }
 
diff --git a/src/main/java/avatartranslator/tosysmlv2/AVATAR2SysMLV2.java b/src/main/java/avatartranslator/tosysmlv2/AVATAR2SysMLV2.java
index 8d82f7f2be6e83788b27b5f0ece1bfdaa09caa81..6dea5719841e824e7102abd0ed6d8030cc62384b 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AVATAR2SysMLV2.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AVATAR2SysMLV2.java
@@ -39,8 +39,11 @@
 
 package avatartranslator.tosysmlv2;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Scanner;
 import java.util.Vector;
 
 import avatartranslator.*;
@@ -93,12 +96,15 @@ public class AVATAR2SysMLV2 {
     private final static java.lang.String THEN = "then";
     private final static String DEC = "\t";
 
+    private final static String DEC_METHOD = PRIVATE + " " + METHOD;
+
 
     private AvatarSpecification avspec;
 
     private int timeUnit;
     private boolean debug;
     private boolean tracing;
+    private String [] exclusions;
 
     private Vector warnings;
 
@@ -148,12 +154,13 @@ public class AVATAR2SysMLV2 {
     }
 
 
-    public StringBuffer generateSysMLV2Spec(boolean _debug, boolean _tracing) {
+    public StringBuffer generateSysMLV2Spec(boolean _debug, boolean _tracing, String[] _exclusions) {
         debug = _debug;
         tracing = _tracing;
+        exclusions = _exclusions;
 
 
-        TraceManager.addDev("AVATAR2SysMLV2 avspec=" + avspec);
+        //TraceManager.addDev("AVATAR2SysMLV2 avspec=" + avspec);
 
         avspec.removeCompositeStates();
         avspec.removeLibraryFunctionCalls();
@@ -173,6 +180,36 @@ public class AVATAR2SysMLV2 {
 
     }
 
+    public  boolean isExcluded(String key) {
+        return isExcluded(key, exclusions);
+    }
+
+    public static boolean isExcluded(String key, String []_exclusions) {
+        if (_exclusions == null) {
+          return false;
+        }
+        boolean ret = false;
+
+        for(String s: _exclusions) {
+            if (s.compareTo(key) == 0) {
+                return true;
+            }
+        }
+
+        return ret;
+    }
+
+    private void addIfNotExcluded(StringBuffer sb, String s, String category, String [] exclusions) {
+        if (exclusions != null) {
+            for (int i = 0; i < exclusions.length; i++) {
+                if (exclusions[i].compareTo(category) == 0) {
+                    return;
+                }
+            }
+        }
+        sb.append(s);
+    }
+
     public void makeBlocks(StringBuffer sysml) {
         // Make non father blocks
         // For each block, consider the son
@@ -197,8 +234,10 @@ public class AVATAR2SysMLV2 {
     public void makePartDef(StringBuffer sysml, AvatarBlock block) {
         sysml.append(PART_DEF + " " + getPartDef(block) + B_BRACKET);
 
-        for(AvatarAttribute aa: block.getAttributes()) {
-            sysml.append(getAttribute(aa) + END);
+        if (!isExcluded("attributes")) {
+            for (AvatarAttribute aa : block.getAttributes()) {
+                sysml.append(getAttribute(aa) + END);
+            }
         }
 
         if (block.getAttributes().size()>0) {
@@ -206,9 +245,12 @@ public class AVATAR2SysMLV2 {
         }
 
         // methods
-        for(AvatarMethod am: block.getMethods()) {
-            //TraceManager.addDev("Handling method:" + am);
-            sysml.append(getMethod(am) + END);
+
+        if (!isExcluded("method")) {
+            for (AvatarMethod am : block.getMethods()) {
+                //TraceManager.addDev("Handling method:" + am);
+                sysml.append(getMethod(am) + END);
+            }
         }
 
         if (block.getMethods().size()>0) {
@@ -216,9 +258,11 @@ public class AVATAR2SysMLV2 {
         }
 
         // signals
-        for(AvatarSignal as: block.getSignals()) {
-            //TraceManager.addDev("Handling method:" + as);
-            sysml.append(getSignal(as) + END);
+        if (!isExcluded("signals")) {
+            for (AvatarSignal as : block.getSignals()) {
+                //TraceManager.addDev("Handling method:" + as);
+                sysml.append(getSignal(as) + END);
+            }
         }
 
         // State machine
@@ -272,7 +316,8 @@ public class AVATAR2SysMLV2 {
     }
 
     public static String getMethod(AvatarMethod am) {
-        java.lang.String ret = PRIVATE + " " + METHOD + " ";
+        java.lang.String ret = DEC_METHOD + " ";
+
         ret += am.toString();
 
         return ret;
@@ -306,23 +351,27 @@ public class AVATAR2SysMLV2 {
         return ret;
     }
 
-    public static StringBuffer getStateMachine(AvatarStateMachine asm) {
+    public  StringBuffer getStateMachine(AvatarStateMachine asm) {
         StringBuffer ret = new StringBuffer("");
 
         // declare all states
         // Then handle each transition from a state until another state is reached
 
-        for(AvatarStateMachineElement asme: asm.getListOfElements()) {
-            if (asme instanceof AvatarState) {
-                ret.append(STATE + " " + asme.getName() + END);
+        if (!isExcluded("state")) {
+            for (AvatarStateMachineElement asme : asm.getListOfElements()) {
+                if (!isExcluded("state")) {
+                    if (asme instanceof AvatarState) {
+                        ret.append(STATE + " " + asme.getName() + END);
+                    }
+                }
             }
-        }
 
-        ret.append(CR);
+            ret.append(CR);
 
-        for(AvatarStateMachineElement asme: asm.getListOfElements()) {
-            if ((asme instanceof AvatarState) || (asme instanceof AvatarStartState)){
-                ret.append(getStateHandling(asme));
+            for (AvatarStateMachineElement asme : asm.getListOfElements()) {
+                if ((asme instanceof AvatarState) || (asme instanceof AvatarStartState)) {
+                    ret.append(getStateHandling(asme));
+                }
             }
         }
 
@@ -482,6 +531,26 @@ public class AVATAR2SysMLV2 {
         return ret;
     }
 
+    public static ArrayList<String> getAllBlockNames(String _spec) {
+        ArrayList<String> listOfBlockNames = new ArrayList<>();
+
+        // Reading spec line and line and looking for:
+        // part <name> :
+        Scanner scanner = new Scanner(_spec);
+        while (scanner.hasNextLine()) {
+            String line = scanner.nextLine().trim();
+            if (line.startsWith("part ")) {
+                line = line.substring(5);
+                int index = line.indexOf(":");
+                if (index > -1) {
+                    listOfBlockNames.add(line.substring(0, index).trim());
+                }
+            }
+        }
+
+        return listOfBlockNames;
+    }
+
 
 
 }
diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java
index b16d4eb57aa89be872e56b6861909de0298bde69..17e4090163fc867dde9332eb9af49ef96444676c 100644
--- a/src/main/java/cli/Action.java
+++ b/src/main/java/cli/Action.java
@@ -50,6 +50,7 @@ import avatartranslator.mutation.AvatarMutation;
 import avatartranslator.mutation.ParseMutationException;
 import common.ConfigurationTTool;
 import common.SpecConfigTTool;
+import graph.AUTGraph;
 import graph.RG;
 import launcher.RTLLauncher;
 import launcher.RshClient;
@@ -69,6 +70,7 @@ import tmltranslator.TMLTextSpecification;
 import ui.MainGUI;
 import ui.avatarinteractivesimulation.AvatarInteractiveSimulationActions;
 import ui.avatarinteractivesimulation.JFrameAvatarInteractiveSimulation;
+import ui.graphd.GraphDPanel;
 import ui.util.IconManager;
 import ui.window.JDialogProverifVerification;
 import ui.window.JDialogSystemCGeneration;
@@ -140,6 +142,10 @@ public class Action extends Command implements ProVerifOutputListener {
     private final static String AVATAR_SIMULATION_OPEN_WINDOW = "avatar-simulation-open-window";
     private final static String AVATAR_SIMULATION_GENERIC = "avatar-simulation-generic";
 
+    private final static String AVATAR_COMPLEXITY = "avatar-complexity";
+
+    private final static String GRAPH_TO_AVATAR = "graph-to-avatar";
+
 
 
     private AvatarSpecificationSimulation ass;
@@ -1012,7 +1018,7 @@ public class Action extends Command implements ProVerifOutputListener {
             }
         };
 
-        // Diplodocus security verfication proverif
+        // Diplodocus security verification with proverif
         Command diplodocusSecProof = new Command() {
             public String getCommand() {
                 return DIPLO_SEC_PROOF;
@@ -1225,6 +1231,48 @@ public class Action extends Command implements ProVerifOutputListener {
         };
 
 
+        Command makeComplexityAction = new Command() {
+            public String getCommand() {
+                return AVATAR_COMPLEXITY;
+            }
+
+            public String getShortCommand() {
+                return "ac";
+            }
+
+            public String getDescription() {
+                return "Computes the complexity of an AVATAR Model";
+            }
+
+            public String getUsage() {
+                return "";
+            }
+
+            public String getExample() {
+                return "ac";
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+                AvatarSpecification spec = interpreter.mgui.gtm.getAvatarSpecification();
+
+                if (spec == null) {
+                    return "No AVATAR specification";
+                }
+
+                TraceManager.addUser("Hello from avatar complexity");
+
+
+
+                return null;
+            }
+        };
+
+
         Command makeMutationBatchFromAvatar = new Command() {
             public String getCommand() {
                 return AVATAR_MUTATION_BATCH;
@@ -2020,6 +2068,65 @@ public class Action extends Command implements ProVerifOutputListener {
         };
 
 
+        Command graphtToAvatar = new Command() {
+            public String getCommand() {
+                return GRAPH_TO_AVATAR;
+            }
+
+            public String getShortCommand() {
+                return "gta";
+            }
+
+            public String getDescription() {
+                return "Draws an AVATAR design from a dependency graph";
+            }
+
+            public String getUsage() {
+                String usage =  "graph-to-avatar. A graph diagram must have been selected first";
+                return usage;
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+                TDiagramPanel tdp = interpreter.mgui.getCurrentTDiagramPanel();
+                if (!(tdp instanceof GraphDPanel)) {
+                    return "Select first a graph panel";
+                }
+
+                GraphDPanel panel = (GraphDPanel)tdp;
+                AUTGraph graph = panel.autGraph;
+
+                if (graph == null) {
+                    return "Graph must have been built from an AUT graph";
+                }
+
+                Object o = graph.referenceObject;
+
+                if (!(o instanceof AvatarCompactDependencyGraph)) {
+                    return "Graph must have been built from an AvatarCompactDependencyGraph";
+                }
+
+                TraceManager.addDev("Graph found, drawing...");
+                AvatarCompactDependencyGraph cdg = (AvatarCompactDependencyGraph)o;
+
+                AvatarSpecification avspec = cdg.makeAvatarSpecification();
+                if (avspec == null) {
+                    return "Error when parsing dependency graph";
+                }
+
+                //TraceManager.addDev("Avatar specification recursive: " + avspec.toStringRecursive(true));
+
+                interpreter.mgui.drawAvatarSpecification(avspec);
+
+
+                return null;
+            }
+        };
+
+
 
 
 
@@ -2060,6 +2167,7 @@ public class Action extends Command implements ProVerifOutputListener {
 
         addAndSortSubcommand(printAvatarSpec);
         addAndSortSubcommand(makeMutationFromAvatar);
+        addAndSortSubcommand(makeComplexityAction);
         addAndSortSubcommand(makeMutationBatchFromAvatar);
         addAndSortSubcommand(drawAvatarSpec);
         addAndSortSubcommand(avatarSimulationToBrk);
@@ -2069,6 +2177,10 @@ public class Action extends Command implements ProVerifOutputListener {
 
         addAndSortSubcommand(generic);
 
+        addAndSortSubcommand(graphtToAvatar);
+
+
+
     }
 
     private class ProVerifResultSection {
diff --git a/src/main/java/graph/AUTCommTag.java b/src/main/java/graph/AUTCommTag.java
new file mode 100755
index 0000000000000000000000000000000000000000..135a652c48b3ae99748437727aa65a03b1fb123f
--- /dev/null
+++ b/src/main/java/graph/AUTCommTag.java
@@ -0,0 +1,70 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+package graph;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.Random;
+
+/**
+ * Class AUTCommTag
+ * Creation : 29/06/2023
+ * @version 1.0 29/06/2023
+ *
+ * @author Ludovic APVRILLE
+ */
+public  class AUTCommTag extends AUTTag  {
+
+
+    public String ID = "";
+
+    public AUTCommTag(String _ID) {
+        super(_ID);
+    }
+
+    public boolean hasToBeTagged(AUTState _state) {
+        return false;
+    }
+
+    public String getID() {
+        return ID;
+    }
+
+}
diff --git a/src/main/java/graph/AUTGraph.java b/src/main/java/graph/AUTGraph.java
index 0c1c072ecb49836bd1020002b239e7ca8bdcc723..46745c872d7d5db70926ac0f6f8a19b9b20661a5 100755
--- a/src/main/java/graph/AUTGraph.java
+++ b/src/main/java/graph/AUTGraph.java
@@ -58,6 +58,9 @@ import java.util.*;
  * @author Ludovic APVRILLE
  */
 public class AUTGraph implements myutil.Graph {
+    public final static AUTTag DEADLOCK_TAG = new AUTDeadlockTag("Deadlock");
+    public final static AUTTag COMM_TAG = new AUTCommTag("COMM");
+
 
     // Graph is defined with this only
     protected ArrayList<AUTTransition> transitions;
@@ -73,6 +76,8 @@ public class AUTGraph implements myutil.Graph {
     protected boolean[] hasEntryTransition;
     protected boolean statesComputed;
 
+    public Object referenceObject;
+
 
     public AUTGraph() {
         transitions = new ArrayList<>();
@@ -459,6 +464,18 @@ public class AUTGraph implements myutil.Graph {
         return null;
     }
 
+    public ArrayList<AUTState> getAllStateWithReference(Object _ref) {
+        ArrayList<AUTState> states = new ArrayList<>();
+        for(AUTState st: states) {
+            if (st.referenceObject == _ref) {
+                states.add(st);
+            }
+        }
+        return states;
+    }
+
+
+
     public AUTState getState(int _id) {
         return states.get(_id);
     }
diff --git a/src/main/java/graph/AUTState.java b/src/main/java/graph/AUTState.java
index 272c32fef649b843a26b4a4a0b1ecfa8ac7d4e3b..f6b994ca1a612b6e5d65fdd31193fa9c8442c20f 100755
--- a/src/main/java/graph/AUTState.java
+++ b/src/main/java/graph/AUTState.java
@@ -52,7 +52,7 @@ import java.util.Random;
  */
 public class AUTState implements Comparable<AUTState> {
 
-    public final static AUTTag DEADLOCK_TAG = new AUTDeadlockTag("Deadlock");
+
 
     public String info;
     public int id;
diff --git a/src/main/java/graph/AUTTransition.java b/src/main/java/graph/AUTTransition.java
index f3dc066ec8f2539d5f7dc5a8b9bfe7e3daf2b6d6..5825d7ddd4069db0f25c1e29ab4467bad584e982 100755
--- a/src/main/java/graph/AUTTransition.java
+++ b/src/main/java/graph/AUTTransition.java
@@ -39,6 +39,8 @@
 
 package graph;
 
+import java.util.ArrayList;
+
 /**
  * Class AUTTransition
  * Creation : 16/09/2004
@@ -54,6 +56,8 @@ public class AUTTransition implements Comparable<AUTTransition> {
     public AUTElement elt;
     public boolean isTau;
 
+    public ArrayList<AUTTag> tags;
+
     public AUTTransition(int _origin, String _transition, int _destination) {
         origin = _origin;
         destination = _destination;
@@ -66,6 +70,7 @@ public class AUTTransition implements Comparable<AUTTransition> {
         transition = _transition;
     }
 
+
     public int compareTo(AUTTransition _t) {
         if (origin != _t.origin) {
             return -1;
@@ -165,5 +170,19 @@ public class AUTTransition implements Comparable<AUTTransition> {
         return tr;
     }
 
+    public void addTag(AUTTag _tag) {
+        if (tags == null) {
+            tags = new ArrayList<>();
+        }
+        tags.add(_tag);
+    }
+
+    public boolean hasTag(AUTTag _tag) {
+        if (tags == null) {
+            return false;
+        }
+        return tags.contains(_tag);
+    }
+
 
 }
diff --git a/src/main/java/myutil/AIInterface.java b/src/main/java/myutil/AIInterface.java
index 50818bc2d8c4c3e07c5bb055e156a9627a071946..fc0e46f420f41780abe2631d3743fc63e7a34d6d 100644
--- a/src/main/java/myutil/AIInterface.java
+++ b/src/main/java/myutil/AIInterface.java
@@ -80,6 +80,12 @@ public class AIInterface {
         knowledge.clear();
     }
 
+    public void removePreviousKnowledge() {
+        if ((knowledge != null) && (knowledge.size() > 0)) {
+            knowledge.remove(knowledge.size() - 1);
+        }
+    }
+
     public void setURL(String _url) {
         urlText = _url;
     }
@@ -111,9 +117,9 @@ public class AIInterface {
 
         try {
             if (connection == null) {
-                TraceManager.addDev("Connecting to " + urlText);
+                //TraceManager.addDev("Connecting to " + urlText);
                 connection = (HttpURLConnection) new URL(urlText).openConnection();
-                TraceManager.addDev("Connection to " + urlText + " is opened");
+                //TraceManager.addDev("Connection to " + urlText + " is opened");
                 connection.setRequestMethod("POST");
                 //connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
@@ -125,7 +131,7 @@ public class AIInterface {
             disconnect();
             throw new AIInterfaceException(CONNECTION_PB);
         }
-        TraceManager.addDev("Connection done with key: " + key);
+        //TraceManager.addDev("Connection done with key: " + key);
     }
 
     private void disconnect() throws AIInterfaceException {
@@ -151,11 +157,11 @@ public class AIInterface {
             for(AIKnowledge aik: knowledge) {
                 sub = new org.json.JSONObject();
                 sub.put("role", "user");
-                TraceManager.addDev("Putting user knowledge: " + aik.userKnowledge);
+                //TraceManager.addDev("Putting user knowledge: " + aik.userKnowledge);
                 sub.put("content", aik.userKnowledge);
                 array.put(sub);
                 sub = new org.json.JSONObject();
-                TraceManager.addDev("Putting assistant knowledge: " + aik.assistantKnowledge);
+                //TraceManager.addDev("Putting assistant knowledge: " + aik.assistantKnowledge);
                 sub.put("role", "assistant");
                 sub.put("content", aik.assistantKnowledge);
                 array.put(sub);
diff --git a/src/main/java/myutil/intboolsolver/IBSStdLexer.java b/src/main/java/myutil/intboolsolver/IBSStdLexer.java
index f075ce56594c72c670ef5ade22c1752dd7adcbd3..5410950e794a78b39f6fcdb0f465ac65409d25a8 100644
--- a/src/main/java/myutil/intboolsolver/IBSStdLexer.java
+++ b/src/main/java/myutil/intboolsolver/IBSStdLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 02/06/2023 11:28 */
+/* The following code was generated by JFlex 1.4.3 on 20/06/2023 13:12 */
 
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
  *
@@ -46,7 +46,7 @@ import java.util.HashSet;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 02/06/2023 11:28 from the specification file
+ * on 20/06/2023 13:12 from the specification file
  * <code>__IBSStdLexer__.jflex</code>
  */
 public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp, State extends IBSParamState, SpecState extends IBSParamSpecState, CompState extends IBSParamCompState > implements IBSScanner<Spec, Comp, State, SpecState, CompState>, java_cup.runtime.Scanner {
@@ -75,12 +75,12 @@ public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp,
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\2\1\1\0\2\1\22\0\1\1\1\33\3\0\1\30\1\31"+
-    "\1\0\1\37\1\40\1\26\1\24\1\0\1\25\1\5\1\27\1\2"+
-    "\11\3\2\0\1\35\1\34\1\36\2\0\32\4\4\0\1\4\1\0"+
-    "\1\12\1\6\1\4\1\17\1\11\1\22\1\14\1\4\1\20\2\4"+
-    "\1\10\1\4\1\13\1\7\2\4\1\16\1\23\1\21\1\15\5\4"+
-    "\1\0\1\32\uff83\0";
+    "\11\0\1\1\1\1\1\0\2\1\22\0\1\1\1\33\3\0\1\30"+
+    "\1\31\1\0\1\37\1\40\1\26\1\24\1\0\1\25\1\5\1\27"+
+    "\1\2\11\3\2\0\1\35\1\34\1\36\2\0\32\4\4\0\1\4"+
+    "\1\0\1\12\1\6\1\4\1\17\1\11\1\22\1\14\1\4\1\20"+
+    "\2\4\1\10\1\4\1\13\1\7\2\4\1\16\1\23\1\21\1\15"+
+    "\5\4\1\0\1\32\uff83\0";
 
   /** 
    * Translates characters to character classes
@@ -93,14 +93,15 @@ public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp,
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\2\0\1\1\3\0\2\2\6\3\1\4\1\5\1\6"+
-    "\1\7\1\10\2\0\1\11\1\0\1\12\1\13\1\14"+
-    "\1\15\3\0\1\16\4\3\1\17\1\16\1\20\1\21"+
-    "\1\22\1\23\3\0\1\17\1\11\2\3\3\0\1\24"+
-    "\1\3\1\0\1\25\1\0\1\26\2\0\1\27\1\30";
+    "\2\0\1\1\3\0\1\2\2\3\6\4\1\5\1\6"+
+    "\1\7\1\10\1\11\2\2\1\12\1\2\1\13\1\14"+
+    "\1\15\1\16\3\0\1\17\4\4\1\20\1\17\1\21"+
+    "\1\22\1\23\1\24\3\0\1\20\1\12\2\4\3\0"+
+    "\1\25\1\4\1\0\1\26\1\0\1\27\2\0\1\30"+
+    "\1\31";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[61];
+    int [] result = new int[62];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -125,17 +126,17 @@ public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp,
   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
 
   private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\41\0\102\0\143\0\204\0\245\0\102\0\306"+
-    "\0\347\0\u0108\0\u0129\0\u014a\0\u016b\0\u018c\0\102\0\102"+
-    "\0\102\0\102\0\102\0\u01ad\0\u01ce\0\u01ef\0\u0210\0\u0231"+
-    "\0\u0252\0\102\0\102\0\u0273\0\u0294\0\u02b5\0\347\0\u02d6"+
-    "\0\u02f7\0\u0318\0\u0339\0\102\0\102\0\102\0\102\0\102"+
-    "\0\102\0\u035a\0\u037b\0\u039c\0\347\0\347\0\u03bd\0\u03de"+
-    "\0\u03ff\0\u0420\0\u0441\0\347\0\u0462\0\u0483\0\102\0\u04a4"+
-    "\0\347\0\u04c5\0\u04e6\0\102\0\102";
+    "\0\0\0\41\0\102\0\143\0\204\0\245\0\102\0\102"+
+    "\0\306\0\347\0\u0108\0\u0129\0\u014a\0\u016b\0\u018c\0\102"+
+    "\0\102\0\102\0\102\0\102\0\u01ad\0\u01ce\0\u01ef\0\u0210"+
+    "\0\u0231\0\u0252\0\102\0\102\0\u0273\0\u0294\0\u02b5\0\347"+
+    "\0\u02d6\0\u02f7\0\u0318\0\u0339\0\102\0\102\0\102\0\102"+
+    "\0\102\0\102\0\u035a\0\u037b\0\u039c\0\347\0\347\0\u03bd"+
+    "\0\u03de\0\u03ff\0\u0420\0\u0441\0\347\0\u0462\0\u0483\0\102"+
+    "\0\u04a4\0\347\0\u04c5\0\u04e6\0\102\0\102";
 
   private static int [] zzUnpackRowMap() {
-    int [] result = new int[61];
+    int [] result = new int[62];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
@@ -159,22 +160,22 @@ public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp,
 
   private static final String ZZ_TRANS_PACKED_0 =
     "\1\0\1\3\4\0\1\4\5\0\1\5\3\0\1\6"+
-    "\21\0\1\3\1\7\1\10\1\11\1\0\1\11\1\12"+
-    "\2\11\1\13\1\14\5\11\1\15\1\16\1\11\1\17"+
+    "\20\0\1\7\1\3\1\10\1\11\1\12\1\7\1\12"+
+    "\1\13\2\12\1\14\1\15\5\12\1\16\1\17\1\12"+
     "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+
-    "\1\30\1\31\1\32\1\33\50\0\1\34\46\0\1\35"+
-    "\36\0\1\36\27\0\2\10\37\0\22\11\17\0\14\11"+
-    "\1\37\5\11\17\0\11\11\1\40\10\11\17\0\5\11"+
-    "\1\41\14\11\17\0\14\11\1\42\5\11\17\0\10\11"+
-    "\1\43\11\11\46\0\1\44\41\0\1\45\42\0\1\46"+
-    "\40\0\1\47\40\0\1\50\40\0\1\51\13\0\1\52"+
-    "\43\0\1\53\47\0\1\54\21\0\15\11\1\55\4\11"+
-    "\17\0\17\11\1\56\2\11\17\0\13\11\1\57\6\11"+
-    "\17\0\6\11\1\60\13\11\25\0\1\61\46\0\1\62"+
-    "\33\0\1\63\31\0\7\11\1\64\12\11\17\0\21\11"+
-    "\1\65\26\0\1\66\46\0\1\67\35\0\1\70\26\0"+
-    "\7\11\1\71\12\11\27\0\1\72\37\0\1\73\42\0"+
-    "\1\74\43\0\1\75\22\0";
+    "\1\30\1\31\1\32\1\33\1\34\50\0\1\35\46\0"+
+    "\1\36\36\0\1\37\27\0\2\11\37\0\22\12\17\0"+
+    "\14\12\1\40\5\12\17\0\11\12\1\41\10\12\17\0"+
+    "\5\12\1\42\14\12\17\0\14\12\1\43\5\12\17\0"+
+    "\10\12\1\44\11\12\46\0\1\45\41\0\1\46\42\0"+
+    "\1\47\40\0\1\50\40\0\1\51\40\0\1\52\13\0"+
+    "\1\53\43\0\1\54\47\0\1\55\21\0\15\12\1\56"+
+    "\4\12\17\0\17\12\1\57\2\12\17\0\13\12\1\60"+
+    "\6\12\17\0\6\12\1\61\13\12\25\0\1\62\46\0"+
+    "\1\63\33\0\1\64\31\0\7\12\1\65\12\12\17\0"+
+    "\21\12\1\66\26\0\1\67\46\0\1\70\35\0\1\71"+
+    "\26\0\7\12\1\72\12\12\27\0\1\73\37\0\1\74"+
+    "\42\0\1\75\43\0\1\76\22\0";
 
   private static int [] zzUnpackTrans() {
     int [] result = new int[1287];
@@ -215,12 +216,12 @@ public class IBSStdLexer< Spec extends IBSParamSpec, Comp extends IBSParamComp,
   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
   private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\2\0\1\11\3\0\1\11\7\1\5\11\2\0\1\1"+
-    "\1\0\2\1\2\11\3\0\5\1\6\11\3\0\4\1"+
-    "\3\0\2\1\1\0\1\11\1\0\1\1\2\0\2\11";
+    "\2\0\1\11\3\0\2\11\7\1\5\11\6\1\2\11"+
+    "\3\0\5\1\6\11\3\0\4\1\3\0\2\1\1\0"+
+    "\1\11\1\0\1\1\2\0\2\11";
 
   private static int [] zzUnpackAttribute() {
-    int [] result = new int[61];
+    int [] result = new int[62];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
@@ -360,7 +361,7 @@ public void init(Comp _comp, String _s) throws java.io.IOException { attrHandler
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 106) {
+    while (i < 108) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -639,32 +640,36 @@ public void init(Comp _comp, String _s) throws java.io.IOException { attrHandler
       zzMarkedPos = zzMarkedPosL;
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 15: 
+        case 16: 
           { return new Symbol(IBSStdSymbols.AND);
           }
-        case 25: break;
-        case 9: 
+        case 26: break;
+        case 10: 
           { return new Symbol(IBSStdSymbols.NOT);
           }
-        case 26: break;
-        case 4: 
+        case 27: break;
+        case 5: 
           { return new Symbol(IBSStdSymbols.PLUS);
           }
-        case 27: break;
-        case 2: 
+        case 28: break;
+        case 3: 
           { try { return new Symbol(IBSStdSymbols.INT, Integer.valueOf(exprC.make_iConst(Integer.parseInt(yytext()))));}
                   catch (NumberFormatException nfe) { throw new Exception ("Lexer : Integer Format : " + yytext()); }
           }
-        case 28: break;
-        case 7: 
+        case 29: break;
+        case 1: 
+          { break;
+          }
+        case 30: break;
+        case 8: 
           { return new Symbol(IBSStdSymbols.DIV);
           }
-        case 29: break;
-        case 11: 
+        case 31: break;
+        case 12: 
           { return new Symbol(IBSStdSymbols.GT);
           }
-        case 30: break;
-        case 3: 
+        case 32: break;
+        case 4: 
           { IBSAttributes<Spec,Comp,State,SpecState,CompState>.TypedAttribute attr =
                       attrHandler.getTypedAttribute(yytext());
                   switch(attr.getType()) {
@@ -676,76 +681,75 @@ public void init(Comp _comp, String _s) throws java.io.IOException { attrHandler
                       default : throw new Error ("Lexer, BUG : bad attribute type");
                   }
           }
-        case 31: break;
-        case 20: 
-          { return new Symbol(IBSStdSymbols.BOOL, Integer.valueOf(exprC.make_bConst(true)));
-          }
-        case 32: break;
-        case 17: 
-          { return new Symbol(IBSStdSymbols.EQ);
-          }
         case 33: break;
-        case 14: 
-          { return new Symbol(IBSStdSymbols.OR);
+        case 21: 
+          { return new Symbol(IBSStdSymbols.BOOL, Integer.valueOf(exprC.make_bConst(true)));
           }
         case 34: break;
-        case 24: 
-          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_INT);
+        case 18: 
+          { return new Symbol(IBSStdSymbols.EQ);
           }
         case 35: break;
-        case 16: 
-          { return new Symbol(IBSStdSymbols.DIF);
+        case 15: 
+          { return new Symbol(IBSStdSymbols.OR);
           }
         case 36: break;
-        case 13: 
-          { return new Symbol(IBSStdSymbols.RPAR);
+        case 25: 
+          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_INT);
           }
         case 37: break;
-        case 5: 
-          { return new Symbol(IBSStdSymbols.MINUS);
+        case 17: 
+          { return new Symbol(IBSStdSymbols.DIF);
           }
         case 38: break;
-        case 23: 
-          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_BOOL);
+        case 14: 
+          { return new Symbol(IBSStdSymbols.RPAR);
           }
         case 39: break;
         case 6: 
-          { return new Symbol(IBSStdSymbols.MULT);
+          { return new Symbol(IBSStdSymbols.MINUS);
           }
         case 40: break;
-        case 12: 
-          { return new Symbol(IBSStdSymbols.LPAR);
+        case 24: 
+          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_BOOL);
           }
         case 41: break;
-        case 19: 
-          { return new Symbol(IBSStdSymbols.GEQ);
+        case 7: 
+          { return new Symbol(IBSStdSymbols.MULT);
           }
         case 42: break;
-        case 8: 
-          { return new Symbol(IBSStdSymbols.MOD);
+        case 13: 
+          { return new Symbol(IBSStdSymbols.LPAR);
           }
         case 43: break;
-        case 22: 
-          { return new Symbol(IBSStdSymbols.BOOL, Integer.valueOf(exprC.make_bConst(false)));
+        case 20: 
+          { return new Symbol(IBSStdSymbols.GEQ);
           }
         case 44: break;
-        case 18: 
-          { return new Symbol(IBSStdSymbols.LEQ);
+        case 9: 
+          { return new Symbol(IBSStdSymbols.MOD);
           }
         case 45: break;
-        case 21: 
-          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_GUARD);
+        case 2: 
+          { throw new Exception ("Unknown character in  expression");
           }
         case 46: break;
-        case 10: 
-          { return new Symbol(IBSStdSymbols.LT);
+        case 23: 
+          { return new Symbol(IBSStdSymbols.BOOL, Integer.valueOf(exprC.make_bConst(false)));
           }
         case 47: break;
-        case 1:
-          {
-            break;
+        case 19: 
+          { return new Symbol(IBSStdSymbols.LEQ);
           }
         case 48: break;
+        case 22: 
+          { yybegin(INTBOOL); return new Symbol(IBSStdSymbols.PARSE_GUARD);
+          }
+        case 49: break;
+        case 11: 
+          { return new Symbol(IBSStdSymbols.LT);
+          }
+        case 50: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
diff --git a/src/main/java/myutil/intboolsolver/IBSStdParser.java b/src/main/java/myutil/intboolsolver/IBSStdParser.java
index 920fde74a7c5e62fe3e2768ce62c8e97d8139a04..6ec35da8ea1eeb38a51eff3fc1764fff41223ca4 100644
--- a/src/main/java/myutil/intboolsolver/IBSStdParser.java
+++ b/src/main/java/myutil/intboolsolver/IBSStdParser.java
@@ -7,6 +7,7 @@ package myutil.intboolsolver;
 
 import java_cup.runtime.*;
 import java.util.HashSet;
+import myutil.TraceManager;
 import java_cup.runtime.XMLElement;
 
 /** CUP v0.11b 20210814 (GIT d69c832) generated parser.
@@ -199,6 +200,13 @@ public class IBSStdParser< Spec extends IBSParamSpec, Comp extends IBSParamComp,
 
 
 
+    @Override
+    public void report_error(String message, Object info){
+      TraceManager.addDev("Error during parsing: " + message + " / class " + info.getClass());
+    }
+    @Override
+    protected void report_expected_token_ids() {}
+
     IBSScanner<Spec,Comp,State,SpecState,CompState> lexer;
     
     public void setLexer(IBSScanner<Spec,Comp,State,SpecState,CompState> _lexer){ lexer=_lexer; setScanner(_lexer); }
diff --git a/src/main/java/myutil/intboolsolver/javacup/IBSOptParser.jcup b/src/main/java/myutil/intboolsolver/javacup/IBSOptParser.jcup
index a7aa53ceabcb4dd44d955fc0f3c272bca65c16ae..0630581a165600f3a5f763a9ccf19b6579dcfcbe 100644
--- a/src/main/java/myutil/intboolsolver/javacup/IBSOptParser.jcup
+++ b/src/main/java/myutil/intboolsolver/javacup/IBSOptParser.jcup
@@ -40,7 +40,7 @@
 package myutil.intboolsolver;
 import java_cup.runtime.*;
 import java.util.HashSet;
-
+import myutil.TraceManager;
 
 /* To add in generated file:
    < Spec extends IBSParamSpec, Comp extends IBSParamComp, State extends IBSParamState, SpecState extends IBSParamSpecState, CompState extends IBSParamCompState >
@@ -48,6 +48,13 @@ import java.util.HashSet;
 
 parser code {:
 
+    @Override
+    public void report_error(String message, Object info){
+      TraceManager.addDev("Error during parsing: " + message + " / class " + info.getClass());
+    }
+    @Override
+    protected void report_expected_token_ids() {}
+
     IBSScanner<Spec,Comp,State,SpecState,CompState> lexer;
     
     public void setLexer(IBSScanner<Spec,Comp,State,SpecState,CompState> _lexer){ lexer=_lexer; setScanner(_lexer); }
diff --git a/src/main/java/myutil/intboolsolver/javacup/IBSStdLexer.jflex b/src/main/java/myutil/intboolsolver/javacup/IBSStdLexer.jflex
index 381612e723a73591e8128cd7c4cd989ac63ddbeb..0a92fdafec3e55443251788bbb81ee4a24fbe0ce 100644
--- a/src/main/java/myutil/intboolsolver/javacup/IBSStdLexer.jflex
+++ b/src/main/java/myutil/intboolsolver/javacup/IBSStdLexer.jflex
@@ -107,10 +107,10 @@ Identifier = [a-zA-Z_][a-zA-Z0-9_\.]*
 <YYINITIAL> "boolean"  { yybegin(INTBOOL); return new Symbol(IBSFlex#Symb.PARSE_BOOL); }
 <YYINITIAL> "guard"    { yybegin(INTBOOL); return new Symbol(IBSFlex#Symb.PARSE_GUARD); }
 <YYINITIAL> "integer"  { yybegin(INTBOOL); return new Symbol(IBSFlex#Symb.PARSE_INT); }
-<YYINITIAL> {Space}    {}
+<YYINITIAL> {Space}    { break; }
 
 <INTBOOL> {
- {Space}        {}
+ {Space}        { break; }
  "true"         { return new Symbol(IBSFlex#Symb.BOOL, Integer.valueOf(exprC.make_bConst(true))); }
  "false"        { return new Symbol(IBSFlex#Symb.BOOL, Integer.valueOf(exprC.make_bConst(false))); }
  {Natural}      { try { return new Symbol(IBSFlex#Symb.INT, Integer.valueOf(exprC.make_iConst(Integer.parseInt(yytext()))));}
@@ -146,4 +146,5 @@ Identifier = [a-zA-Z_][a-zA-Z0-9_\.]*
                       default : throw new Error ("Lexer, BUG : bad attribute type");
                   }
                 }
-}
\ No newline at end of file
+ . { throw new Exception ("Unknown character in  expression"); }
+}
diff --git a/src/main/java/myutil/intboolsolver/javacup/IBSStdParser.jcup b/src/main/java/myutil/intboolsolver/javacup/IBSStdParser.jcup
index 07d5edc77c9d06ae02c31e9f414cec02768583cd..95355eef77240d52e35480a8ee9b7577a92db1e9 100644
--- a/src/main/java/myutil/intboolsolver/javacup/IBSStdParser.jcup
+++ b/src/main/java/myutil/intboolsolver/javacup/IBSStdParser.jcup
@@ -37,9 +37,11 @@
  */
  
 
+
 package myutil.intboolsolver;
 import java_cup.runtime.*;
 import java.util.HashSet;
+import myutil.TraceManager;
 
 
 /* To add in generated file:
@@ -48,6 +50,13 @@ import java.util.HashSet;
 
 parser code {:
 
+    @Override
+    public void report_error(String message, Object info){
+      TraceManager.addDev("Error during parsing: " + message + " / class " + info.getClass());
+    }
+    @Override
+    protected void report_expected_token_ids() {}
+
     IBSScanner<Spec,Comp,State,SpecState,CompState> lexer;
     
     public void setLexer(IBSScanner<Spec,Comp,State,SpecState,CompState> _lexer){ lexer=_lexer; setScanner(_lexer); }
diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java
index e7c3f374e5c761be2fef671645e88e15bdb36e52..8b47bb0f55b948660e4d2a5bb41076e6750708bc 100755
--- a/src/main/java/tmltranslator/TMLSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java
@@ -996,6 +996,8 @@ public class TMLSyntaxChecking {
             String s = gen.determineRouting(mapping.getHwNodeOf(ch.getOriginTask()),
                     mapping.getHwNodeOf(ch.getDestinationTask()), ch);
             if (s == null) {
+                TraceManager.addDev(INVALID_ROUTING + ": " + ch.getName() + " between " + ch.getOriginTask().getName() + " and " +
+                        ch.getDestinationTask().getName());
                 addError(ch.getOriginTask(), null, INVALID_ROUTING + ": " + ch.getName() + " between " + ch.getOriginTask().getName() + " and " +
                         ch.getDestinationTask().getName(), TMLError.ERROR_STRUCTURE);
             }
diff --git a/src/main/java/tmltranslator/toavatar/FullTML2Avatar.java b/src/main/java/tmltranslator/toavatar/FullTML2Avatar.java
index 211650c34ab7b209865213b99ab2c97a59e09ec6..843e52becce8f536fa8dad528a1befe513ba5a7d 100644
--- a/src/main/java/tmltranslator/toavatar/FullTML2Avatar.java
+++ b/src/main/java/tmltranslator/toavatar/FullTML2Avatar.java
@@ -147,7 +147,7 @@ public class FullTML2Avatar {
         if (mc) {
             avspec.addBlock(top);
             AvatarStateMachine topasm = top.getStateMachine();
-            AvatarStartState topss = new AvatarStartState("start", null);
+            AvatarStartState topss = new AvatarStartState("start", null, top);
             topasm.setStartState(topss);
             topasm.addElement(topss);
         }
@@ -400,14 +400,14 @@ public class FullTML2Avatar {
                 //Oh this is fun...let's restructure the state machine
                 //Create own start state, and ignore the returned one
                 List<AvatarStateMachineElement> elementList = translateState(task.getActivityDiagram().get(0), block);
-                AvatarStartState ss = new AvatarStartState("start", task.getActivityDiagram().get(0).getReferenceObject());
+                AvatarStartState ss = new AvatarStartState("start", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 asm.addElement(ss);
                 AvatarTransition at = new AvatarTransition(block, "__after_start", task.getActivityDiagram().get(0).getReferenceObject());
                 //at.addAction(AvatarTerm.createActionFromString(block, "req_loop_index = 0"));
                 ss.addNext(at);
                 asm.addElement(at);
 
-                AvatarState loopstart = new AvatarState("loopstart", task.getActivityDiagram().get(0).getReferenceObject());
+                AvatarState loopstart = new AvatarState("loopstart", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 at.addNext(loopstart);
                 asm.addElement(loopstart);
 
@@ -440,7 +440,7 @@ public class FullTML2Avatar {
 
                 //Create exit after # of loop iterations is maxed out
                 /*AvatarStopState stop =*/
-                new AvatarStopState("stop", task.getActivityDiagram().get(0).getReferenceObject());
+                new AvatarStopState("stop", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 /*AvatarTransition exitTran = */
                 new AvatarTransition(block, "to_stop", task.getActivityDiagram().get(0).getReferenceObject());
 
@@ -455,7 +455,7 @@ public class FullTML2Avatar {
                     loopstart.addNext(incrTran);
                     AvatarSignal sig = block.getSignalByName(getLastName(req.getName()));
 
-                    AvatarActionOnSignal as = new AvatarActionOnSignal("getRequest_" + req.getName(), sig, req.getReferenceObject());
+                    AvatarActionOnSignal as = new AvatarActionOnSignal("getRequest_" + req.getName(), sig, req.getReferenceObject(), block);
                     incrTran.addNext(as);
                     asm.addElement(as);
 						/*as.addValue(req.getName()+"__reqData");
@@ -801,19 +801,19 @@ public class FullTML2Avatar {
         }
 
         if (ae instanceof TMLStopState) {
-            AvatarStopState stops = new AvatarStopState(ae.getName(), ae.getReferenceObject());
+            AvatarStopState stops = new AvatarStopState(ae.getName(), ae.getReferenceObject(), block);
             elementList.add(stops);
             return elementList;
 
         } else if (ae instanceof TMLStartState) {
-            AvatarStartState ss = new AvatarStartState(ae.getName(), ae.getReferenceObject());
+            AvatarStartState ss = new AvatarStartState(ae.getName(), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ss.getReferenceObject());
             ss.addNext(tran);
             elementList.add(ss);
             elementList.add(tran);
 
         } else if (ae instanceof TMLRandom) {
-            AvatarRandom ar = new AvatarRandom(ae.getName(), ae.getReferenceObject());
+            AvatarRandom ar = new AvatarRandom(ae.getName(), ae.getReferenceObject(), block);
             TMLRandom tmlr = (TMLRandom) ae;
             ar.setVariable(tmlr.getVariable());
             ar.setValues(tmlr.getMinValue(), tmlr.getMaxValue());
@@ -853,7 +853,7 @@ public class FullTML2Avatar {
 
             for (AvatarStateMachineElement e : seq) {
                 if (e.getNexts().size() == 0 && !(e instanceof AvatarStopState)) {
-                    AvatarStopState stop = new AvatarStopState("stop", null);
+                    AvatarStopState stop = new AvatarStopState("stop", null, block);
                     e.addNext(stop);
                     elementList.add(stop);
                 }
@@ -876,7 +876,7 @@ public class FullTML2Avatar {
             }
             AvatarState signalState =
                     new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" + reworkStringName(req.getName()),
-                    ae.getReferenceObject(), checkAcc, checked);
+                    ae.getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + req.getName(), ae.getReferenceObject());
             sig = signalRequest.get(req);
 
@@ -891,7 +891,7 @@ public class FullTML2Avatar {
                 sig = signalOutMap.get(req.getName());
             }*/
 
-            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
 
             //TraceManager.addDev("Send request in block " + block.getName() + " nb of params:" + sr.getNbOfParams());
 
@@ -923,7 +923,7 @@ public class FullTML2Avatar {
 
         } else if (ae instanceof TMLRandomSequence) {
             //HashMap<Integer, List<AvatarStateMachineElement>> seqs = new HashMap<Integer, List<AvatarStateMachineElement>>();
-            AvatarState choiceState = new AvatarState("seqchoice__" + reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState choiceState = new AvatarState("seqchoice__" + reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             elementList.add(choiceState);
 
             if (ae.getNbNext() == 1) {
@@ -965,7 +965,7 @@ public class FullTML2Avatar {
                 elementList.add(tran);
                 tran.addNext(set0.get(0));
                 //Put stop states at the end of set1 if they don't already exist
-                AvatarStopState stop = new AvatarStopState("stop", null);
+                AvatarStopState stop = new AvatarStopState("stop", null, block);
                 for (AvatarStateMachineElement e : set1) {
                     if (e.getNexts().size() == 0 && (e instanceof AvatarTransition)) {
                         e.addNext(stop);
@@ -996,7 +996,7 @@ public class FullTML2Avatar {
                 elementList.add(tran);
                 choiceState.addNext(tran);
                 tran.addNext(set1_1.get(0));
-                stop = new AvatarStopState("stop", null);
+                stop = new AvatarStopState("stop", null, block);
                 for (AvatarStateMachineElement e : set0_1) {
                     if (e.getNexts().size() == 0 && (e instanceof AvatarTransition)) {
                         e.addNext(stop);
@@ -1016,7 +1016,7 @@ public class FullTML2Avatar {
 
 
                     AvatarState choiceStateEnd = new AvatarState("seqchoiceend__" + i + "_" + reworkStringName(ae.getName()),
-                            ae.getReferenceObject());
+                            ae.getReferenceObject(), block);
                     elementList.add(choiceStateEnd);
 
 
@@ -1075,7 +1075,7 @@ public class FullTML2Avatar {
                 checked = ((TGComponent) ae.getReferenceObject()).hasCheckedAccessibility();
             }
             AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName() + "_" + evt.getName()),
-                    ae.getReferenceObject(), checkAcc, checked);
+                    ae.getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + evt.getName(), ae.getReferenceObject());
 
             if (ae instanceof TMLSendEvent) {
@@ -1083,7 +1083,7 @@ public class FullTML2Avatar {
                 AvatarSignal sig = signalOutMap.get(evt.getName());
                 //TraceManager.addDev("sig=" + sig);
 
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
                 for (int i = 0; i < aee.getNbOfParams(); i++) {
                     as.addValue(aee.getParam(i));
                 }
@@ -1103,7 +1103,7 @@ public class FullTML2Avatar {
                 AvatarSignal sig = signalInMap.get(evt.getName());
                 //TraceManager.addDev("sig=" + sig);
 
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
                 for (int i = 0; i < aee.getNbOfParams(); i++) {
                     as.addValue(aee.getParam(i));
 
@@ -1148,7 +1148,7 @@ public class FullTML2Avatar {
                     at = new AvatarAttribute(reworkStringName(param), AvatarType.INTEGER, block, ae.getReferenceObject());
                 }
                 //TraceManager.addDev("sig=" + sig);
-                AvatarQueryOnSignal aqos = new AvatarQueryOnSignal(ae.getName(), sig, at, ae.getReferenceObject());
+                AvatarQueryOnSignal aqos = new AvatarQueryOnSignal(ae.getName(), sig, at, ae.getReferenceObject(), block);
 
                 tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
 
@@ -1160,7 +1160,7 @@ public class FullTML2Avatar {
         } else if (ae instanceof TMLActivityElementWithAction) {
             //Might be encrypt or decrypt
             AvatarState as =
-                    new AvatarState(reworkStringName(ae.getValue()+"_" + ae.getName()), ae.getReferenceObject());
+                    new AvatarState(reworkStringName(ae.getValue()+"_" + ae.getName()), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
             as.addNext(tran);
             elementList.add(as);
@@ -1401,7 +1401,7 @@ public class FullTML2Avatar {
                             }
 
                             //Add state after get2 statement
-                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject());
+                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject(), block);
                             tran.addNext(guardState);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             guardState.addNext(tran);
@@ -1412,7 +1412,7 @@ public class FullTML2Avatar {
                             tran.setGuard("testnonce_" + ae.securityPattern.nonce + "==" + ae.securityPattern.nonce);
                         }
                         //Add a dummy state afterwards for authenticity after decrypting the data
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject(), block);
                         ae.securityPattern.state2 = dummy;
                         tran.addNext(dummy);
                         tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
@@ -1470,7 +1470,7 @@ public class FullTML2Avatar {
                             }
 
                             tran.addAction("get2(" + ae.securityPattern.name + "," + ae.securityPattern.name + ",testnonce_" + ae.securityPattern.nonce + ")");
-                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject());
+                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject(), block);
                             tran.addNext(guardState);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             elementList.add(guardState);
@@ -1478,7 +1478,7 @@ public class FullTML2Avatar {
                             guardState.addNext(tran);
                             tran.setGuard("testnonce_" + ae.securityPattern.nonce + "==" + ae.securityPattern.nonce);
                         }
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject(), block);
                         tran.addNext(dummy);
                         tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
                         dummy.addNext(tran);
@@ -1529,7 +1529,7 @@ public class FullTML2Avatar {
                             tran.addAction("get2(" + ae.securityPattern.name + "," + ae.securityPattern.name + ",testnonce_" + ae.securityPattern.nonce + ")");
                         }
 
-                        AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject());
+                        AvatarState guardState = new AvatarState(reworkStringName(ae.getName() + "_guarded"), ae.getReferenceObject(), block);
                         tran.addNext(guardState);
                         tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                         elementList.add(guardState);
@@ -1542,7 +1542,7 @@ public class FullTML2Avatar {
                             //Add extra state and transition
 
                             AvatarState guardState2 = new AvatarState(reworkStringName(ae.getName() + "_guarded2"),
-                                    ae.getReferenceObject());
+                                    ae.getReferenceObject(), block);
                             tran.addNext(guardState2);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             tran.setGuard("testnonce_" + ae.securityPattern.nonce + "==" + ae.securityPattern.nonce);
@@ -1551,7 +1551,7 @@ public class FullTML2Avatar {
 
                             guardState2.addNext(tran);
                         }
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName() + "_dummy"), ae.getReferenceObject(), block);
                         ae.securityPattern.state2 = dummy;
                         tran.addNext(dummy);
                         elementList.add(tran);
@@ -1583,7 +1583,7 @@ public class FullTML2Avatar {
             }
 
         } else if (ae instanceof TMLActivityElementWithIntervalAction) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
             TMLActivityElementWithIntervalAction ia = (TMLActivityElementWithIntervalAction) ae;
             tran.setDelays(reworkStringName(ia.getMinDelay()), reworkStringName(ia.getMaxDelay()));
@@ -1608,14 +1608,14 @@ public class FullTML2Avatar {
                 checked = ((TGComponent) ae.getReferenceObject()).hasCheckedAccessibility();
             }
             AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName() + "_" + ch.getName()),
-                    ae.getReferenceObject(), checkAcc, checked);
+                    ae.getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + ch.getName(), ae.getReferenceObject());
             AvatarTransition signalTranBefore = new AvatarTransition(block, "__before_signalstateint_" + ae.getName() + "_" + ch.getName(), ae
                     .getReferenceObject());
             AvatarState signalStateIntermediate = new AvatarState("signalstateinter_" + reworkStringName(
                     ae.getName() + "_" + ch.getName())
                     , ae
-                    .getReferenceObject(), checkAcc, checked);
+                    .getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTranInit = new AvatarTransition(block, "_init_signalstate_" + ae.getName() + "_" + ch.getName(), ae
                     .getReferenceObject());
 
@@ -1634,7 +1634,7 @@ public class FullTML2Avatar {
                 TraceManager.addDev("NULL signal for ch=" + ch.getName());
             }
 
-            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
 
             elementList.add(signalState);
@@ -1671,7 +1671,7 @@ public class FullTML2Avatar {
                 List<AvatarStateMachineElement> elements = translateState(ae.getNextElement(0), block);
                 /*List<AvatarStateMachineElement> afterloop =*/
                 translateState(ae.getNextElement(1), block);
-                AvatarState initState = new AvatarState(reworkStringName(ae.getName() + "__init"), ae.getReferenceObject());
+                AvatarState initState = new AvatarState(reworkStringName(ae.getName() + "__init"), ae.getReferenceObject(), block);
                 elementList.add(initState);
                 //Build transition to choice
                 tran = new AvatarTransition(block, "loop_init__" + ae.getName(), ae.getReferenceObject());
@@ -1679,7 +1679,7 @@ public class FullTML2Avatar {
                 elementList.add(tran);
                 initState.addNext(tran);
                 //Choice state
-                AvatarState as = new AvatarState(reworkStringName(ae.getName() + "__choice"), ae.getReferenceObject());
+                AvatarState as = new AvatarState(reworkStringName(ae.getName() + "__choice"), ae.getReferenceObject(), block);
                 elementList.add(as);
                 tran.addNext(as);
                 //transition to first element of loop
@@ -1712,7 +1712,7 @@ public class FullTML2Avatar {
                 tran = new AvatarTransition(block, "end_loop__" + ae.getName(), ae.getReferenceObject());
                 tran.setGuard(new AvatarGuardElse());
                 as.addNext(tran);
-                AvatarStopState stop = new AvatarStopState("stop", null);
+                AvatarStopState stop = new AvatarStopState("stop", null, block);
                 tran.addNext(stop);
                 elementList.add(tran);
                 elementList.add(stop);
@@ -1722,7 +1722,7 @@ public class FullTML2Avatar {
                 List<AvatarStateMachineElement> elements = translateState(ae.getNextElement(0), block);
                 List<AvatarStateMachineElement> afterloop = translateState(ae.getNextElement(1), block);
 
-                AvatarState initState = new AvatarState(reworkStringName(ae.getName() + "__init"), ae.getReferenceObject());
+                AvatarState initState = new AvatarState(reworkStringName(ae.getName() + "__init"), ae.getReferenceObject(), block);
                 elementList.add(initState);
                 //Build transition to choice
                 tran = new AvatarTransition(block, "loop_init__" + ae.getName(), ae.getReferenceObject());
@@ -1732,12 +1732,12 @@ public class FullTML2Avatar {
                 initState.addNext(tran);
 
                 //Choice state
-                AvatarState as = new AvatarState(reworkStringName(ae.getName() + "__choice"), ae.getReferenceObject());
+                AvatarState as = new AvatarState(reworkStringName(ae.getName() + "__choice"), ae.getReferenceObject(), block);
                 elementList.add(as);
                 tran.addNext(as);
 
                 //End state
-                AvatarState asEnd = new AvatarState(reworkStringName(ae.getName() + "__incr"), ae.getReferenceObject());
+                AvatarState asEnd = new AvatarState(reworkStringName(ae.getName() + "__incr"), ae.getReferenceObject(), block);
                 elementList.add(asEnd);
                 AvatarTransition tranToEnd = new AvatarTransition(block, "loop_init__" + ae.getName(), ae.getReferenceObject());
                 tranToEnd.addAction(AvatarTerm.createActionFromString(block, loop.getIncrement()));
@@ -1780,7 +1780,7 @@ public class FullTML2Avatar {
                 tran.setGuard(new AvatarGuardElse());
                 as.addNext(tran);
                 if (afterloop.size() == 0) {
-                    afterloop.add(new AvatarStopState("stop", null));
+                    afterloop.add(new AvatarStopState("stop", null, block));
                 }
                 tran.addNext(afterloop.get(0));
                 elementList.add(tran);
@@ -1789,7 +1789,7 @@ public class FullTML2Avatar {
             }
 
         } else if (ae instanceof TMLChoice) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             //Make many choices
             elementList.add(as);
             TMLChoice c = (TMLChoice) ae;
@@ -1807,7 +1807,7 @@ public class FullTML2Avatar {
             return elementList;
 
         } else if (ae instanceof TMLSelectEvt) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             elementList.add(as);
             //Make many choices
             //TMLSelectEvt c = (TMLSelectEvt) ae;
@@ -1927,14 +1927,14 @@ public class FullTML2Avatar {
 
     public AvatarBlock createFifo(String name) {
         AvatarBlock fifo = new AvatarBlock("FIFO__FIFO" + name, avspec, null);
-        AvatarState root = new AvatarState("root", null, false, false);
+        AvatarState root = new AvatarState("root", null, fifo, false, false);
         AvatarSignal read = new AvatarSignal("readSignal", AvatarSignal.IN, null);
         //AvatarAttribute data = new AvatarAttribute("data", AvatarType.INTEGER, fifo, null);
         //fifo.addAttribute(data);
         //read.addParameter(data);
         AvatarSignal write = new AvatarSignal("writeSignal", AvatarSignal.OUT, null);
         //write.addParameter(data);
-        AvatarStartState start = new AvatarStartState("start", null);
+        AvatarStartState start = new AvatarStartState("start", null, fifo);
         AvatarTransition afterStart = new AvatarTransition(fifo, "afterStart", null);
         fifo.addSignal(read);
         fifo.addSignal(write);
@@ -1942,8 +1942,8 @@ public class FullTML2Avatar {
         AvatarTransition toWrite = new AvatarTransition(fifo, "toWriteSignal", null);
         AvatarTransition afterRead = new AvatarTransition(fifo, "afterReadSignal", null);
         AvatarTransition afterWrite = new AvatarTransition(fifo, "afterWriteSignal", null);
-        AvatarActionOnSignal readAction = new AvatarActionOnSignal("read", read, null);
-        AvatarActionOnSignal writeAction = new AvatarActionOnSignal("write", write, null);
+        AvatarActionOnSignal readAction = new AvatarActionOnSignal("read", read, null, fifo);
+        AvatarActionOnSignal writeAction = new AvatarActionOnSignal("write", write, null, fifo);
 
         AvatarStateMachine asm = fifo.getStateMachine();
         asm.addElement(start);
diff --git a/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java b/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java
index a8de0eec2a540a437580e0153f364ff9679afddb..ab36afc53880e3a0dfc0bcd43c7dc6ded8a6ff9a 100644
--- a/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java
+++ b/src/main/java/tmltranslator/toavatarsec/TML2Avatar.java
@@ -346,17 +346,17 @@ public class TML2Avatar {
         }
 
         if (ae instanceof TMLStopState) {
-            AvatarStopState stops = new AvatarStopState(ae.getName(), ae.getReferenceObject());
+            AvatarStopState stops = new AvatarStopState(ae.getName(), ae.getReferenceObject(), block);
             elementList.add(stops);
             return elementList;
         } else if (ae instanceof TMLStartState) {
-            AvatarStartState ss = new AvatarStartState(ae.getName(), ae.getReferenceObject());
+            AvatarStartState ss = new AvatarStartState(ae.getName(), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ss.getReferenceObject());
             ss.addNext(tran);
             elementList.add(ss);
             elementList.add(tran);
         } else if (ae instanceof TMLRandom) {
-            AvatarRandom ar = new AvatarRandom(ae.getName(), ae.getReferenceObject());
+            AvatarRandom ar = new AvatarRandom(ae.getName(), ae.getReferenceObject(), block);
             TMLRandom tmlr = (TMLRandom) ae;
             ar.setVariable(tmlr.getVariable());
             TraceManager.addDev("tmlr.getVariable()= " + tmlr.getVariable());
@@ -401,7 +401,7 @@ public class TML2Avatar {
 
             for (AvatarStateMachineElement e : seq) {
                 if (e.getNexts().size() == 0 && !(e instanceof AvatarStopState)) {
-                    AvatarStopState stop = new AvatarStopState("stop", null);
+                    AvatarStopState stop = new AvatarStopState("stop", null, block);
                     e.addNext(stop);
                     elementList.add(stop);
                 }
@@ -421,7 +421,8 @@ public class TML2Avatar {
             if (ae.getReferenceObject() != null) {
                 checked = ((TGComponent) ae.getReferenceObject()).hasCheckedAccessibility();
             }
-            AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" + reworkStringName(req.getName()), ae.getReferenceObject(), checkAcc, checked);
+            AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" + reworkStringName(req.getName()),
+                    ae.getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + req.getName(), ae.getReferenceObject());
             if (!signalOutMap.containsKey(req.getName())) {
                 sig = new AvatarSignal(getNameReworked(req.getName(), 1), AvatarSignal.OUT, req.getReferenceObject());
@@ -438,7 +439,7 @@ public class TML2Avatar {
                 sig = signalOutMap.get(req.getName());
             }
 
-            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+            AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
             for (int i = 0; i < sr.getNbOfParams(); i++) {
                 if (block.getAvatarAttributeWithName(sr.getParam(i)) == null) {
                     //Throw Error
@@ -577,7 +578,7 @@ public class TML2Avatar {
                 elementList.add(tran);
                 tran.addNext(set0.get(0));
                 //Put stop states at the end of set1 if they don't already exist
-                AvatarStopState stop = new AvatarStopState("stop", null);
+                AvatarStopState stop = new AvatarStopState("stop", null, block);
                 for (AvatarStateMachineElement e : set1) {
                     if (e.getNexts().size() == 0 && (e instanceof AvatarTransition)) {
                         e.addNext(stop);
@@ -608,7 +609,7 @@ public class TML2Avatar {
                 elementList.add(tran);
                 choiceState.addNext(tran);
                 tran.addNext(set1_1.get(0));
-                stop = new AvatarStopState("stop", null);
+                stop = new AvatarStopState("stop", null, block);
                 for (AvatarStateMachineElement e : set0_1) {
                     if (e.getNexts().size() == 0 && (e instanceof AvatarTransition)) {
                         e.addNext(stop);
@@ -627,7 +628,7 @@ public class TML2Avatar {
 
 
                     AvatarState choiceStateEnd = new AvatarState("seqchoiceend__" + i + "_" +
-                            reworkStringName(ae.getName()), ae.getReferenceObject());
+                            reworkStringName(ae.getName()), ae.getReferenceObject(), block);
                     elementList.add(choiceStateEnd);
 
 
@@ -684,8 +685,10 @@ public class TML2Avatar {
             if (ae.getReferenceObject() != null) {
                 checked = ((TGComponent) ae.getReferenceObject()).hasCheckedAccessibility();
             }
-            AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" + evt.getName(), ae.getReferenceObject(), checkAcc, checked);
-            AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + evt.getName(), ae.getReferenceObject());
+            AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" + evt.getName(), ae.getReferenceObject(),
+                    block, checkAcc, checked);
+            AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + evt.getName(),
+                    ae.getReferenceObject());
 
             if (ae instanceof TMLSendEvent) {
                 AvatarSignal sig;
@@ -703,7 +706,7 @@ public class TML2Avatar {
                 } else {
                     sig = signalOutMap.get(evt.getName());
                 }
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
                 for (int i = 0; i < aee.getNbOfParams(); i++) {
                     if (block.getAvatarAttributeWithName(aee.getParam(i)) == null) {
                         //Throw Error
@@ -757,7 +760,7 @@ public class TML2Avatar {
                 } else {
                     sig = signalInMap.get(evt.getName());
                 }
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
                 for (int i = 0; i < aee.getNbOfParams(); i++) {
                     if (block.getAvatarAttributeWithName(aee.getParam(i)) == null) {
                         //Throw Error
@@ -796,7 +799,7 @@ public class TML2Avatar {
             } else {
                 //Notify Event, I don't know how to translate this
                 TraceManager.addDev("Notify event");
-                AvatarRandom as = new AvatarRandom(ae.getName(), ae.getReferenceObject());
+                AvatarRandom as = new AvatarRandom(ae.getName(), ae.getReferenceObject(), block);
                 tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
                 as.setVariable(aee.getVariable());
                 as.setValues("0", "1");
@@ -807,7 +810,11 @@ public class TML2Avatar {
 
         } else if (ae instanceof TMLActivityElementWithAction) {
             //Might be encrypt or decrypt
-            AvatarState as = new AvatarState(ae.getValue().replaceAll(" ", "").replaceAll("\\*", "").replaceAll("\\+", "").replaceAll("\\-", "") + "_" + ae.getName().replaceAll(" ", "").replaceAll("\\*", "").replaceAll("\\+", "").replaceAll("\\-", ""), ae.getReferenceObject());
+            AvatarState as = new AvatarState(ae.getValue().replaceAll(
+                    " ", "").replaceAll("\\*", "").replaceAll("\\+", "").replaceAll(
+                            "\\-", "") + "_" + ae.getName().replaceAll(" ", "").replaceAll(
+                                    "\\*", "").replaceAll("\\+", "").replaceAll(
+                                            "\\-", ""), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
             as.addNext(tran);
             elementList.add(as);
@@ -1056,7 +1063,7 @@ public class TML2Avatar {
                             }
 
                             //Add state after get2 statement
-                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject());
+                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject(), block);
                             tran.addNext(guardState);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             guardState.addNext(tran);
@@ -1068,7 +1075,7 @@ public class TML2Avatar {
                         }
 
                         // Add a dummy state afterwards for authenticity after decrypting the data
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject(), block);
                         ae.securityPattern.state2 = dummy;
                         tran.addNext(dummy);
                         tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
@@ -1133,7 +1140,7 @@ public class TML2Avatar {
                             }
 
                             tran.addAction("get2(" + ae.securityPattern.name + "," + ae.securityPattern.name + ",testnonce_" + ae.securityPattern.nonce + ")");
-                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject());
+                            AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject(), block);
                             tran.addNext(guardState);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             elementList.add(guardState);
@@ -1141,7 +1148,7 @@ public class TML2Avatar {
                             guardState.addNext(tran);
                             tran.setGuard("testnonce_" + ae.securityPattern.nonce + "==" + ae.securityPattern.nonce);
                         }
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject(), block);
                         tran.addNext(dummy);
                         tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
                         dummy.addNext(tran);
@@ -1197,7 +1204,7 @@ public class TML2Avatar {
                             tran.addAction("get2(" + ae.securityPattern.name + "," + ae.securityPattern.name + ",testnonce_" + ae.securityPattern.nonce + ")");
                         }
 
-                        AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject());
+                        AvatarState guardState = new AvatarState(reworkStringName(ae.getName()) + "_guarded", ae.getReferenceObject(), block);
                         tran.addNext(guardState);
                         tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                         elementList.add(guardState);
@@ -1209,7 +1216,7 @@ public class TML2Avatar {
 
                             //Add extra state and transition
 
-                            AvatarState guardState2 = new AvatarState(reworkStringName(ae.getName()) + "_guarded2", ae.getReferenceObject());
+                            AvatarState guardState2 = new AvatarState(reworkStringName(ae.getName()) + "_guarded2", ae.getReferenceObject(), block);
                             tran.addNext(guardState2);
                             tran = new AvatarTransition(block, "__guard_" + ae.getName(), ae.getReferenceObject());
                             tran.setGuard("testnonce_" + ae.securityPattern.nonce + "==" + ae.securityPattern.nonce);
@@ -1218,7 +1225,7 @@ public class TML2Avatar {
 
                             guardState2.addNext(tran);
                         }
-                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject());
+                        AvatarState dummy = new AvatarState(reworkStringName(ae.getName()) + "_dummy", ae.getReferenceObject(), block);
                         ae.securityPattern.state2 = dummy;
                         tran.addNext(dummy);
                         elementList.add(tran);
@@ -1254,7 +1261,7 @@ public class TML2Avatar {
                 }
             }
         } else if (ae instanceof TMLActivityElementWithIntervalAction) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             tran = new AvatarTransition(block, "__after_" + ae.getName(), ae.getReferenceObject());
             as.addNext(tran);
             elementList.add(as);
@@ -1274,7 +1281,7 @@ public class TML2Avatar {
                 checked = ((TGComponent) ae.getReferenceObject()).hasCheckedAccessibility();
             }
             AvatarState signalState = new AvatarState("signalstate_" + reworkStringName(ae.getName()) + "_" +
-                    ch.getName(), ae.getReferenceObject(), checkAcc, checked);
+                    ch.getName(), ae.getReferenceObject(), block, checkAcc, checked);
             AvatarTransition signalTran = new AvatarTransition(block, "__after_signalstate_" + ae.getName() + "_" + ch.getName(),
                     ae.getReferenceObject());
 
@@ -1297,7 +1304,7 @@ public class TML2Avatar {
                     sig = signalInMap.get(ch.getName());
                 }
                 TraceManager.addDev("InMap sig= " + sig.getSignalName());
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
 
                 if (ae.securityPattern != null) {
                     //If nonce
@@ -1346,7 +1353,7 @@ public class TML2Avatar {
                 if (ch.checkAuth) {
                     //Add aftersignal state
                     AvatarState afterSignalState = new AvatarState("aftersignalstate_" + reworkStringName(ae.getName()) +
-                            "_" + ch.getName(), ae.getReferenceObject());
+                            "_" + ch.getName(), ae.getReferenceObject(), block);
                     tran.addNext(afterSignalState);
                     tran = new AvatarTransition(block, "__aftersignalstate_" + ae.getName(), ae.getReferenceObject());
                     afterSignalState.addNext(tran);
@@ -1443,7 +1450,7 @@ public class TML2Avatar {
 
                 }
 
-                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject());
+                AvatarActionOnSignal as = new AvatarActionOnSignal(ae.getName(), sig, ae.getReferenceObject(), block);
 
                 if (ae.securityPattern != null) {
                     //send nonce
@@ -1500,7 +1507,7 @@ public class TML2Avatar {
                 List<AvatarStateMachineElement> elements = translateState(ae.getNextElement(0), block, autoAuthChans);
                 /*List<AvatarStateMachineElement> afterloop =*/
                 translateState(ae.getNextElement(1), block, autoAuthChans);
-                AvatarState initState = new AvatarState(reworkStringName(ae.getName()) + "__init", ae.getReferenceObject());
+                AvatarState initState = new AvatarState(reworkStringName(ae.getName()) + "__init", ae.getReferenceObject(), block);
                 elementList.add(initState);
                 //Build transition to choice
                 tran = new AvatarTransition(block, "loop_init__" + ae.getName(), ae.getReferenceObject());
@@ -1508,7 +1515,7 @@ public class TML2Avatar {
                 elementList.add(tran);
                 initState.addNext(tran);
                 //Choice state
-                AvatarState as = new AvatarState(reworkStringName(ae.getName()) + "__choice", ae.getReferenceObject());
+                AvatarState as = new AvatarState(reworkStringName(ae.getName()) + "__choice", ae.getReferenceObject(), block);
                 elementList.add(as);
                 tran.addNext(as);
                 //transition to first element of loop
@@ -1541,7 +1548,7 @@ public class TML2Avatar {
                 tran = new AvatarTransition(block, "end_loop__" + ae.getName(), ae.getReferenceObject());
                 tran.setGuard(new AvatarGuardElse());
                 as.addNext(tran);
-                AvatarStopState stop = new AvatarStopState("stop", null);
+                AvatarStopState stop = new AvatarStopState("stop", null, block);
                 tran.addNext(stop);
                 elementList.add(tran);
                 elementList.add(stop);
@@ -1550,7 +1557,7 @@ public class TML2Avatar {
                 //Make initializaton, then choice state with transitions
                 List<AvatarStateMachineElement> elements = translateState(ae.getNextElement(0), block, autoAuthChans);
                 List<AvatarStateMachineElement> afterloop = translateState(ae.getNextElement(1), block, autoAuthChans);
-                AvatarState initState = new AvatarState(reworkStringName(ae.getName()) + "__init", ae.getReferenceObject());
+                AvatarState initState = new AvatarState(reworkStringName(ae.getName()) + "__init", ae.getReferenceObject(), block);
                 elementList.add(initState);
                 //Build transition to choice
                 tran = new AvatarTransition(block, "loop_init__" + ae.getName(), ae.getReferenceObject());
@@ -1559,7 +1566,7 @@ public class TML2Avatar {
                 elementList.add(tran);
                 initState.addNext(tran);
                 //Choice state
-                AvatarState as = new AvatarState(reworkStringName(ae.getName()) + "__choice", ae.getReferenceObject());
+                AvatarState as = new AvatarState(reworkStringName(ae.getName()) + "__choice", ae.getReferenceObject(), block);
                 elementList.add(as);
                 tran.addNext(as);
                 //transition to first element of loop
@@ -1600,7 +1607,7 @@ public class TML2Avatar {
                 tran.setGuard(new AvatarGuardElse());
                 as.addNext(tran);
                 if (afterloop.size() == 0) {
-                    afterloop.add(new AvatarStopState("stop", null));
+                    afterloop.add(new AvatarStopState("stop", null, block));
                 }
                 tran.addNext(afterloop.get(0));
                 elementList.add(tran);
@@ -1608,7 +1615,7 @@ public class TML2Avatar {
                 return elementList;
             }
         } else if (ae instanceof TMLChoice) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             //Make many choices
             elementList.add(as);
             TMLChoice c = (TMLChoice) ae;
@@ -1626,7 +1633,7 @@ public class TML2Avatar {
             return elementList;
 
         } else if (ae instanceof TMLSelectEvt) {
-            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject());
+            AvatarState as = new AvatarState(reworkStringName(ae.getName()), ae.getReferenceObject(), block);
             elementList.add(as);
             //Make many choices
             //TMLSelectEvt c = (TMLSelectEvt) ae;
@@ -1757,7 +1764,7 @@ public class TML2Avatar {
         if (mc) {
             avspec.addBlock(top);
             AvatarStateMachine topasm = top.getStateMachine();
-            AvatarStartState topss = new AvatarStartState("start", null);
+            AvatarStartState topss = new AvatarStartState("start", null, topasm.getOwner());
             topasm.setStartState(topss);
             topasm.addElement(topss);
         }
@@ -1908,14 +1915,14 @@ public class TML2Avatar {
                 //Oh this is fun...let's restructure the state machine
                 //Create own start state, and ignore the returned one
                 List<AvatarStateMachineElement> elementList = translateState(task.getActivityDiagram().get(0), block, autoAuthChans);
-                AvatarStartState ss = new AvatarStartState("start", task.getActivityDiagram().get(0).getReferenceObject());
+                AvatarStartState ss = new AvatarStartState("start", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 asm.addElement(ss);
                 AvatarTransition at = new AvatarTransition(block, "__after_start", task.getActivityDiagram().get(0).getReferenceObject());
                 at.addAction(AvatarTerm.createActionFromString(block, "req_loop_index = 0"));
                 ss.addNext(at);
                 asm.addElement(at);
 
-                AvatarState loopstart = new AvatarState("loopstart", task.getActivityDiagram().get(0).getReferenceObject());
+                AvatarState loopstart = new AvatarState("loopstart", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 at.addNext(loopstart);
                 asm.addElement(loopstart);
 
@@ -1948,7 +1955,7 @@ public class TML2Avatar {
 
                 //Create exit after # of loop iterations is maxed out
                 /*AvatarStopState stop =*/
-                new AvatarStopState("stop", task.getActivityDiagram().get(0).getReferenceObject());
+                new AvatarStopState("stop", task.getActivityDiagram().get(0).getReferenceObject(), block);
                 /*AvatarTransition exitTran = */
                 new AvatarTransition(block, "to_stop", task.getActivityDiagram().get(0).getReferenceObject());
 
@@ -1976,7 +1983,7 @@ public class TML2Avatar {
                     } else {
                         sig = signalInMap.get(req.getName());
                     }
-                    AvatarActionOnSignal as = new AvatarActionOnSignal("getRequest__" + req.getName(), sig, req.getReferenceObject());
+                    AvatarActionOnSignal as = new AvatarActionOnSignal("getRequest__" + req.getName(), sig, req.getReferenceObject(), block);
                     incrTran.addNext(as);
                     asm.addElement(as);
 						/*as.addValue(req.getName()+"__reqData");
@@ -2645,14 +2652,14 @@ public class TML2Avatar {
 
     public AvatarBlock createFifo(String name) {
         AvatarBlock fifo = new AvatarBlock("FIFO__FIFO" + name, avspec, null);
-        AvatarState root = new AvatarState("root", null, false, false);
+        AvatarState root = new AvatarState("root", null, fifo, false, false);
         AvatarSignal read = new AvatarSignal("readSignal", AvatarSignal.IN, null);
         AvatarAttribute data = new AvatarAttribute("data", AvatarType.INTEGER, fifo, null);
         fifo.addAttribute(data);
         read.addParameter(data);
         AvatarSignal write = new AvatarSignal("writeSignal", AvatarSignal.OUT, null);
         write.addParameter(data);
-        AvatarStartState start = new AvatarStartState("start", null);
+        AvatarStartState start = new AvatarStartState("start", null, fifo);
         AvatarTransition afterStart = new AvatarTransition(fifo, "afterStart", null);
         fifo.addSignal(read);
         fifo.addSignal(write);
@@ -2660,8 +2667,8 @@ public class TML2Avatar {
         AvatarTransition toWrite = new AvatarTransition(fifo, "toWriteSignal", null);
         AvatarTransition afterRead = new AvatarTransition(fifo, "afterReadSignal", null);
         AvatarTransition afterWrite = new AvatarTransition(fifo, "afterWriteSignal", null);
-        AvatarActionOnSignal readAction = new AvatarActionOnSignal("read", read, null);
-        AvatarActionOnSignal writeAction = new AvatarActionOnSignal("write", write, null);
+        AvatarActionOnSignal readAction = new AvatarActionOnSignal("read", read, null, fifo);
+        AvatarActionOnSignal writeAction = new AvatarActionOnSignal("write", write, null, fifo);
 
         AvatarStateMachine asm = fifo.getStateMachine();
         asm.addElement(start);
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
index 4799da5fb1b53796a33f9bd1f8302bb40f1b4327..b312455a3d233dbbd7cbcc09a13dce8e005bb754 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
@@ -128,7 +128,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
     }
 
     public void setModelName(String _modelName) {
-        modelName = _modelName;
+        modelName = _modelName.replace("\\", "\\\\");
     }
 
     public void saveFile(String path, String filename) throws FileException {
@@ -388,10 +388,12 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         declaration += CR;
 
         // Declaration of Model Name
-        declaration += "//Declaration of Model Name" + CR;
+        declaration += "// Declaration of Model Name" + CR;
         declaration += "std::string msg=" + "\"" + modelName + "\"" + SCCR;
         declaration += "addModelName(" + "\"" + modelName + "\"" + ")" + SCCR;
 
+
+
         // Declaration of Buses
         declaration += "//Declaration of Buses" + CR;
 
diff --git a/src/main/java/ui/ActivityDiagram2TMLTranslator.java b/src/main/java/ui/ActivityDiagram2TMLTranslator.java
index 4117efae560091caea77e937eb4fed20928827bf..4bdec9e3399abe4e1ca2329cdcb7cc93a66cd089 100644
--- a/src/main/java/ui/ActivityDiagram2TMLTranslator.java
+++ b/src/main/java/ui/ActivityDiagram2TMLTranslator.java
@@ -435,7 +435,7 @@ public class ActivityDiagram2TMLTranslator {
                         }
                     } else {
 						if (!event.hasOriginTask(tmltask)) {
-							UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is " +
+							UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + " is " +
 									"not an output event of task " + tmltask.getName());
 							ce.setTDiagramPanel(tadp);
 							ce.setTGComponent(tgc);
@@ -692,7 +692,7 @@ public class ActivityDiagram2TMLTranslator {
                         //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams());
 
                         if (!event.hasDestinationTask(tmltask)) {
-                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is " +
+                            UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is " +
                                     "not an input event of task " + tmltask.getName());
                             ce.setTDiagramPanel(tadp);
                             ce.setTGComponent(tgc);
@@ -768,7 +768,7 @@ public class ActivityDiagram2TMLTranslator {
                         for (int i = 0; i < channels.length; i++) {
                             channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i], table));
                             if (!channel.hasOriginTask(tmltask)) {
-                                UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is " +
+                                UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel) tgc).getChannelName() + " is " +
                                         "not an output channel of task " + tmltask.getName());
                                 ce.setTDiagramPanel(tadp);
                                 ce.setTGComponent(tgc);
diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java
index c2e020223cf62bbc9adfc9a934a346f6c36564a2..c451bf7febc9f8972a9c8a70aed16b7cec21ccdd 100644
--- a/src/main/java/ui/AttackTreePanelTranslator.java
+++ b/src/main/java/ui/AttackTreePanelTranslator.java
@@ -336,7 +336,7 @@ public class AttackTreePanelTranslator {
         // One block per attack -> syncho
         // One mast block with all channels declared at that level
         AvatarBlock mainBlock = new AvatarBlock("MainBlock", as, null);
-        AvatarStartState ass = new AvatarStartState("StartStateOfMainBlock", null);
+        AvatarStartState ass = new AvatarStartState("StartStateOfMainBlock", null, mainBlock);
         mainBlock.getStateMachine().setStartState(ass);
         mainBlock.getStateMachine().addElement(ass);
         as.addBlock(mainBlock);
@@ -438,13 +438,13 @@ public class AttackTreePanelTranslator {
                 isChecked = ((TGComponent) (_ref1)).hasCheckedAccessibility();
             }
 
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState performedState = new AvatarState("main", _ref1, isCheckable, isChecked);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState performedState = new AvatarState("main", _ref1, _ab, isCheckable, isChecked);
             performedState.setAsVerifiable(true);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingAttack", _sigAttack, _ref1);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingAttack", _sigAttack, _ref1, _ab);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -486,10 +486,10 @@ public class AttackTreePanelTranslator {
 
         } else {
 
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -529,21 +529,21 @@ public class AttackTreePanelTranslator {
             if (_ref1 instanceof TGComponent) {
                 isChecked = ((TGComponent) (_ref1)).hasCheckedAccessibility();
             }
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState activateState = new AvatarState("activate", _ref, false, false);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState activatedState = new AvatarState("activated", _ref1, isCheckable, isChecked);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState activateState = new AvatarState("activate", _ref, _ab, false, false);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState activatedState = new AvatarState("activated", _ref1, _ab, isCheckable, isChecked);
             if (_ref1 instanceof ATDAttack) {
                 activatedState.setAsVerifiable(true);
             }
-            AvatarState performedState = new AvatarState("performed", _ref, false, false);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, false, false);
-            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingAttack", _sigAttack, _ref1);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
-            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref);
-            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1);
-            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1);
+            AvatarState performedState = new AvatarState("performed", _ref, _ab, false, false);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, _ab, false, false);
+            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingAttack", _sigAttack, _ref1, _ab);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1, _ab);
+            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -627,16 +627,16 @@ public class AttackTreePanelTranslator {
             getActivateAfterStop.addNext(at);
             at.addNext(mainStop);
         } else {
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState activateState = new AvatarState("activate", _ref, false, false);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState activatedState = new AvatarState("main", _ref1, isCheckable, isChecked);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, false, false);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
-            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref);
-            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1);
-            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState activateState = new AvatarState("activate", _ref, _ab,false, false);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState activatedState = new AvatarState("main", _ref1, _ab, isCheckable, isChecked);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, _ab, false, false);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1, _ab);
+            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -739,10 +739,10 @@ public class AttackTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+        AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _ab, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _ab, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -766,7 +766,7 @@ public class AttackTreePanelTranslator {
 
 
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _ab);
             asm.addElement(acceptAttack);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputAttack", _ref);
             asm.addElement(at);
@@ -790,7 +790,7 @@ public class AttackTreePanelTranslator {
 
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _ab);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
@@ -809,10 +809,10 @@ public class AttackTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+        AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _ab, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _ab, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -836,7 +836,7 @@ public class AttackTreePanelTranslator {
 
             // From Main
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _ab);
             asm.addElement(acceptAttack);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputAttack", _ref);
             asm.addElement(at);
@@ -850,7 +850,7 @@ public class AttackTreePanelTranslator {
             at.addNext(mainState);
 
             // Link from End
-            acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _ab);
             asm.addElement(acceptAttack);
             at = new AvatarTransition(_ab, "at_toInputAttack", _ref);
             asm.addElement(at);
@@ -864,7 +864,7 @@ public class AttackTreePanelTranslator {
             at.addNext(endState);
 
             // Link from Overall
-            acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _ab);
             asm.addElement(acceptAttack);
             at = new AvatarTransition(_ab, "at_toInputAttack", _ref);
             asm.addElement(at);
@@ -890,7 +890,7 @@ public class AttackTreePanelTranslator {
 
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _ab);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
@@ -910,11 +910,11 @@ public class AttackTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState stoppingAll = new AvatarState("stoppingAll", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState stoppingAll = new AvatarState("stoppingAll", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -944,7 +944,7 @@ public class AttackTreePanelTranslator {
 
             // From Main
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _main);
             asm.addElement(acceptAttack);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputAttack", _ref);
             asm.addElement(at);
@@ -966,7 +966,7 @@ public class AttackTreePanelTranslator {
             //           if (att.isLeaf()) {
             // Leaf attack -> must make a stop
             sigAtt = _main.getAvatarSignalWithName("acceptStop__" + att.getName());
-            acceptAttack = new AvatarActionOnSignal("StopAttack", sigAtt, _ref1);
+            acceptAttack = new AvatarActionOnSignal("StopAttack", sigAtt, _ref1, _main);
             asm.addElement(acceptAttack);
             at = new AvatarTransition(_ab, "at_toInputAttack_leaf", _ref);
             asm.addElement(at);
@@ -1009,7 +1009,7 @@ public class AttackTreePanelTranslator {
 
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _main);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
@@ -1030,10 +1030,10 @@ public class AttackTreePanelTranslator {
         _node.orderAttacks();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1050,10 +1050,10 @@ public class AttackTreePanelTranslator {
 
         // Chaining accept attacks
         for (Attack att : _node.getInputAttacks()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _main);
             asm.addElement(acceptAttack);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1076,7 +1076,7 @@ public class AttackTreePanelTranslator {
         // Performing resulting attack
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _main);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
@@ -1095,10 +1095,10 @@ public class AttackTreePanelTranslator {
         _node.orderAttacks();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1116,10 +1116,10 @@ public class AttackTreePanelTranslator {
         // Chaining accept attacks
         int cpt = 0;
         for (Attack att : _node.getInputAttacks()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _main);
             asm.addElement(acceptAttack);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1146,7 +1146,7 @@ public class AttackTreePanelTranslator {
         // Performing resulting attack
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _main);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
@@ -1165,11 +1165,11 @@ public class AttackTreePanelTranslator {
         _node.orderAttacks();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
-        AvatarState timeout = new AvatarState("timeout", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
+        AvatarState timeout = new AvatarState("timeout", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1188,10 +1188,10 @@ public class AttackTreePanelTranslator {
         // Chaining accept attacks
         int cpt = 0;
         for (Attack att : _node.getInputAttacks()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1);
+            AvatarActionOnSignal acceptAttack = new AvatarActionOnSignal("AcceptAttack", sigAtt, _ref1, _main);
             asm.addElement(acceptAttack);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1222,7 +1222,7 @@ public class AttackTreePanelTranslator {
         // Performing resulting attack
         Attack resulting = _node.getResultingAttack();
         avatartranslator.AvatarSignal sigAttack = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1);
+        AvatarActionOnSignal resultingAttack = new AvatarActionOnSignal("ResultingAttack", sigAttack, _ref1, _main);
         asm.addElement(resultingAttack);
         at = new AvatarTransition(_ab, "at_toResultingAttack", _ref);
         asm.addElement(at);
diff --git a/src/main/java/ui/AvatarDesignPanel.java b/src/main/java/ui/AvatarDesignPanel.java
index 9ea54f3effd984f0d616d6f74609ff9c1357e09f..d93d369a46045e6c4502de1104e213d6dd59442a 100644
--- a/src/main/java/ui/AvatarDesignPanel.java
+++ b/src/main/java/ui/AvatarDesignPanel.java
@@ -78,6 +78,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
         if (_mgui == null) {
             //for unit testing only
             abdp = new AvatarBDPanel(null, null);
+            tdp = abdp;
             return;
         }
         // Issue #41 Ordering of tabbed panes 
@@ -299,7 +300,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
     public TGComponent hasCheckableMasterMutex() {
         TGComponent tgc, tgctmp;
         for (int i = 0; i < panels.size(); i++) {
-            tdp = panels.get(i);
+            TDiagramPanel tdp = panels.get(i);
             if (tdp instanceof AvatarSMDPanel) {
                 Iterator<TGComponent> iterator = panels.get(i).getComponentList().listIterator();
                 while (iterator.hasNext()) {
@@ -318,6 +319,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     public void removeAllMutualExclusionWithMasterMutex() {
         TGComponent tgc;
+        TDiagramPanel tdp;
         for (int i = 0; i < panels.size(); i++) {
             tdp = panels.get(i);
             if (tdp instanceof AvatarSMDPanel) {
@@ -332,6 +334,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     public void reinitMutualExclusionStates() {
         TGComponent tgc;
+        TDiagramPanel tdp;
         for (int i = 0; i < panels.size(); i++) {
             tdp = panels.get(i);
             if (tdp instanceof AvatarSMDPanel) {
@@ -373,6 +376,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
     }
 
     public void resetModelBacktracingProVerif() {
+        TDiagramPanel tdp;
         if (abdp == null) {
             return;
         }
@@ -454,6 +458,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
     }
 
     public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
+        TDiagramPanel tdp;
 
         if (abdp == null) {
             return;
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index 6d4b68613dd0865b133d058c9e87b0ef03de06d6..dd3ca1f65fb8bbb5ae21cb8c9a86f1035d92cd8b 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -567,7 +567,7 @@ public class AvatarDesignPanelTranslator {
             ce.setTDiagramPanel(adp.getAvatarBDPanel());
             ce.setTGComponent(tgc);
             addWarning(ce);
-            TraceManager.addDev("UPPAAL Pragma " + _pragma + " cannot be parsed");
+            TraceManager.addDev("Safety Pragma " + _pragma + " cannot be parsed");
             return false;
         }
 
@@ -578,7 +578,7 @@ public class AvatarDesignPanelTranslator {
             ce.setTDiagramPanel(adp.getAvatarBDPanel());
             ce.setTGComponent(tgc);
             addWarning(ce);
-            TraceManager.addDev("UPPAAL Pragma " + _pragma + " improperly formatted");
+            TraceManager.addDev("Safety Pragma " + _pragma + " improperly formatted");
             return false;
         } else if (returnVal == -1) {
             return false;
@@ -618,7 +618,7 @@ public class AvatarDesignPanelTranslator {
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
                     addWarning(ce);
-                    TraceManager.addDev("UPPAAL Pragma " + _pragma + " improperly formatted");
+                    TraceManager.addDev("Safety Pragma " + _pragma + " improperly formatted");
                     return -1;
                 }
                 return 0;
@@ -629,7 +629,7 @@ public class AvatarDesignPanelTranslator {
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
                     addWarning(ce);
-                    TraceManager.addDev("UPPAAL Pragma " + _pragma + " improperly formatted");
+                    TraceManager.addDev("Safety Pragma " + _pragma + " improperly formatted");
                     return -1;
                 }
                 return 1;
@@ -640,7 +640,7 @@ public class AvatarDesignPanelTranslator {
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
                     addWarning(ce);
-                    TraceManager.addDev("UPPAAL Pragma " + _pragma + " improperly formatted");
+                    TraceManager.addDev("Safety Pragma " + _pragma + " improperly formatted");
                     return -1;
                 }
                 String block = state.split("\\.", 2)[0];
@@ -658,7 +658,7 @@ public class AvatarDesignPanelTranslator {
                 if (bl != null) {
                     AvatarStateMachine asm = bl.getStateMachine();
                     if (bl.getIndexOfAvatarAttributeWithName(attr) == -1 && asm.getStateWithName(attr) == null) {
-                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma +
+                        UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma +
                                 " contains invalid attribute or state name " + attr);
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
                         ce.setTGComponent(tgc);
@@ -681,7 +681,7 @@ public class AvatarDesignPanelTranslator {
                         return 0;
                     }
                 } else {
-                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma +
+                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma +
                             " contains invalid block name " + block);
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
@@ -696,7 +696,7 @@ public class AvatarDesignPanelTranslator {
         int index = getOperatorIndex(state);
 
         if (index == -1) {
-            UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma + " cannot parse " + state);
+            UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma + " cannot parse " + state);
             ce.setTDiagramPanel(adp.getAvatarBDPanel());
             ce.setTGComponent(tgc);
             addWarning(ce);
@@ -723,7 +723,7 @@ public class AvatarDesignPanelTranslator {
 
         switch (optype) {
             case -1:
-                ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma + " unrecognized " + operator);
+                ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma + " unrecognized " + operator);
                 ce.setTDiagramPanel(adp.getAvatarBDPanel());
                 ce.setTGComponent(tgc);
                 addWarning(ce);
@@ -732,7 +732,7 @@ public class AvatarDesignPanelTranslator {
                 return -1;
             case 1:
                 if (!(optypel == 1 && optyper == 1)) {
-                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma +
+                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma +
                             " expected integer attributes around " + operator);
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
@@ -744,7 +744,7 @@ public class AvatarDesignPanelTranslator {
                 break;
             case 0:
                 if (!(optypel == 0 && optyper == 0)) {
-                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma +
+                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma +
                             " expected boolean attributes around " + operator);
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
@@ -756,7 +756,7 @@ public class AvatarDesignPanelTranslator {
                 break;
             case 3:
                 if (optypel != optyper) {
-                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "UPPAAL Pragma " + _pragma +
+                    ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Safety Pragma " + _pragma +
                             " has incompatible types around " + operator);
                     ce.setTDiagramPanel(adp.getAvatarBDPanel());
                     ce.setTGComponent(tgc);
@@ -1554,7 +1554,7 @@ public class AvatarDesignPanelTranslator {
         final String name = "action_on_signal";
 
         if (asmdss.isEnabled()) {
-            element = new AvatarActionOnSignal(name, atas, asmdss);
+            element = new AvatarActionOnSignal(name, atas, asmdss, _ab);
 
             final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element;
             if (asmdss.hasCheckedAccessibility())
@@ -1606,7 +1606,7 @@ public class AvatarDesignPanelTranslator {
                 _as.checkedIDs.add(asmdss.getName() + "-" + asmdss.getSignalName() + ":" + aaos.getID());
             }
         } else {
-            element = new AvatarDummyState(name + ":" + atas.getName(), asmdss);
+            element = new AvatarDummyState(name + ":" + atas.getName(), asmdss, _ab);
         }
 
         listE.addCor(element, asmdss);
@@ -1826,7 +1826,7 @@ public class AvatarDesignPanelTranslator {
                     alfc.addReturnAttribute(attr);
             }
         } else {
-            element = new AvatarDummyState(name + ":" + aLibraryFunction.getName(), asmdlfc);
+            element = new AvatarDummyState(name + ":" + aLibraryFunction.getName(), asmdlfc, _ab);
         }
 
         listE.addCor(element, asmdlfc);
@@ -1866,7 +1866,7 @@ public class AvatarDesignPanelTranslator {
         final String name = "action_on_signal";
 
         if (asmdrs.isEnabled()) {
-            element = new AvatarActionOnSignal(name, atas, asmdrs);
+            element = new AvatarActionOnSignal(name, atas, asmdrs, _ab);
 
             final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element;
 
@@ -1914,7 +1914,7 @@ public class AvatarDesignPanelTranslator {
                 _as.checkedIDs.add(asmdrs.getName() + "-" + asmdrs.getSignalName() + ":" + aaos.getID());
             }
         } else {
-            element = new AvatarDummyState(name + ":" + atas.getName(), asmdrs);
+            element = new AvatarDummyState(name + ":" + atas.getName(), asmdrs, _ab);
         }
 
         this.listE.addCor(element, asmdrs);
@@ -1965,13 +1965,13 @@ public class AvatarDesignPanelTranslator {
 
             // Issue #69
             if (diagramState.isEnabled()) {
-                stateElement = new AvatarState(name, diagramState);
+                stateElement = new AvatarState(name, diagramState, stateMachine.getOwner());
                 stateElement.setAsVerifiable(true);
             } else {
                 if (diagramState.getOutputConnectors().isEmpty()) {
-                    stateElement = new AvatarStopState(name + "_state_converted_to_stop", diagramState);
+                    stateElement = new AvatarStopState(name + "_state_converted_to_stop", diagramState, stateMachine.getOwner());
                 } else {
-                    stateElement = new AvatarDummyState(name, diagramState);
+                    stateElement = new AvatarDummyState(name, diagramState, stateMachine.getOwner());
                 }
             }
 
@@ -2032,12 +2032,12 @@ public class AvatarDesignPanelTranslator {
         final String name = "query-signal";
 
         if (asmdquery.isEnabled()) {
-            element = new AvatarQueryOnSignal(name, atas, ataa, asmdquery);
+            element = new AvatarQueryOnSignal(name, atas, ataa, asmdquery, asm.getOwner());
 
             final AvatarQueryOnSignal aqos = (AvatarQueryOnSignal) element;
 
         } else {
-            element = new AvatarDummyState(name, asmdquery);
+            element = new AvatarDummyState(name, asmdquery, asm.getOwner());
         }
 
         asm.addElement(element);
@@ -2053,7 +2053,7 @@ public class AvatarDesignPanelTranslator {
         final String name = "random";
 
         if (asmdrand.isEnabled()) {
-            element = new AvatarRandom(name, asmdrand);
+            element = new AvatarRandom(name, asmdrand, _ab);
 
             final AvatarRandom arandom = (AvatarRandom) element;
 
@@ -2090,7 +2090,7 @@ public class AvatarDesignPanelTranslator {
 
             arandom.setVariable(tmp1);
         } else {
-            element = new AvatarDummyState(name, asmdrand);
+            element = new AvatarDummyState(name, asmdrand, _ab);
         }
 
         asm.addElement(element);
@@ -2117,13 +2117,13 @@ public class AvatarDesignPanelTranslator {
         final String name = "settimer__" + aa.getName();
 
         if (asmdst.isEnabled()) {
-            element = new AvatarSetTimer(name, asmdst);
+            element = new AvatarSetTimer(name, asmdst, _ab);
 
             final AvatarSetTimer asettimer = (AvatarSetTimer) element;
             asettimer.setTimer(aa);
             asettimer.setTimerValue(tmp);
         } else {
-            element = new AvatarDummyState(name, asmdst);
+            element = new AvatarDummyState(name, asmdst, _ab);
         }
 
         asm.addElement(element);
@@ -2145,10 +2145,10 @@ public class AvatarDesignPanelTranslator {
         final String name = "resettimer__" + aa.getName();
 
         if (asmdrt.isEnabled()) {
-            element = new AvatarResetTimer(name, asmdrt);
+            element = new AvatarResetTimer(name, asmdrt, _ab);
             ((AvatarResetTimer) element).setTimer(aa);
         } else {
-            element = new AvatarDummyState(name, asmdrt);
+            element = new AvatarDummyState(name, asmdrt, _ab);
         }
 
         asm.addElement(element);
@@ -2170,10 +2170,10 @@ public class AvatarDesignPanelTranslator {
         final String name = "expiretimer__" + aa.getName();
 
         if (asmdet.isEnabled()) {
-            avatarElement = new AvatarExpireTimer(name, asmdet);
+            avatarElement = new AvatarExpireTimer(name, asmdet, _ab);
             ((AvatarExpireTimer) avatarElement).setTimer(aa);
         } else {
-            avatarElement = new AvatarDummyState(name, asmdet);
+            avatarElement = new AvatarDummyState(name, asmdet, _ab);
         }
 
         asm.addElement(avatarElement);
@@ -2483,7 +2483,7 @@ public class AvatarDesignPanelTranslator {
 
                         // Choice
                     else if (tgc instanceof AvatarSMDChoice) {
-                        AvatarState astate = new AvatarState("choice__" + choiceID, tgc);
+                        AvatarState astate = new AvatarState("choice__" + choiceID, tgc, _ab);
                         choiceID++;
                         asm.addElement(astate);
                         listE.addCor(astate, tgc);
@@ -2504,7 +2504,7 @@ public class AvatarDesignPanelTranslator {
                         this.translateAvatarSMDExpireTimer(asmdp, _as, _ab, (AvatarSMDExpireTimer) tgc);
                         // Start state
                     else if (tgc instanceof AvatarSMDStartState) {
-                        AvatarStartState astart = new AvatarStartState("start", tgc);
+                        AvatarStartState astart = new AvatarStartState("start", tgc, _ab);
                         this.listE.addCor(astart, tgc);
                         tgc.setAVATARID(astart.getID());
                         asm.addElement(astart);
@@ -2513,7 +2513,7 @@ public class AvatarDesignPanelTranslator {
                             asm.setStartState(astart);
                         // Stop state
                     } else if (tgc instanceof AvatarSMDStopState) {
-                        AvatarStopState astop = new AvatarStopState("stop", tgc);
+                        AvatarStopState astop = new AvatarStopState("stop", tgc, _ab);
                         astop.setAsVerifiable(true);
                         this.listE.addCor(astop, tgc);
                         tgc.setAVATARID(astop.getID());
diff --git a/src/main/java/ui/ColorManager.java b/src/main/java/ui/ColorManager.java
index 55678876c41dc49ae8b6790d9601c85115641ace..6129b4997dcfcf94203569f6e932d5bd8d459105 100644
--- a/src/main/java/ui/ColorManager.java
+++ b/src/main/java/ui/ColorManager.java
@@ -235,6 +235,9 @@ public class ColorManager {
     public static final Color InteractiveSimulationText_TERM = new Color(241, 6, 6);
     public static final Color InteractiveSimulationText_UNKNOWN = new Color(6, 6, 241);
 
+    public static  Color SENDING_VERTEX = new Color(239, 212, 176);
+    public static  Color COMM_EDGE = new Color(5, 200, 7);
+
     // Issue #69: Managing color for disabled diagram components
     public final static void setColor( 	Graphics g,
     									int state,
diff --git a/src/main/java/ui/FaultTreePanelTranslator.java b/src/main/java/ui/FaultTreePanelTranslator.java
index 36b4bf8fdec17ecab9f2ed8483bca29bbf0b8845..686a0714faaea808970373f27d1e4a9d5cb3ae2d 100644
--- a/src/main/java/ui/FaultTreePanelTranslator.java
+++ b/src/main/java/ui/FaultTreePanelTranslator.java
@@ -315,7 +315,7 @@ public class FaultTreePanelTranslator {
         // One block per Fault -> syncho
         // One mast block with all channels declared at that level
         AvatarBlock mainBlock = new AvatarBlock("MainBlock", as, null);
-        AvatarStartState ass = new AvatarStartState("StartStateOfMainBlock", null);
+        AvatarStartState ass = new AvatarStartState("StartStateOfMainBlock", null, mainBlock);
         mainBlock.getStateMachine().setStartState(ass);
         mainBlock.getStateMachine().addElement(ass);
         as.addBlock(mainBlock);
@@ -416,13 +416,13 @@ public class FaultTreePanelTranslator {
                 isChecked = ((TGComponent) (_ref1)).hasCheckedAccessibility();
             }
 
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState performedState = new AvatarState("main", _ref1, isCheckable, isChecked);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState performedState = new AvatarState("main", _ref1, _ab, isCheckable, isChecked);
             performedState.setAsVerifiable(true);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingFault", _sigFault, _ref1);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingFault", _sigFault, _ref1, _ab);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -464,10 +464,10 @@ public class FaultTreePanelTranslator {
 
         } else {
 
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -507,22 +507,22 @@ public class FaultTreePanelTranslator {
             if (_ref1 instanceof TGComponent) {
                 isChecked = ((TGComponent) (_ref1)).hasCheckedAccessibility();
             }
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState activateState = new AvatarState("activate", _ref, false, false);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState activatedState = new AvatarState("activated", _ref1, isCheckable, isChecked);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState activateState = new AvatarState("activate", _ref, _ab, false, false);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState activatedState = new AvatarState("activated", _ref1, _ab, isCheckable, isChecked);
             if (_ref1 instanceof FTDFault) {
                 activatedState.setAsVerifiable(true);
             }
 
-            AvatarState performedState = new AvatarState("performed", _ref, false, false);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, false, false);
-            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingFault", _sigFault, _ref1);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
-            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref);
-            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1);
-            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1);
+            AvatarState performedState = new AvatarState("performed", _ref, _ab, false, false);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, _ab, false, false);
+            AvatarActionOnSignal getMake = new AvatarActionOnSignal("GettingFault", _sigFault, _ref1, _ab);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1, _ab);
+            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -606,16 +606,16 @@ public class FaultTreePanelTranslator {
             getActivateAfterStop.addNext(at);
             at.addNext(mainStop);
         } else {
-            AvatarStartState start = new AvatarStartState("start", _ref);
-            AvatarState activateState = new AvatarState("activate", _ref, false, false);
-            AvatarState mainState = new AvatarState("main", _ref, false, false);
-            AvatarState activatedState = new AvatarState("main", _ref1, isCheckable, isChecked);
-            AvatarState mainStop = new AvatarState("stop", _ref, false, false);
-            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, false, false);
-            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref);
-            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref);
-            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1);
-            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1);
+            AvatarStartState start = new AvatarStartState("start", _ref, _ab);
+            AvatarState activateState = new AvatarState("activate", _ref, _ab, false, false);
+            AvatarState mainState = new AvatarState("main", _ref, _ab, false, false);
+            AvatarState activatedState = new AvatarState("main", _ref1, _ab, isCheckable, isChecked);
+            AvatarState mainStop = new AvatarState("stop", _ref, _ab, false, false);
+            AvatarState stopBeforeActivate = new AvatarState("stopBeforeActivate", _ref, _ab, false, false);
+            AvatarActionOnSignal getStop = new AvatarActionOnSignal("GettingStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getStopInitial = new AvatarActionOnSignal("GettingInitialStop", _sigStop, _ref, _ab);
+            AvatarActionOnSignal getActivate = new AvatarActionOnSignal("GettingActivate", _sigActivate, _ref1, _ab);
+            AvatarActionOnSignal getActivateAfterStop = new AvatarActionOnSignal("GettingActivateAfterStop", _sigActivate, _ref1, _ab);
 
             asm.addElement(start);
             asm.setStartState(start);
@@ -722,10 +722,10 @@ public class FaultTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -748,7 +748,7 @@ public class FaultTreePanelTranslator {
             atF.addAction(att.getName() + "__performed = false");
 
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             at.setProbability(att.getProbability());
@@ -773,7 +773,7 @@ public class FaultTreePanelTranslator {
 
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -791,10 +791,10 @@ public class FaultTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -818,7 +818,7 @@ public class FaultTreePanelTranslator {
 
 
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -842,7 +842,7 @@ public class FaultTreePanelTranslator {
 
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -860,10 +860,10 @@ public class FaultTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -895,7 +895,7 @@ public class FaultTreePanelTranslator {
 
 
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -920,7 +920,7 @@ public class FaultTreePanelTranslator {
 
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -939,10 +939,10 @@ public class FaultTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -966,7 +966,7 @@ public class FaultTreePanelTranslator {
 
             // From Main
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -980,7 +980,7 @@ public class FaultTreePanelTranslator {
             at.addNext(mainState);
 
             // Link from End
-            acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -994,7 +994,7 @@ public class FaultTreePanelTranslator {
             at.addNext(endState);
 
             // Link from Overall
-            acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -1020,7 +1020,7 @@ public class FaultTreePanelTranslator {
 
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -1040,11 +1040,11 @@ public class FaultTreePanelTranslator {
         AvatarStateMachine asm = _ab.getStateMachine();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState stoppingAll = new AvatarState("stoppingAll", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState stoppingAll = new AvatarState("stoppingAll", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1074,7 +1074,7 @@ public class FaultTreePanelTranslator {
 
             // From Main
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             AvatarTransition at = new AvatarTransition(_ab, "at_toInputFault", _ref);
             asm.addElement(at);
@@ -1096,7 +1096,7 @@ public class FaultTreePanelTranslator {
             //           if (att.isLeaf()) {
             // Leaf Fault -> must make a stop
             sigAtt = _main.getAvatarSignalWithName("acceptStop__" + att.getName());
-            acceptFault = new AvatarActionOnSignal("StopFault", sigAtt, _ref1);
+            acceptFault = new AvatarActionOnSignal("StopFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
             at = new AvatarTransition(_ab, "at_toInputFault_leaf", _ref);
             asm.addElement(at);
@@ -1139,7 +1139,7 @@ public class FaultTreePanelTranslator {
 
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -1160,10 +1160,10 @@ public class FaultTreePanelTranslator {
         _node.orderFaults();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1180,10 +1180,10 @@ public class FaultTreePanelTranslator {
 
         // Chaining accept Faults
         for (Fault att : _node.getInputFaults()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1206,7 +1206,7 @@ public class FaultTreePanelTranslator {
         // Performing resulting Fault
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -1225,10 +1225,10 @@ public class FaultTreePanelTranslator {
         _node.orderFaults();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1246,10 +1246,10 @@ public class FaultTreePanelTranslator {
         // Chaining accept Faults
         int cpt = 0;
         for (Fault att : _node.getInputFaults()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1276,7 +1276,7 @@ public class FaultTreePanelTranslator {
         // Performing resulting Fault
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
@@ -1295,11 +1295,11 @@ public class FaultTreePanelTranslator {
         _node.orderFaults();
 
         // Basic machine
-        AvatarStartState start = new AvatarStartState("start", _ref);
-        AvatarState mainState = new AvatarState("main", _ref, false, false);
-        AvatarState endState = new AvatarState("end", _ref, false, false);
-        AvatarState overallState = new AvatarState("overall", _ref, false, false);
-        AvatarState timeout = new AvatarState("timeout", _ref, false, false);
+        AvatarStartState start = new AvatarStartState("start", _ref, _main);
+        AvatarState mainState = new AvatarState("main", _ref, _main, false, false);
+        AvatarState endState = new AvatarState("end", _ref, _main, false, false);
+        AvatarState overallState = new AvatarState("overall", _ref, _main, false, false);
+        AvatarState timeout = new AvatarState("timeout", _ref, _main, false, false);
         asm.addElement(start);
         asm.setStartState(start);
         asm.addElement(mainState);
@@ -1318,10 +1318,10 @@ public class FaultTreePanelTranslator {
         // Chaining accept Faults
         int cpt = 0;
         for (Fault att : _node.getInputFaults()) {
-            AvatarState state = new AvatarState("state__" + att.getName(), _ref);
+            AvatarState state = new AvatarState("state__" + att.getName(), _ref, _main);
             asm.addElement(state);
             avatartranslator.AvatarSignal sigAtt = _main.getAvatarSignalWithName("accept__" + att.getName());
-            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1);
+            AvatarActionOnSignal acceptFault = new AvatarActionOnSignal("AcceptFault", sigAtt, _ref1, _main);
             asm.addElement(acceptFault);
 
             at = new AvatarTransition(_ab, "at", _ref);
@@ -1352,7 +1352,7 @@ public class FaultTreePanelTranslator {
         // Performing resulting Fault
         Fault resulting = _node.getResultingFault();
         avatartranslator.AvatarSignal sigFault = _main.getAvatarSignalWithName("nodeDone__" + resulting.getName());
-        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1);
+        AvatarActionOnSignal resultingFault = new AvatarActionOnSignal("ResultingFault", sigFault, _ref1, _main);
         asm.addElement(resultingFault);
         at = new AvatarTransition(_ab, "at_toResultingFault", _ref);
         asm.addElement(at);
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index 2aa943c1b47860b7558be918f0b5c7bd101de756..93cd67bc4d16fc363b732636c8a1b69e6ec4d7d9 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -2288,7 +2288,7 @@ public class GTURTLEModeling {
     public String toSysMLV2() {
         if (avatarspec != null) {
             AVATAR2SysMLV2 toS = new AVATAR2SysMLV2(avatarspec);
-            StringBuffer sb = toS.generateSysMLV2Spec(true, true);
+            StringBuffer sb = toS.generateSysMLV2Spec(true, true, null);
             TraceManager.addDev("SysMLV2:\n" + sb.toString());
             return sb.toString();
         }
@@ -9168,13 +9168,20 @@ public class GTURTLEModeling {
     }
 
 
-    public void addStates(AvatarStateMachineElement asme, int x, int y, AvatarSMDPanel smp, AvatarBDBlock bl, Map<AvatarStateMachineElement, TGComponent> SMDMap, Map<AvatarStateMachineElement, TGComponent> locMap, Map<AvatarTransition, AvatarStateMachineElement> tranDestMap, Map<AvatarTransition, TGComponent> tranSourceMap) {
+    public void addStates(AvatarStateMachineElement asme, int x, int y, AvatarSMDPanel smp, AvatarBDBlock bl,
+                          Map<AvatarStateMachineElement, TGComponent> SMDMap, Map<AvatarStateMachineElement, TGComponent> locMap,
+                          Map<AvatarTransition, AvatarStateMachineElement> tranDestMap, Map<AvatarTransition, TGComponent> tranSourceMap) {
         // TGConnectingPoint tp = new TGConnectingPoint(null, x, y, false, false);
         //Create dummy tgcomponent
-        TGComponent tgcomp = new AvatarSMDStartState(x, y, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp);
+
         if (asme == null) {
             return;
         }
+
+        //TGComponent tgcomp = new AvatarSMDStartState(x, y, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp);
+        TGComponent tgcomp = null;
+        //TraceManager.addDev("Block " + bl.getName() + " / " + bl.getValue() + " Found: " + asme.getExtendedName());
+
         if (asme instanceof AvatarStartState) {
             AvatarSMDStartState smdss = new AvatarSMDStartState(x, y, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp);
             tgcomp = smdss;
@@ -9208,6 +9215,7 @@ public class GTURTLEModeling {
         }
 
         if (asme instanceof AvatarActionOnSignal) {
+            //TraceManager.addDev("Block " + bl.getName() + " / " + bl.getValue() + " Found AvatarActionOnSignal: " + asme.getExtendedName());
             avatartranslator.AvatarSignal sig = ((AvatarActionOnSignal) asme).getSignal();
             if (sig.isIn()) {
                 AvatarSMDReceiveSignal smdrs = new AvatarSMDReceiveSignal(x, y, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp);
@@ -9348,6 +9356,8 @@ public class GTURTLEModeling {
         }
         if (asme.getNexts() != null) {
             for (AvatarStateMachineElement el : asme.getNexts()) {
+                /*TraceManager.addDev("Block " + bl.getName() + " / " + bl.getValue() +
+                        " Handling next of " + asme.getExtendedName() + ": " + el.getExtendedName());*/
                 if (el instanceof AvatarTransition) {
                     tranSourceMap.put((AvatarTransition) el, tgcomp);
                 } else {
@@ -9357,6 +9367,8 @@ public class GTURTLEModeling {
                     }
                 }
                 if (!SMDMap.containsKey(el)) {
+                    /*TraceManager.addDev("not in map: Block " + bl.getName() + " / " + bl.getValue() +
+                            " Handling next of " + asme.getExtendedName() + ": " + el.getExtendedName());*/
                     addStates(el, x + diff * i, y + ydiff, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap);
                 }
                 i++;
@@ -9447,6 +9459,7 @@ public class GTURTLEModeling {
         }
         //TraceManager.addDev("Check done. " + checkingErrors.size() + " errors found\nAvatar Spec:\n" + avspec.toString());
 
+
         // Go for drawing!
         hasCrypto = false;
         //Map<String, Set<String>> originDestMap = new HashMap<String, Set<String>>();
@@ -9511,6 +9524,8 @@ public class GTURTLEModeling {
                         }
                         drawBlockProperties(ab, bl);
                         AvatarSMDPanel smp = adp.getAvatarSMDPanel(bl.getValue());
+                        //TraceManager.addDev("\nBuilding state machine of block " + ab.getName() + " smd:" + ab.getStateMachine().toString() + "\n" +
+                         //       "\n");
                         buildStateMachine(ab, bl, smp);
                         //TraceManager.addDev("Putting in block")
                         blockMap.put(bl.getValue().split("__")[bl.getValue().split("__").length - 1], bl);
@@ -9629,9 +9644,10 @@ public class GTURTLEModeling {
             for (AvatarPragma p : avspec.getPragmas()) {
 
                 //    arr[i] = p.getName();
+                TraceManager.addDev("Handling pragma: " + p.getName());
                 String t = "";
                 String[] split = p.getName().split(" ");
-                if (p.getName().contains("#Confidentiality")) {
+                if (p.getName().startsWith("Confidentiality")) {
                     for (String str : split) {
                         if (str.contains(".")) {
                             String tmp = str.split("\\.")[0];
@@ -9642,14 +9658,22 @@ public class GTURTLEModeling {
                             t = t.concat(str + " ");
                         }
                     }
-                } else if (p.getName().contains("Authenticity")) {
+                } else if (p.getName().startsWith("Authenticity")) {
                     t = p.getName();
-                } else if (p.getName().contains("Initial")) {
+                } else if (p.getName().startsWith("Initial")) {
                     t = p.getName();
                 } else {
                     t = p.getName();
                 }
-                s = s.concat(t + "\n");
+                //TraceManager.addDev("1. pragma=" + t);
+                t = t.trim();
+                if (t.startsWith("Confidentiality") || t.startsWith("Authenticity") ) {
+                    t = "#" + t;
+                }
+                //TraceManager.addDev("2. pragma=" + t);
+                s = s + "\n";
+                s = s.concat(t);
+
                 //  i++;
             }
             pragma.setValue(s);
@@ -9936,6 +9960,9 @@ public class GTURTLEModeling {
     }
 
     public void buildStateMachine(AvatarBlock ab, AvatarBDBlock bl, AvatarSMDPanel smp) {
+
+        //TraceManager.addDev("Building state machine of " + ab.getName());
+
         Map<AvatarTransition, TGComponent> tranSourceMap = new HashMap<AvatarTransition, TGComponent>();
         Map<AvatarTransition, AvatarStateMachineElement> tranDestMap = new HashMap<AvatarTransition, AvatarStateMachineElement>();
         Map<AvatarStateMachineElement, TGComponent> locMap = new HashMap<AvatarStateMachineElement, TGComponent>();
@@ -9946,19 +9973,25 @@ public class GTURTLEModeling {
         int smy = 40;
 
         if (smp == null) {
-
             return;
         }
+
         smp.removeAll();
         AvatarStateMachine asm = ab.getStateMachine();
+
+        //TraceManager.addDev("\nState machine: " + asm.toString() + "\n\n");
+        //TraceManager.addDev("\nRecursive state machine: " + asm.toStringRecursive() + "\n\n");
+
         //Remove the empty check states
 
         AvatarStartState start = asm.getStartState();
 
         addStates(start, smx, smy, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap);
 
+        //TraceManager.addDev("\nState machine: " + asm.toString() + "\n\n");
+
         //Add transitions
-        for (AvatarTransition t : tranSourceMap.keySet()) {
+        for (AvatarTransition t: tranSourceMap.keySet()) {
             if (tranSourceMap.get(t) == null || tranDestMap.get(t) == null || locMap.get(tranDestMap.get(t)) == null) {
                 continue;
             }
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index bebaf52c272e59f925adaaad36e587f00824413e..8cdba5240950de9e28cd92362221db57b01370d8 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -8299,6 +8299,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     }
 
     public TDiagramPanel getCurrentMainTDiagramPanel() {
+        TraceManager.addDev("Main selected index:" + mainTabbedPane.getSelectedIndex());
         return tabs.elementAt(mainTabbedPane.getSelectedIndex()).tdp;
     }
 
diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java
index c9e2c8278d71f457a9a64b775bae529cc366e2fb..cd3d5dfa169d816ed115732f19a0541e071938ce 100644
--- a/src/main/java/ui/TDiagramPanel.java
+++ b/src/main/java/ui/TDiagramPanel.java
@@ -2591,21 +2591,27 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         for (TGComponent tgc : getAllComponentList()) {
             tgc.resetVerificationResults();
         }
-        for (TMLTask t : mgui.gtm.getTMLMapping().getTMLModeling().getTasks()) {
-            for (TMLActivityElement elem : t.getActivityDiagram().getElements()) {
-                if (elem.getReferenceObject() instanceof TMLADReadChannel){
-                    TMLADReadChannel rc = (TMLADReadChannel) elem.getReferenceObject();
-                    if (rc.getAuthCheck()) {
-                        rc.setWeakAuthStatus(1);
-                        rc.setStrongAuthStatus(1);
-                    }
-                }
+        if (mgui.gtm.getTMLMapping() != null) {
+            if ( mgui.gtm.getTMLMapping().getTMLModeling() != null) {
+                if (mgui.gtm.getTMLMapping().getTMLModeling().getTasks() != null) {
+                    for (TMLTask t : mgui.gtm.getTMLMapping().getTMLModeling().getTasks()) {
+                        for (TMLActivityElement elem : t.getActivityDiagram().getElements()) {
+                            if (elem.getReferenceObject() instanceof TMLADReadChannel) {
+                                TMLADReadChannel rc = (TMLADReadChannel) elem.getReferenceObject();
+                                if (rc.getAuthCheck()) {
+                                    rc.setWeakAuthStatus(1);
+                                    rc.setStrongAuthStatus(1);
+                                }
+                            }
 
-                if (elem.getReferenceObject() instanceof TMLADDecrypt) {
-                    TMLADDecrypt dec = (TMLADDecrypt) elem.getReferenceObject();
-                    if (dec.getAuthCheck()) {
-                        dec.setWeakAuthStatus(1);
-                        dec.setStrongAuthStatus(1);
+                            if (elem.getReferenceObject() instanceof TMLADDecrypt) {
+                                TMLADDecrypt dec = (TMLADDecrypt) elem.getReferenceObject();
+                                if (dec.getAuthCheck()) {
+                                    dec.setWeakAuthStatus(1);
+                                    dec.setStrongAuthStatus(1);
+                                }
+                            }
+                        }
                     }
                 }
             }
diff --git a/src/main/java/ui/avatarbd/AvatarBDPanel.java b/src/main/java/ui/avatarbd/AvatarBDPanel.java
index 14a085f16f292472f14cae31cb9d45b8a6d07d02..9639dea10ea80c84adc1bfff00620b6993fcf6dd 100644
--- a/src/main/java/ui/avatarbd/AvatarBDPanel.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPanel.java
@@ -941,7 +941,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public ArrayList<String> loadAndUpdateFromText(String _spec, boolean apply) throws org.json.JSONException {
         TraceManager.addDev("Loading blocks from JSON:" + _spec);
 
-        AvatarSpecification avatarSpec = AvatarSpecification.fromJSON(_spec, getName(), this);
+        AvatarSpecification avatarSpec = AvatarSpecification.fromJSON(_spec, getName(), this, true);
         if (apply) {
             mgui.drawAvatarSpecification(avatarSpec);
         }
@@ -957,7 +957,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         }
         AvatarSpecification avspec = mgui.gtm.getAvatarSpecification();
         AVATAR2SysMLV2 tosysmlv2 = new AVATAR2SysMLV2(avspec);
-        StringBuffer sb = tosysmlv2.generateSysMLV2Spec(false, false);
+        StringBuffer sb = tosysmlv2.generateSysMLV2Spec(false, false, exclusions);
         return sb;
     }
 }
diff --git a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
index ae2c4de2d8507ff00315f28867542287a2a4677f..a6a068d1b76f9115cdb08a32f17053333f8e434b 100644
--- a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java
@@ -124,7 +124,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent {
         editable = true;
         removable = true;
         syntaxErrors = new ArrayList<String>();
-        name = "UPPAAL Pragma";
+        name = "Safety Pragma";
         value = "";
 
         myImageIcon = IconManager.imgic6000;
diff --git a/src/main/java/ui/graphd/GraphDPanel.java b/src/main/java/ui/graphd/GraphDPanel.java
index 4e27c8c1664a13c556430a81501e2902ee62abef..1485f6c0ee85f90bc3d4f165e89f47252f530623 100644
--- a/src/main/java/ui/graphd/GraphDPanel.java
+++ b/src/main/java/ui/graphd/GraphDPanel.java
@@ -69,6 +69,8 @@ public class GraphDPanel extends TDiagramPanel implements TDPWithAttributes, Run
     public int GOOD_CONNECTOR = 200;
     public int INC = 5;
 
+    public AUTGraph autGraph;
+
     public GraphDPanel(MainGUI mgui, TToolBar _ttb) {
         super(mgui, _ttb);
         //addComponent(400, 50, TGComponentManager.EBRDD_START_STATE, false);
@@ -171,6 +173,8 @@ public class GraphDPanel extends TDiagramPanel implements TDPWithAttributes, Run
     // Making a graph from AUT
     public void makeGraphAUT(AUTGraph graph) {
 
+        autGraph = graph;
+
         TraceManager.addDev("Making graph");
 
         graph.computeStates();
@@ -227,6 +231,9 @@ public class GraphDPanel extends TDiagramPanel implements TDPWithAttributes, Run
                             true,
                             null, this, p1, p2, null);
                     connector.setValue(tr.transition);
+                    if (tr.hasTag(AUTGraph.COMM_TAG)) {
+                        connector.setCurrentColor(ColorManager.COMM_EDGE);
+                    }
                     //TraceManager.addDev("Adding transition with value=" + tr.transition + " label=" + tr.getLabel());
                     addBuiltConnector(connector);
 
@@ -291,7 +298,7 @@ public class GraphDPanel extends TDiagramPanel implements TDPWithAttributes, Run
         // Blue for comm states
         if (info != null) {
             if (info.contains("Sending ") || info.contains("!")) {
-                dv.setCurrentColor(ColorManager.TML_COMPOSITE_COMPONENT);
+                dv.setCurrentColor(ColorManager.SENDING_VERTEX);
             } else if (info.contains("Receiving ") || info.contains("?")) {
                 dv.setCurrentColor(ColorManager.BUS_BOX);
             }
diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
index 405d0fb81c89b5e71a1848ae83a62564ef72a6f6..c04b87ed5c4ed2434a78f16c5980c78330b9a2dd 100644
--- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
+++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
@@ -1496,7 +1496,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 			LinkedHashMap<String, ArrayList<String>> deviceTaskMap = new LinkedHashMap<String, ArrayList<String>>();
 			for (String name: tmlComponentsToValidate){
 				TMLTask task = tmap.getTMLModeling().getTMLTaskByName(name);
-				if (task==null){
+				if (task == null){
 					continue;
 				}
 				HwNode node = tmap.getHwNodeOf(task);
@@ -1517,9 +1517,14 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 				simtraces.add("time=0 block="+ node.getName()+" type=state_entering state=start");
 				simIndex++;
 			}*/
+
+            //TraceManager.addDev("Processing traces");
+
 			for (TMLTask task : tmap.getTMLModeling().getTasks()){
 				if (!simtraces.contains("time=0 block="+ task.getName()+" type=state_entering state=startState") && tmlComponentsToValidate.contains(task.getName())){
-					simtraces.add("time=0 block="+ task.getName()+" type=state_entering state=startState");
+					String trace = "time=0 block="+ task.getName()+" type=state_entering state=startState";
+                    simtraces.add(trace);
+                    //TraceManager.addDev("Trace added: " + trace);
 					simIndex++;
 				}
 			}
@@ -1556,6 +1561,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 			}
 			bw.close();
 			pos.close();
+            TraceManager.addDev("Sim trace written");
 			tmlSimPanel.setVisible(true);
 	
 		}
diff --git a/src/main/java/ui/tree/JDiagramTree.java b/src/main/java/ui/tree/JDiagramTree.java
index 3dd34ad723f8a015d860dd4ac61e1c31775b26bf..8ac32c81985c1a0906e73521f25a9fcdee1e2957 100755
--- a/src/main/java/ui/tree/JDiagramTree.java
+++ b/src/main/java/ui/tree/JDiagramTree.java
@@ -532,8 +532,10 @@ public class JDiagramTree extends javax.swing.JTree implements ActionListener, M
             } else if (ae.getSource() == jmiShowAsDiagram) {
 
                 if (selectedRG.graph != null) {
+                    TraceManager.addDev("Drawing selected AUT graph");
                     mgui.displayGraphAUTAsDiagram(selectedRG.graph);
                 } else {
+                    TraceManager.addDev("Drawing selected RG graph");
                     mgui.displayGraphRGAsDiagram(selectedRG.name, selectedRG);
                 }
 
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index 92d6e08d6134d85e0078b748e31d571bdd148872..5d4123f3a5350aa9ab79d20fbb34f99dc9e03a56 100755
--- a/src/main/java/ui/util/DefaultText.java
+++ b/src/main/java/ui/util/DefaultText.java
@@ -50,8 +50,8 @@ package ui.util;
  */
 public class DefaultText {
 
-    public static String BUILD = "14451";
-    public static String DATE = "2023/06/14 03:20:23 CET";
+    public static String BUILD = "14487";
+    public static String DATE = "2023/07/19 03:19:58 CET";
 
     public static StringBuffer sbAbout = makeAbout();
 
diff --git a/src/main/java/ui/window/JDialogAvatarModelChecker.java b/src/main/java/ui/window/JDialogAvatarModelChecker.java
index 0b3bfb5c68e37bd622f5889bd6a249f2ac6e18dd..0683383724582b3c11ca83bc8510e0d2b5f8eb10 100644
--- a/src/main/java/ui/window/JDialogAvatarModelChecker.java
+++ b/src/main/java/ui/window/JDialogAvatarModelChecker.java
@@ -107,6 +107,8 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
     protected static boolean generateDesignSelected = false;
     protected static boolean generateDependencyGraphSelected = false;
     protected static boolean generateDependencyGraphSelectedNoID = false;
+    protected static boolean generateCompactDependencyGraphSelected = false;
+    protected static boolean generateCompactDependencyGraphSelectedNoID = false;
     protected static boolean generateDependencyGraphEltSelected = false;
     protected static boolean generateDependencyGraphEltSelectedNoID = false;
     protected static int reachabilitySelected = REACHABILITY_NONE;
@@ -186,6 +188,7 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
 
     protected JCheckBox saveGraphAUT, saveGraphDot, advancedInfoDeadlockBox, ignoreEmptyTransitions, ignoreInternalStates,
             ignoreConcurrenceBetweenInternalActions, generateDesign, generateDependencyGraph, generateDependencyGraphNoID,
+            generateCompactDependencyGraph, generateCompactDependencyGraphNoID,
             generateDependencyGraphElt, generateDependencyGraphEltNOID;
     protected JButton graphDirButton, graphPathDotButton;
     protected JTextField graphPath, graphPathDot;
@@ -323,6 +326,11 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
             generateDependencyGraph = new JCheckBox("[For testing purpose only] Generate dependency graph", generateDependencyGraphSelected);
             generateDependencyGraph.addActionListener(this);
             jp01.add(generateDependencyGraph, c01);
+
+            generateCompactDependencyGraph = new JCheckBox("[For testing purpose only] Generate compact dependency graph",
+                    generateCompactDependencyGraphSelected);
+            generateCompactDependencyGraph.addActionListener(this);
+            jp01.add(generateCompactDependencyGraph, c01);
         }
 
         if (TraceManager.devPolicy == TraceManager.TO_CONSOLE) {
@@ -330,6 +338,11 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
                     generateDependencyGraphSelectedNoID);
             generateDependencyGraphNoID.addActionListener(this);
             jp01.add(generateDependencyGraphNoID, c01);
+
+            generateCompactDependencyGraphNoID = new JCheckBox("[For testing purpose only] Generate compact dependency graph with no ID",
+                    generateCompactDependencyGraphSelectedNoID);
+            generateCompactDependencyGraphNoID.addActionListener(this);
+            jp01.add(generateCompactDependencyGraphNoID, c01);
         }
 
         if (TraceManager.devPolicy == TraceManager.TO_CONSOLE) {
@@ -897,6 +910,17 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
                 mgui.addRG(rg);
             }
 
+            if (generateCompactDependencyGraphSelected) {
+                TraceManager.addDev("Generating compact dependency graph");
+                AvatarCompactDependencyGraph adg = spec.makeCompactDependencyGraph();
+                RG rg = new RG("Compact Dependency Graph");
+                rg.graph = adg.getGraph();
+                rg.graph.referenceObject = adg;
+                rg.nbOfStates = rg.graph.getNbOfStates();
+                rg.nbOfTransitions = rg.graph.getNbOfTransitions();
+                mgui.addRG(rg);
+            }
+
             if (generateDependencyGraphSelectedNoID) {
                 TraceManager.addDev("Generating dependency graph with no ID");
                 AvatarDependencyGraph adg = spec.makeDependencyGraph(false);
@@ -907,6 +931,16 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
                 mgui.addRG(rg);
             }
 
+            if (generateCompactDependencyGraphSelectedNoID) {
+                TraceManager.addDev("Generating compacr dependency graph with no ID");
+                AvatarCompactDependencyGraph adg = spec.makeCompactDependencyGraph(false);
+                RG rg = new RG("Compact Dependency Graph no ID");
+                rg.graph = adg.getGraph();
+                rg.nbOfStates = rg.graph.getNbOfStates();
+                rg.nbOfTransitions = rg.graph.getNbOfTransitions();
+                mgui.addRG(rg);
+            }
+
             endDate = null;
             previousNbOfStates = 0;
             startDate = new Date();
@@ -1441,9 +1475,15 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
         if (generateDependencyGraph != null) {
             generateDependencyGraphSelected = generateDependencyGraph.isSelected();
         }
+        if (generateCompactDependencyGraph != null) {
+            generateCompactDependencyGraphSelected = generateCompactDependencyGraph.isSelected();
+        }
         if (generateDependencyGraphNoID != null) {
             generateDependencyGraphSelectedNoID = generateDependencyGraphNoID.isSelected();
         }
+        if (generateCompactDependencyGraphNoID != null) {
+            generateCompactDependencyGraphSelectedNoID = generateCompactDependencyGraphNoID.isSelected();
+        }
         if (generateDependencyGraphElt != null) {
             generateDependencyGraphEltSelected = generateDependencyGraphElt.isSelected();
         }
diff --git a/src/main/java/ui/window/JFrameAI.java b/src/main/java/ui/window/JFrameAI.java
index b8716b111de6020542150dbb3281f536ebc33863..f61d3ed792702b23a45f9bb43c81cf363a7705f1 100644
--- a/src/main/java/ui/window/JFrameAI.java
+++ b/src/main/java/ui/window/JFrameAI.java
@@ -39,10 +39,7 @@
 
 package ui.window;
 
-import ai.AIChatData;
-import ai.AIFeedback;
-import ai.AIInteract;
-import ai.AISysMLV2DiagramContent;
+import ai.*;
 import avatartranslator.AvatarSpecification;
 import help.HelpEntry;
 import help.HelpManager;
@@ -81,7 +78,8 @@ public class JFrameAI extends JFrame implements ActionListener {
             " requirement diagram first",
             "Identify use cases",
             "Identify properties - Select a block diagram first. You can also provide a system specification",
-            "Identify system blocks - Provide a system specification", "Identify software blocks - Provide a system specification", "Identify state" +
+            "Identify system blocks - Provide a system specification",
+            "Identify software blocks - Provide a system specification", "Identify state" +
             " machines - Select a block diagram. Additionally, you can provide a system specification",
             "A(I)MULET - Select a block diagram first"};
 
@@ -121,6 +119,8 @@ public class JFrameAI extends JFrame implements ActionListener {
         chats = new ArrayList<>();
         makeComponents();
 
+        TraceManager.addDev("Selected TDP = " + mgui.getCurrentMainTDiagramPanel().getClass());
+
     }
 
     public void setIcon(ChatData _data, Icon newIcon) {
@@ -146,7 +146,8 @@ public class JFrameAI extends JFrame implements ActionListener {
                 help();
             }
         });
-        helpPopup.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "closeJlabel");
+        helpPopup.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"),
+                "closeJlabel");
         helpPopup.getActionMap().put("closeJlabel", new AbstractAction() {
             @Override
             public void actionPerformed(ActionEvent e) {
@@ -293,8 +294,8 @@ public class JFrameAI extends JFrame implements ActionListener {
         String[] names = {"pico", "zebre", "pingouin", "chien", "minou", "kitty", "chaton", "whatsapp", "Luke Skywalker",
                 "macareux", "ours", "italien", "paris-brest", "belle-mère", "apéro (l'abus d'alcool est dangereux pour la santé)",
                 "carpe", "crocodile", "psychologue", "dr emacs", "3615-TTool", "100 balles et 1 mars",
-                "opéra (l’abus d’Alcôve est dangereux pour la santé)", "chapon", "perroquet", "chameau volant", "Alice", "Oasis", "ATC RAK",
-                "Adibou", "Cheval de Troyes"};
+                "opéra (l’abus d’Alcôve est dangereux pour la santé)", "chapon", "perroquet", "chameau volant", "Alice", "oasis", "ATC RAK",
+                "Adibou", "cheval de Troyes", "Twist", "GSM", "étalon", "jaseux"};
         int x = (int) (Math.random() * names.length);
         return names[x];
     }
@@ -307,6 +308,7 @@ public class JFrameAI extends JFrame implements ActionListener {
     }
 
     private void start() {
+        TraceManager.addDev("Start in JFrameAI");
         currentChatIndex = answerPane.getSelectedIndex();
         ChatData selected = selectedChat();
 
@@ -317,7 +319,9 @@ public class JFrameAI extends JFrame implements ActionListener {
         }
 
         if (chatDataMade) {
+            TraceManager.addDev("chatDataMade in JFameAI");
             String selectedClass = AIInteractClass[listOfPossibleActions.getSelectedIndex()];
+            TraceManager.addDev("SelectedClass: " + selectedClass);
             selected.aiInteract = ai.AIInteract.getInstance("ai." + selectedClass, selected.aiChatData);
 
 
@@ -326,7 +330,33 @@ public class JFrameAI extends JFrame implements ActionListener {
                 return;
             }
 
+            TraceManager.addDev("Selected aiinteract: " + selected.aiInteract.getClass());
+
+            if (selected.aiInteract  instanceof AIAvatarSpecificationRequired) {
+                TraceManager.addDev("****** AIAvatarSpecificationRequired identified *****");
+                TDiagramPanel tdp = mgui.getCurrentMainTDiagramPanel();
+                boolean found = false;
+                if (tdp instanceof AvatarBDPanel) {
+                    found = true;
+                }
+
+                if (found) {
+                    TraceManager.addDev("BD panel: ok");
+                    boolean ret = mgui.checkModelingSyntax(true);
+                    if (ret) {
+                        TraceManager.addDev("****** Syntax checking OK *****");
+                        ((AIAvatarSpecificationRequired) (selected.aiInteract)).setAvatarSpecification(mgui.gtm.getAvatarSpecification());
+                    } else {
+                        TraceManager.addDev("\n\n*****Syntax checking failed: no avatar spec***\n\n");
+                    }
+                } else {
+                    TraceManager.addDev("Selected panel is not correct. tdp=" + tdp.getClass());
+                    return;
+                }
+            }
+
             if (selected.aiInteract  instanceof AISysMLV2DiagramContent) {
+                TraceManager.addDev("****** AISysMLV2DiagramContent identified *****");
                 TDiagramPanel tdp = mgui.getCurrentTDiagramPanel();
                 String[] validDiagrams = ((AISysMLV2DiagramContent)(selected.aiInteract)).getValidDiagrams();
                 String className = tdp.getClass().getName();
@@ -340,8 +370,15 @@ public class JFrameAI extends JFrame implements ActionListener {
                 }
 
                 if (found) {
+                    TraceManager.addDev("The selected diagram is valid");
                     String[] exclusions = ((AISysMLV2DiagramContent)(selected.aiInteract)).getDiagramExclusions();
-                    ((AISysMLV2DiagramContent)(selected.aiInteract)).setDiagramContentInSysMLV2(tdp.toSysMLV2Text(exclusions).toString());
+                    StringBuffer sb =  tdp.toSysMLV2Text(exclusions);
+                    if (sb == null) {
+                        error("The syntax of the selected diagram is incorrect");
+                        return;
+                    } else {
+                        ((AISysMLV2DiagramContent) (selected.aiInteract)).setDiagramContentInSysMLV2(sb.toString());
+                    }
                 }
             }
 
@@ -360,9 +397,9 @@ public class JFrameAI extends JFrame implements ActionListener {
             return ;
         }
 
-        TraceManager.addDev("Class of answer: " + selectedChat.aiInteract.getClass().getName());
+        //TraceManager.addDev("Class of answer: " + selectedChat.aiInteract.getClass().getName());
 
-        if (selectedChat.aiInteract instanceof ai.AIBlock) {
+        /*if (selectedChat.aiInteract instanceof ai.AIBlock) {
             applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
         } else if (selectedChat.aiInteract instanceof ai.AISoftwareBlock) {
             applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
@@ -376,11 +413,73 @@ public class JFrameAI extends JFrame implements ActionListener {
             // nothing up to now :-)
         } else if (selectedChat.aiInteract instanceof ai.AIAmulet) {
             applyMutations();
+        }*/
+
+
+        currentChatIndex = answerPane.getSelectedIndex();
+        switch(currentChatIndex) {
+            case 0:
+                if (selectedChat.aiInteract instanceof ai.AIBlock) {
+                    applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
+                } else if (selectedChat.aiInteract instanceof ai.AISoftwareBlock) {
+                    applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
+                } else if (selectedChat.aiInteract instanceof ai.AIReqIdent) {
+                    applyRequirementIdentification();
+                } else if (selectedChat.aiInteract instanceof ai.AIReqClassification) {
+                    applyRequirementClassification();
+                } else if (selectedChat.aiInteract instanceof ai.AIDesignPropertyIdentification) {
+                    // nothing up to now :-)
+                } else if (selectedChat.aiInteract instanceof ai.AIStateMachine) {
+                    TraceManager.addDev("Applying state machines");
+                    applyIdentifyStateMachines(selectedChat.aiInteract.applyAnswer(null));
+                } else if (selectedChat.aiInteract instanceof ai.AIAmulet) {
+                    applyMutations();
+                }
+                break;
+                case 1:
+                    applyRequirementIdentification();
+                    break;
+            case 2:
+                applyRequirementClassification();
+                break;
+            case 3:
+                break;
+            case 4:
+                break;
+            case 5:
+                applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
+                break;
+            case 6:
+                applyIdentifySystemBlocks(selectedChat.aiInteract.applyAnswer(null));
+                break;
+            case 7:
+                applyIdentifyStateMachines(selectedChat.aiInteract.applyAnswer(null));
+                break;
+            case 8:
+                applyMutations();
+                break;
         }
 
         question.setText("");
     }
 
+    private void applyIdentifyStateMachines(Object input) {
+        if (input == null) {
+            error("Invalid specification in answer");
+            return;
+        }
+
+        TraceManager.addDev("Type of input:" + input.getClass());
+
+        if (!(input instanceof AvatarSpecification)) {
+            error("Invalid answer");
+            return;
+        }
+
+        mgui.drawAvatarSpecification((AvatarSpecification) input);
+        inform("State machine of blocks added to diagram from ai answer\n");
+    }
+
     private void applyRequirementIdentification() {
 
         TDiagramPanel tdp = mgui.getCurrentTDiagramPanel();
@@ -646,9 +745,9 @@ public class JFrameAI extends JFrame implements ActionListener {
 
         public void addToChat(String data, boolean user) {
             if (user) {
-                GraphicLib.appendToPane(chatOfStart().answer, "\nTTool:" + data + "\n", Color.blue);
+                GraphicLib.appendToPane(chatOfStart().answer, "\nTTool: " + data + "\n", Color.blue);
             } else {
-                GraphicLib.appendToPane(chatOfStart().answer, "\nAI:" + data + "\n", Color.red);
+                GraphicLib.appendToPane(chatOfStart().answer, "\nAI: " + data + "\n", Color.red);
             }
         }
 
diff --git a/ttool/src/test/java/avatartranslator/AvatarGuardTests.java b/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
index 273b92215ec6f9304e7ee21e1cc096dc4223200e..d433d013c705c50146710ab5e25733c3a1a4e6e8 100644
--- a/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
@@ -75,7 +75,7 @@ public class AvatarGuardTests {
         AvatarSpecification as = new AvatarSpecification("avatarspecification", null);
         A = new AvatarBlock("A", as, null);
         AvatarStateMachine Aasm = A.getStateMachine();
-        Aasm.addElement(new AvatarState("a1", null));
+        Aasm.addElement(new AvatarState("a1", null, A));
         A.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, A, null));
         A.addAttribute(new AvatarAttribute("key2", AvatarType.INTEGER, A, null));
         A.addAttribute(new AvatarAttribute("test", AvatarType.BOOLEAN, A, null));
@@ -83,7 +83,7 @@ public class AvatarGuardTests {
 
         B = new AvatarBlock("B", as, null);
         AvatarStateMachine Basm = B.getStateMachine();
-        Basm.addElement(new AvatarState("b1", null));
+        Basm.addElement(new AvatarState("b1", null, B));
         B.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, B, null));
         B.addAttribute(new AvatarAttribute("key2", AvatarType.BOOLEAN, B, null));
         B.addAttribute(new AvatarAttribute("m__a", AvatarType.UNDEFINED, B, null));
@@ -91,7 +91,7 @@ public class AvatarGuardTests {
 
         AvatarBlock C = new AvatarBlock("C", as, null);
         AvatarStateMachine Casm = C.getStateMachine();
-        Casm.addElement(new AvatarState("c1", null));
+        Casm.addElement(new AvatarState("c1", null, C));
         C.addAttribute(new AvatarAttribute("attr", AvatarType.INTEGER, C, null));
         C.addAttribute(new AvatarAttribute("m__a", AvatarType.UNDEFINED, C, null));
         C.addAttribute(new AvatarAttribute("m__b", AvatarType.UNDEFINED, C, null));
diff --git a/ttool/src/test/java/avatartranslator/AvatarIBSStdParserTest.java b/ttool/src/test/java/avatartranslator/AvatarIBSStdParserTest.java
index 7425ecf6fdf2a467f3213a1feb237b3702fc4d34..a3edd47ab6c03d297a90dc3bf38a93530c962e01 100644
--- a/ttool/src/test/java/avatartranslator/AvatarIBSStdParserTest.java
+++ b/ttool/src/test/java/avatartranslator/AvatarIBSStdParserTest.java
@@ -164,7 +164,9 @@ public class AvatarIBSStdParserTest {
         assertFalse(e13Ter!=null);
 
         HashSet<String> H = AvatarIBSolver.getBadIdents();
-        for(String s:H){System.out.println(s);}
+        for(String s:H){
+            System.out.println(s);
+        }
         AvatarIBSolver.clearBadIdents();
         
         AvatarIBSExpressions.IExpr e14 = AvatarIBSolver.parseInt("3+2");
@@ -180,11 +182,14 @@ public class AvatarIBSStdParserTest {
         AvatarIBSExpressions.BExpr e17 = AvatarIBSolver.parseBool("((true)) && (((((0 >= 1))))) || not((not(false)))");
         assertTrue(e17!=null);
          AvatarIBSExpressions.IExpr e18 = AvatarIBSolver.parseInt("2 * -3 + -5 * 4 + 27"); // 1
-        assertTrue(e17!=null);
+        assertTrue(e18!=null);
         AvatarIBSExpressions.IExpr e19 = AvatarIBSolver.parseInt("-6 / -2 * 3 - -4 "); // 13
-        assertTrue(e17!=null);
+        assertTrue(e19!=null);
        AvatarIBSExpressions.IExpr e20 = AvatarIBSolver.parseInt("-(2 * 3)+ -(1+1) * -3"); // 0
-        assertTrue(e17!=null);
+        assertTrue(e20!=null);
+
+        AvatarIBSExpressions.IExpr e21 = AvatarIBSolver.parseInt("0"); // 0
+        assertTrue(e21!=null);
 
         assertEquals(true, e1.eval());
         assertEquals(true, e2.eval());
@@ -202,6 +207,7 @@ public class AvatarIBSStdParserTest {
         assertEquals(1, e18.eval());
         assertEquals(13, e19.eval());
         assertEquals(0, e20.eval());
+        assertEquals(0, e21.eval());
 
     }
     
@@ -256,12 +262,22 @@ public class AvatarIBSStdParserTest {
         assertTrue(e10!=null);
         AvatarIBSExpressions.IExpr e11 = AvatarIBSolver.parseInt(block1,"x + y");
         assertTrue(e11!=null);
+        AvatarIBSExpressions.IExpr e11bis = AvatarIBSolver.parseInt(block1,"x*8/y");
+        assertTrue(e11bis!=null);
         AvatarIBSExpressions.IExpr e12 = AvatarIBSolver.parseInt(block1,"x*((x + y)*z + (x+z)/z)/x");
         assertTrue(e12!=null);
         AvatarIBSExpressions.BExpr e13 = AvatarIBSolver.parseBool(block1,"(key1==false) and (key2==true)");
         assertTrue(e13!=null);
         AvatarIBSExpressions.BExpr e14 = AvatarIBSolver.parseBool(block1,"x-40<3");
         assertTrue(e14!=null);
+
+        TraceManager.addDev("Testing e15");
+        AvatarIBSExpressions.BExpr e15 = AvatarIBSolver.parseBool(block1,"x-40<3*b");
+        TraceManager.addDev("Expr e15 built");
+        //assertTrue(e15!=null);
+        //TraceManager.addDev("Testing e15 done");
+
+
         assertTrue(e1.eval(specBlock) == 15);
         assertTrue(e2.eval(specBlock));
         assertTrue(!e3.eval(specBlock));
diff --git a/ttool/src/test/java/tmltranslator/DiplodocusSecurityTest.java b/ttool/src/test/java/tmltranslator/DiplodocusSecurityTest.java
index dfe0bdd92b97ec79c8418bebb36b7ea910fa91dd..747d7fbf41ef8dc08047002dfa1521f206d5fb10 100644
--- a/ttool/src/test/java/tmltranslator/DiplodocusSecurityTest.java
+++ b/ttool/src/test/java/tmltranslator/DiplodocusSecurityTest.java
@@ -44,6 +44,7 @@ public class DiplodocusSecurityTest extends AbstractTest {
     final static String DIR_GEN = "tmltranslator/test_diplo_security/";
     final static String DIR_MODELS = "tmltranslator/test_diplo_security_models/";
     final String [] MODELS_DIPLO_SECURITY = {"symetric", "nonce", "keyexchange", "mac"};
+
     private static final List<List<String>> LIST_OF_LISTS_OF_QUERIES = Arrays.asList(
             Arrays.asList("Query not attacker(Alice___SymmetricExchange__comm_chData[!1 = v]) is true.",
                     "Query inj-event(authenticity___Bob___SymmetricExchange__comm_chData___aftersignalstate_SymmetricExchange_comm_" +
@@ -57,7 +58,10 @@ public class DiplodocusSecurityTest extends AbstractTest {
                     "(dummyM)) ==> inj-event(authenticity___Alice___KeyExchange__comm_chData___signalstate_KeyExchange_comm_KeyExchange_comm239" +
                     "(dummyM)) is true.", "Query inj-event(authenticity___Bob___KeyExchange__comm_chData___aftersignalstate_KeyExchange_comm" +
                     "_KeyExchange_comm283(dummyM)) ==> inj-event(authenticity___Alice___KeyExchange__comm_chData" +
-                    "___signalstate_KeyExchange_comm_KeyExchange_comm239(dummyM)) is true."),
+                    "___signalstate_KeyExchange_comm_KeyExchange_comm239(dummyM)) is true.",
+                    "Query inj-event(authenticity___Bob___KeyExchange__comm_chData___aftersignalstate_KeyExchange_comm_KeyExchange_",
+                    "Query inj-event(authenticity___Bob___KeyExchange__comm_chData___aftersignalstate_KeyExchange_comm_KeyExchange_comm(dummyM)) " +
+                            "==> inj-event(authenticity___Alice___KeyExchange__comm_chData___signalstate_KeyExchange_comm_KeyExchange_comm(dummyM)) is false"),
             Arrays.asList("Query not attacker(Alice___MAC__comm_chData[!1 = v]) is true.",
                     "Query inj-event(authenticity___Bob___MAC__comm_chData___aftersignalstate_MAC_comm_MAC_comm(dummyM)) ==> inj-event(authenticity" +
                             "___Alice___MAC__comm_chData___signalstate_MAC_comm_MAC_comm(dummyM)) is false")
@@ -104,7 +108,7 @@ public class DiplodocusSecurityTest extends AbstractTest {
 
         for (int i = 0; i < MODELS_DIPLO_SECURITY.length; i++) {
             String s = MODELS_DIPLO_SECURITY[i];
-            System.out.println("Checking the security of " + s);
+            System.out.println("\n\n********** Checking the security of " + s + " ********\n");
             TMLMappingTextSpecification tmts = new TMLMappingTextSpecification(s);
             File f = new File(RESOURCES_DIR + s + ".tmap");
             System.out.println("Loading file: " + f.getAbsolutePath());
diff --git a/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java b/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
index fd3dcfe2d7893b971e6a1e79dc93d289db1fe449..af79c9d97392bec02cff6f88f8168829ace3627f 100644
--- a/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
+++ b/ttool/src/test/java/ui/TDiagramPanelCloneArchitectureTest.java
@@ -40,8 +40,10 @@
 package ui;
 
 import myutil.TraceManager;
+import org.apache.batik.anim.timing.Trace;
 import org.junit.*;
 import tmltranslator.*;
+import translator.CheckingError;
 import ui.tmldd.TMLArchiDiagramPanel;
 
 import java.io.*;
@@ -82,12 +84,14 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
         super();
 
         // Open expected model
+        TraceManager.addDev("*** Opening model");
         mainGUI.openProjectFromFile(new File(EXPECTED_FILE_MODEL));
 
         for(TURTLEPanel _tab : mainGUI.getTabs()) {
             if(_tab instanceof TMLArchiPanel) {
                 for (TDiagramPanel tdp : _tab.getPanels()) {
                     if (tdp instanceof TMLArchiDiagramPanel) {
+                        TraceManager.addDev("*** Selecting tdp TMLArchiDiagramPanel");
                         mainGUI.selectTab(tdp);
                         break;
                     }
@@ -96,16 +100,23 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
+        waiting();
 
+        TraceManager.addDev("*** Checking modeling syntax");
         mainGUI.checkModelingSyntax(true);
+        TraceManager.addDev("*** Checking modeling syntax: done");
         tmlMapping_exp = mainGUI.gtm.getTMLMapping();
+        TraceManager.addDev("*** Got mapping");
+
 
         // Open testing model
+        TraceManager.addDev("*** Opening testing model");
         mainGUI.openProjectFromFile(new File(RESOURCES_DIR));
     }
 
     @Before
     public void setUp() {
+        TraceManager.addDev("*** Setup");
         for(TURTLEPanel _tab : mainGUI.getTabs()) {
             if(_tab instanceof TMLArchiPanel) {
                 for (TDiagramPanel tdp : _tab.getPanels()) {
@@ -123,7 +134,7 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
 
         for (TGComponent tgc : architecture_clone.getAllComponentList()) {
 
-            if (tgc.getName().equals("CPU1")) {
+            if (tgc.getName().equals("CPU0")) {
                 CPU_Cl = tgc;
             }
 
@@ -155,14 +166,26 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
     }
 
     public void cloneHwNodesOfTestingModel(){
+
+        TraceManager.addDev("clone bus");
+        architecture_clone.cloneComponent(Bus_Cl);
+        for (TGComponent tgc : architecture_clone.getComponentList()) {
+            if (tgc.getName().equals("Bus0")) {
+                tgc.setName("Bus1");
+                break;
+            }
+        }
+
+        TraceManager.addDev("clone CPUs");
         architecture_clone.cloneComponent(CPU_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
-            if (tgc.getName().equals("CPU1")) {
-                tgc.setName("CPU2");
+            if (tgc.getName().equals("CPU0")) {
+                tgc.setName("CPU1");
                 break;
             }
         }
 
+        TraceManager.addDev("clone FPGAs");
         architecture_clone.cloneComponent(FPGA_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("FPGA0")) {
@@ -171,6 +194,7 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
+        TraceManager.addDev("clone Bridges");
         architecture_clone.cloneComponent(Bridge_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("Bridge0")) {
@@ -179,14 +203,9 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
-        architecture_clone.cloneComponent(Bus_Cl);
-        for (TGComponent tgc : architecture_clone.getComponentList()) {
-            if (tgc.getName().equals("Bus0")) {
-                tgc.setName("Bus1");
-                break;
-            }
-        }
 
+
+        TraceManager.addDev("clone DMA");
         architecture_clone.cloneComponent(DMA_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("DMA0")) {
@@ -195,6 +214,7 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
+        TraceManager.addDev("clone Memory");
         architecture_clone.cloneComponent(Memory_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("Memory0")) {
@@ -203,6 +223,7 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
             }
         }
 
+        TraceManager.addDev("clone HWA");
         architecture_clone.cloneComponent(HWA_Cl);
         for (TGComponent tgc : architecture_clone.getComponentList()) {
             if (tgc.getName().equals("HWA0")) {
@@ -217,10 +238,35 @@ public class TDiagramPanelCloneArchitectureTest extends AbstractUITest {
 
     @Test
     public void testTMLMapping() {
-        cloneHwNodesOfTestingModel();
-        mainGUI.checkModelingSyntax(true);
-        TMLMapping tmlMapping_clone = mainGUI.gtm.getTMLMapping();
-        assertTrue(tmlMapping_clone.equalSpec(tmlMapping_exp));
+        try {
+            TraceManager.addDev("*** Clone");
+            cloneHwNodesOfTestingModel();
+            TraceManager.addDev("*** Check syntax");
+            waiting();
+            mainGUI.checkModelingSyntax(true);
+            for(CheckingError ce: mainGUI.gtm.getCheckingErrors()) {
+                TraceManager.addDev("Error: " + ce.getMessage());
+            }
+            TraceManager.addDev("*** Getting mapping");
+            TMLMapping tmlMapping_clone = mainGUI.gtm.getTMLMapping();
+
+            TraceManager.addDev("*** Comparing spec");
+            //assertNotNull(tmlMapping_clone);
+            //assertNotNull(tmlMapping_exp);
+            assertTrue(tmlMapping_clone.equalSpec(tmlMapping_exp));
+
+        } catch (Exception e) {
+            TraceManager.addDev("Exception: " + e.getClass() + " / " + e.getMessage());
+            //assertTrue(false);
+        }
+    }
+
+    public void waiting() {
+        try {
+            Thread.currentThread().sleep(5000);
+        } catch (Exception e) {
+
+        }
     }
 
 }
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/avatardesign/AvatarPragmaTests.java b/ttool/src/test/java/ui/avatardesign/AvatarPragmaTests.java
index f371443a1cc99908253c03c9a138ef3831751cf3..b74c101a1dbed79037113f0899dfe51a31ba3156 100644
--- a/ttool/src/test/java/ui/avatardesign/AvatarPragmaTests.java
+++ b/ttool/src/test/java/ui/avatardesign/AvatarPragmaTests.java
@@ -77,13 +77,13 @@ public class AvatarPragmaTests {
 	public void setupBlocks(){
 		AvatarBlock A = new AvatarBlock("A", null, null);
 		AvatarStateMachine Aasm = A.getStateMachine();
-		Aasm.addElement(new AvatarState("a1", null));
+		Aasm.addElement(new AvatarState("a1", null, A));
 		A.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, A, null));
 		A.addAttribute(new AvatarAttribute("key2", AvatarType.INTEGER, A, null));
 
 		AvatarBlock B = new AvatarBlock("B", null, null);
 		AvatarStateMachine Basm = B.getStateMachine();
-		Basm.addElement(new AvatarState("b1", null));
+		Basm.addElement(new AvatarState("b1", null, B));
 		B.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, B, null));
 		B.addAttribute(new AvatarAttribute("key2", AvatarType.BOOLEAN, B, null));
 		B.addAttribute(new AvatarAttribute("m__a", AvatarType.UNDEFINED, B, null));
@@ -91,7 +91,7 @@ public class AvatarPragmaTests {
 
 		AvatarBlock C = new AvatarBlock("C", null, null);
 		AvatarStateMachine Casm = C.getStateMachine();
-		Casm.addElement(new AvatarState("c1", null));
+		Casm.addElement(new AvatarState("c1", null, C));
 		C.addAttribute(new AvatarAttribute("attr", AvatarType.INTEGER, C, null));
 		C.addAttribute(new AvatarAttribute("m__a", AvatarType.UNDEFINED, C, null));	
 		C.addAttribute(new AvatarAttribute("m__b", AvatarType.UNDEFINED, C, null));
diff --git a/ttool/src/test/java/ui/avatardesign/AvatarSafetyTests.java b/ttool/src/test/java/ui/avatardesign/AvatarSafetyTests.java
index 8fe5a3c965b149563948b7329d08a63ba9a7cd91..7f02e0b0c3710f0748856e7f4f21e34675a54bdd 100644
--- a/ttool/src/test/java/ui/avatardesign/AvatarSafetyTests.java
+++ b/ttool/src/test/java/ui/avatardesign/AvatarSafetyTests.java
@@ -83,7 +83,7 @@ public class AvatarSafetyTests {
 		sig = new avatartranslator.AvatarSignal("sig", 0, null);
 		A.addSignal(sig);
 		AvatarStateMachine Aasm = A.getStateMachine();
-		AvatarActionOnSignal aaos = new AvatarActionOnSignal("action_on_signal", sig, null);
+		AvatarActionOnSignal aaos = new AvatarActionOnSignal("action_on_signal", sig, null, A);
 		aaos.setCheckLatency(true);
 		Aasm.addElement(aaos);
 
@@ -94,7 +94,7 @@ public class AvatarSafetyTests {
 		AvatarStateMachine Basm = B.getStateMachine();
 
 		sig2 = new avatartranslator.AvatarSignal("sig2", 0, null);
-		AvatarActionOnSignal aaos2= new AvatarActionOnSignal("action_on_signal", sig2, null);
+		AvatarActionOnSignal aaos2= new AvatarActionOnSignal("action_on_signal", sig2, null, A);
 		aaos2.setCheckLatency(true);
 		Basm.addElement(aaos2);
 
@@ -105,7 +105,7 @@ public class AvatarSafetyTests {
 
 		AvatarBlock C = new AvatarBlock("C", null, null);
 		AvatarStateMachine Casm = C.getStateMachine();
-		AvatarState c1=	new AvatarState("c1", null);
+		AvatarState c1 =	new AvatarState("c1", null, C);
 		c1.setCheckLatency(true);
 		Casm.addElement(c1);
 
@@ -233,7 +233,7 @@ public class AvatarSafetyTests {
 	public void testMultipleIdsPerSignal(){
 		AvatarBlock A = as.getBlockWithName("A");
 		AvatarStateMachine Aasm = A.getStateMachine();
-		AvatarActionOnSignal aaos = new AvatarActionOnSignal("action_on_signal", sig, null);
+		AvatarActionOnSignal aaos = new AvatarActionOnSignal("action_on_signal", sig, null, A);
 		aaos.setCheckLatency(true);
 		Aasm.addElement(aaos);
 		Aasm.getListOfElements().get(0).addNext(aaos);
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml
index cc9752d03c7e5505e3fc14a980fb24579eb03760..337b2c105ac2f5d7076141744686013ab1e6b195 100644
--- a/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/Expected_CloneArchitecture.xml
@@ -1,55 +1,61 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
+<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="TML Component Design" nameTab="Application" tabs="TML Component Task Diagram$PrimitiveComp2$PrimitiveComp1$PrimitiveComp3$PrimitiveComp4$PrimitiveComp5$PrimitiveComp6" >
-<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" >
-<CONNECTOR type="126" id="1" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" considerExecOperators="true" considerTimingOperators="true" zoom="1.0" >
+<CONNECTOR type="126" id="1" index="0" uid="8af87575-53c2-4120-b0db-84b500bea74d" >
 <cdparam x="475" y="480" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="467" y="365" id="45" />
-<P2  x="514" y="364" id="56" />
+<P1  x="467" y="365" id="17" />
+<P2  x="514" y="364" id="6" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="126" id="2" >
+<CONNECTOR type="126" id="2" index="1" uid="6eaa1d57-6f3e-4fb4-9953-fdfe00c4cd48" >
 <cdparam x="1021" y="460" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="564" y="164" id="6" />
-<P2  x="430" y="163" id="19" />
+<P1  x="564" y="164" id="65" />
+<P2  x="430" y="163" id="52" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="126" id="3" >
+<CONNECTOR type="126" id="3" index="2" uid="9ae8855a-43d0-4675-8566-17bc075b216b" >
 <cdparam x="878" y="469" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="430" y="208" id="21" />
-<P2  x="564" y="209" id="8" />
+<P1  x="430" y="208" id="50" />
+<P2  x="564" y="209" id="63" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="126" id="4" >
+<CONNECTOR type="126" id="4" index="3" uid="5540bfdf-bfe6-4e77-bf70-be1228df1193" >
 <cdparam x="424" y="585" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="424" y="585" id="32" />
-<P2  x="521" y="585" id="34" />
+<P1  x="424" y="585" id="30" />
+<P2  x="521" y="585" id="28" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="126" id="5" >
+<CONNECTOR type="126" id="5" index="4" uid="62da8f8f-9a21-4d38-bf5f-53e5a1dcf114" >
 <cdparam x="1144" y="348" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1144" y="348" id="87" />
-<P2  x="1144" y="405" id="85" />
+<P1  x="1144" y="348" id="85" />
+<P2  x="1144" y="405" id="87" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<COMPONENT type="1200" id="84" >
+<COMPONENT type="1200" id="84" index="5" uid="bdc6328e-613b-47e8-a65a-b0948d4795d7" >
 <cdparam x="186" y="10" />
 <sizeparam width="672" height="618" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Composite component" value="CompositeComp1" />
+<new d="false" />
 <TGConnectingPoint num="0" id="76" />
 <TGConnectingPoint num="1" id="77" />
 <TGConnectingPoint num="2" id="78" />
@@ -62,35 +68,57 @@
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1202" id="18" >
+<SUBCOMPONENT type="1200" id="49" index="7" uid="e2d36680-1d0d-4df5-b752-a314076f7a03" >
 <father id="84" num="0" />
-<cdparam x="577" y="116" />
+<cdparam x="266" y="278" />
+<sizeparam width="471" height="329" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="201" minY="0" maxY="289" />
+<infoparam name="Composite component" value="CompositeComp2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="41" />
+<TGConnectingPoint num="1" id="42" />
+<TGConnectingPoint num="2" id="43" />
+<TGConnectingPoint num="3" id="44" />
+<TGConnectingPoint num="4" id="45" />
+<TGConnectingPoint num="5" id="46" />
+<TGConnectingPoint num="6" id="47" />
+<TGConnectingPoint num="7" id="48" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="16" index="8" uid="e91ee19d-9fd5-436c-8bf0-d92cb50fd35d" >
+<father id="49" num="0" />
+<cdparam x="527" y="316" />
 <sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
-<infoparam name="Primitive component" value="PrimitiveComp2" />
-<TGConnectingPoint num="0" id="10" />
-<TGConnectingPoint num="1" id="11" />
-<TGConnectingPoint num="2" id="12" />
-<TGConnectingPoint num="3" id="13" />
-<TGConnectingPoint num="4" id="14" />
-<TGConnectingPoint num="5" id="15" />
-<TGConnectingPoint num="6" id="16" />
-<TGConnectingPoint num="7" id="17" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp4" />
+<new d="false" />
+<TGConnectingPoint num="0" id="8" />
+<TGConnectingPoint num="1" id="9" />
+<TGConnectingPoint num="2" id="10" />
+<TGConnectingPoint num="3" id="11" />
+<TGConnectingPoint num="4" id="12" />
+<TGConnectingPoint num="5" id="13" />
+<TGConnectingPoint num="6" id="14" />
+<TGConnectingPoint num="7" id="15" />
 <extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="7" >
-<father id="18" num="0" />
-<cdparam x="564" y="151" />
+<SUBCOMPONENT type="1203" id="7" index="9" uid="e8486078-3d29-48a1-93bd-bf4ff700b99a" >
+<father id="16" num="0" />
+<cdparam x="514" y="351" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel" />
+<infoparam name="Primitive port" value="Channel channel2" />
+<new d="false" />
 <TGConnectingPoint num="0" id="6" />
 <extraparam>
-<Prop commName="channel" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -98,16 +126,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="9" >
-<father id="18" num="1" />
-<cdparam x="564" y="196" />
+<SUBCOMPONENT type="1202" id="27" index="10" uid="829825e5-abad-4218-a82c-61022d5419fb" >
+<father id="49" num="1" />
+<cdparam x="285" y="318" />
+<sizeparam width="169" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="19" />
+<TGConnectingPoint num="1" id="20" />
+<TGConnectingPoint num="2" id="21" />
+<TGConnectingPoint num="3" id="22" />
+<TGConnectingPoint num="4" id="23" />
+<TGConnectingPoint num="5" id="24" />
+<TGConnectingPoint num="6" id="25" />
+<TGConnectingPoint num="7" id="26" />
+<extraparam>
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="18" index="11" uid="5d049a90-7016-48a4-ba97-4c0b85b08c47" >
+<father id="27" num="0" />
+<cdparam x="441" y="352" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event event" />
-<TGConnectingPoint num="0" id="8" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="17" />
 <extraparam>
-<Prop commName="event" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -115,35 +164,39 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="31" >
-<father id="84" num="1" />
-<cdparam x="217" y="116" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="40" index="12" uid="fc1a53f0-4458-4c59-b485-23612a03969a" >
+<father id="49" num="2" />
+<cdparam x="399" y="491" />
+<sizeparam width="169" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
-<infoparam name="Primitive component" value="PrimitiveComp1" />
-<TGConnectingPoint num="0" id="23" />
-<TGConnectingPoint num="1" id="24" />
-<TGConnectingPoint num="2" id="25" />
-<TGConnectingPoint num="3" id="26" />
-<TGConnectingPoint num="4" id="27" />
-<TGConnectingPoint num="5" id="28" />
-<TGConnectingPoint num="6" id="29" />
-<TGConnectingPoint num="7" id="30" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="248" />
+<infoparam name="Primitive component" value="PrimitiveComp5" />
+<new d="false" />
+<TGConnectingPoint num="0" id="32" />
+<TGConnectingPoint num="1" id="33" />
+<TGConnectingPoint num="2" id="34" />
+<TGConnectingPoint num="3" id="35" />
+<TGConnectingPoint num="4" id="36" />
+<TGConnectingPoint num="5" id="37" />
+<TGConnectingPoint num="6" id="38" />
+<TGConnectingPoint num="7" id="39" />
 <extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+<Attribute access="2" id="attr1" value="" type="0" typeOther="" />
+<Attribute access="2" id="attr2" value="" type="4" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="20" >
-<father id="31" num="0" />
-<cdparam x="404" y="150" />
+<SUBCOMPONENT type="1203" id="29" index="13" uid="8e7f4945-423e-4b7d-acb7-06af8a5765d1" >
+<father id="40" num="0" />
+<cdparam x="508" y="559" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel" />
-<TGConnectingPoint num="0" id="19" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="28" />
 <extraparam>
-<Prop commName="channel" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel3" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -151,16 +204,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="22" >
-<father id="31" num="1" />
-<cdparam x="404" y="195" />
+<SUBCOMPONENT type="1203" id="31" index="14" uid="2087d163-0718-4d80-bc1f-1805b5cf2aeb" >
+<father id="40" num="1" />
+<cdparam x="411" y="559" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event event" />
-<TGConnectingPoint num="0" id="21" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="30" />
 <extraparam>
-<Prop commName="event" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel3" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -168,56 +222,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1200" id="75" >
-<father id="84" num="2" />
-<cdparam x="266" y="278" />
-<sizeparam width="471" height="329" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="62" index="15" uid="4db79aba-1ba9-4f33-9ac2-b3b612e98569" >
+<father id="84" num="1" />
+<cdparam x="217" y="116" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="201" minY="0" maxY="289" />
-<infoparam name="Composite component" value="CompositeComp2" />
-<TGConnectingPoint num="0" id="67" />
-<TGConnectingPoint num="1" id="68" />
-<TGConnectingPoint num="2" id="69" />
-<TGConnectingPoint num="3" id="70" />
-<TGConnectingPoint num="4" id="71" />
-<TGConnectingPoint num="5" id="72" />
-<TGConnectingPoint num="6" id="73" />
-<TGConnectingPoint num="7" id="74" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp1" />
+<new d="false" />
+<TGConnectingPoint num="0" id="54" />
+<TGConnectingPoint num="1" id="55" />
+<TGConnectingPoint num="2" id="56" />
+<TGConnectingPoint num="3" id="57" />
+<TGConnectingPoint num="4" id="58" />
+<TGConnectingPoint num="5" id="59" />
+<TGConnectingPoint num="6" id="60" />
+<TGConnectingPoint num="7" id="61" />
 <extraparam>
-<info hiddeni="false" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="44" >
-<father id="75" num="0" />
-<cdparam x="399" y="491" />
-<sizeparam width="169" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="302" minY="0" maxY="248" />
-<infoparam name="Primitive component" value="PrimitiveComp5" />
-<TGConnectingPoint num="0" id="36" />
-<TGConnectingPoint num="1" id="37" />
-<TGConnectingPoint num="2" id="38" />
-<TGConnectingPoint num="3" id="39" />
-<TGConnectingPoint num="4" id="40" />
-<TGConnectingPoint num="5" id="41" />
-<TGConnectingPoint num="6" id="42" />
-<TGConnectingPoint num="7" id="43" />
-<extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
-<Attribute access="2" id="attr1" value="" type="0" typeOther="" />
-<Attribute access="2" id="attr2" value="" type="4" typeOther="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="33" >
-<father id="44" num="0" />
-<cdparam x="411" y="559" />
+<SUBCOMPONENT type="1203" id="51" index="16" uid="e673fdfe-6070-4285-9c15-54bc5bc5201b" >
+<father id="62" num="0" />
+<cdparam x="404" y="195" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Channel channel3" />
-<TGConnectingPoint num="0" id="32" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
+<new d="false" />
+<TGConnectingPoint num="0" id="50" />
 <extraparam>
-<Prop commName="channel3" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="event" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -225,16 +260,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="35" >
-<father id="44" num="1" />
-<cdparam x="508" y="559" />
+<SUBCOMPONENT type="1203" id="53" index="17" uid="f5076fbb-a6e2-4e8a-820b-3e3eb8f63fd1" >
+<father id="62" num="1" />
+<cdparam x="404" y="150" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Channel channel3" />
-<TGConnectingPoint num="0" id="34" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel" />
+<new d="false" />
+<TGConnectingPoint num="0" id="52" />
 <extraparam>
-<Prop commName="channel3" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -242,35 +278,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="55" >
-<father id="75" num="1" />
-<cdparam x="285" y="318" />
-<sizeparam width="169" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="75" index="18" uid="3c9e82b2-dd04-4497-adcf-5dcb8d880801" >
+<father id="84" num="2" />
+<cdparam x="577" y="116" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="302" minY="0" maxY="179" />
-<infoparam name="Primitive component" value="PrimitiveComp3" />
-<TGConnectingPoint num="0" id="47" />
-<TGConnectingPoint num="1" id="48" />
-<TGConnectingPoint num="2" id="49" />
-<TGConnectingPoint num="3" id="50" />
-<TGConnectingPoint num="4" id="51" />
-<TGConnectingPoint num="5" id="52" />
-<TGConnectingPoint num="6" id="53" />
-<TGConnectingPoint num="7" id="54" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="67" />
+<TGConnectingPoint num="1" id="68" />
+<TGConnectingPoint num="2" id="69" />
+<TGConnectingPoint num="3" id="70" />
+<TGConnectingPoint num="4" id="71" />
+<TGConnectingPoint num="5" id="72" />
+<TGConnectingPoint num="6" id="73" />
+<TGConnectingPoint num="7" id="74" />
 <extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="46" >
-<father id="55" num="0" />
-<cdparam x="441" y="352" />
+<SUBCOMPONENT type="1203" id="64" index="19" uid="96e91aae-3fc4-4722-864f-2444780eae50" >
+<father id="75" num="0" />
+<cdparam x="564" y="196" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel2" />
-<TGConnectingPoint num="0" id="45" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
+<new d="false" />
+<TGConnectingPoint num="0" id="63" />
 <extraparam>
-<Prop commName="channel2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="event" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -278,35 +316,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="66" >
-<father id="75" num="2" />
-<cdparam x="527" y="316" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="179" />
-<infoparam name="Primitive component" value="PrimitiveComp4" />
-<TGConnectingPoint num="0" id="58" />
-<TGConnectingPoint num="1" id="59" />
-<TGConnectingPoint num="2" id="60" />
-<TGConnectingPoint num="3" id="61" />
-<TGConnectingPoint num="4" id="62" />
-<TGConnectingPoint num="5" id="63" />
-<TGConnectingPoint num="6" id="64" />
-<TGConnectingPoint num="7" id="65" />
-<extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="57" >
-<father id="66" num="0" />
-<cdparam x="514" y="351" />
+<SUBCOMPONENT type="1203" id="66" index="20" uid="6d581041-66af-4870-b447-b26a5243dc58" >
+<father id="75" num="1" />
+<cdparam x="564" y="151" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel2" />
-<TGConnectingPoint num="0" id="56" />
+<infoparam name="Primitive port" value="Channel channel" />
+<new d="false" />
+<TGConnectingPoint num="0" id="65" />
 <extraparam>
-<Prop commName="channel2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -315,12 +335,13 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1202" id="97" >
+<COMPONENT type="1202" id="97" index="6" uid="3a86c2ce-22bf-4998-8626-4ff0ed7588b8" >
 <cdparam x="931" y="292" />
 <sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Primitive component" value="PrimitiveComp6" />
+<new d="false" />
 <TGConnectingPoint num="0" id="89" />
 <TGConnectingPoint num="1" id="90" />
 <TGConnectingPoint num="2" id="91" />
@@ -330,19 +351,20 @@
 <TGConnectingPoint num="6" id="95" />
 <TGConnectingPoint num="7" id="96" />
 <extraparam>
-<Data isAttacker="No" daemon="false" Operation="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="86" >
+<SUBCOMPONENT type="1203" id="86" index="21" uid="e4221584-3b2c-4de6-aefa-619498d06f4c" >
 <father id="97" num="0" />
-<cdparam x="1118" y="392" />
+<cdparam x="1118" y="335" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
 <infoparam name="Primitive port" value="Channel channel4" />
+<new d="false" />
 <TGConnectingPoint num="0" id="85" />
 <extraparam>
-<Prop commName="channel4" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel4" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -350,16 +372,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="88" >
+<SUBCOMPONENT type="1203" id="88" index="22" uid="65f1365b-f30f-4fe1-a019-0342eb1b2247" >
 <father id="97" num="1" />
-<cdparam x="1118" y="335" />
+<cdparam x="1118" y="392" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
 <infoparam name="Primitive port" value="Channel channel4" />
+<new d="false" />
 <TGConnectingPoint num="0" id="87" />
 <extraparam>
-<Prop commName="channel4" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel4" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -371,32 +394,35 @@
 
 </TMLComponentTaskDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp2" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="99" >
+<TMLActivityDiagramPanel name="PrimitiveComp2" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="99" index="0" uid="6da0a508-4dda-4300-b097-c077740eb33d" >
 <cdparam x="520" y="416" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
+<new d="false" />
 <TGConnectingPoint num="0" id="98" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="101" >
+<COMPONENT type="1001" id="101" index="1" uid="5052f597-5b12-491f-b6c0-a67435ee92c0" >
 <cdparam x="397" y="418" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
+<new d="false" />
 <TGConnectingPoint num="0" id="100" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="104" >
-<cdparam x="501" y="302" />
-<sizeparam width="59" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="104" index="2" uid="606c5322-1c3f-49ca-852a-4f4145cff274" >
+<cdparam x="494" y="302" />
+<sizeparam width="73" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="wait event" value="event() " />
+<new d="false" />
 <TGConnectingPoint num="0" id="102" />
 <TGConnectingPoint num="1" id="103" />
 <extraparam>
@@ -404,13 +430,14 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="107" >
-<cdparam x="366" y="296" />
-<sizeparam width="82" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="107" index="3" uid="bfb5405c-d248-465c-b36d-5faa9e202e59" >
+<cdparam x="360" y="296" />
+<sizeparam width="94" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="read channel" value="channel(1) " />
+<new d="false" />
 <TGConnectingPoint num="0" id="105" />
 <TGConnectingPoint num="1" id="106" />
 <extraparam>
@@ -418,52 +445,57 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1012" id="115" >
+<COMPONENT type="1012" id="115" index="4" uid="6ad3c6cd-468c-4d98-890c-aa5d527e6576" >
 <cdparam x="392" y="175" />
 <sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="choice" value="null" />
+<new d="false" />
 <TGConnectingPoint num="0" id="111" />
 <TGConnectingPoint num="1" id="112" />
 <TGConnectingPoint num="2" id="113" />
 <TGConnectingPoint num="3" id="114" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="108" >
+<SUBCOMPONENT type="-1" id="108" index="11" uid="dd4b5e53-45ec-41ad-b545-fd8bec711a48" >
 <father id="115" num="0" />
 <cdparam x="367" y="185" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
 <infoparam name="guard 1" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="109" >
+<SUBCOMPONENT type="-1" id="109" index="12" uid="3929520b-7003-4dba-82d7-f71d0ece4581" >
 <father id="115" num="1" />
 <cdparam x="427" y="185" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="110" >
+<SUBCOMPONENT type="-1" id="110" index="13" uid="bec35e0a-6dca-4133-9301-ddb39dca0d0a" >
 <father id="115" num="2" />
 <cdparam x="412" y="220" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
 <infoparam name="guard 3" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1000" id="117" >
+<COMPONENT type="1000" id="117" index="5" uid="37dda326-c0b2-4496-b00d-0f9840e63091" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
+<new d="false" />
 <TGConnectingPoint num="0" id="116" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="119" >
+<CONNECTOR type="115" id="119" index="6" uid="5daf4b58-3419-4731-8c8f-b3c5e54f295e" >
 <cdparam x="447" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
@@ -471,835 +503,920 @@
 <P2  x="530" y="297" id="102" />
 <Point x="530" y="243" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="118" >
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="118" index="14" uid="64ecfa0e-7eae-4c39-8747-3a4e4417ebc6" >
 <father id="119" num="0" />
 <cdparam x="530" y="243" />
-<sizeparam width="1" height="1" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="point " value="null" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="115" id="120" >
+<CONNECTOR type="115" id="120" index="7" uid="59835080-28bc-41f5-8239-6da04e4c05cc" >
 <cdparam x="407" y="65" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="65" id="116" />
-<P2  x="407" y="165" id="111" />
+<P1  x="407" y="70" id="116" />
+<P2  x="407" y="170" id="111" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="121" >
+<CONNECTOR type="115" id="121" index="8" uid="e7ffdc40-14ff-4666-87bf-2d77c17a56ff" >
 <cdparam x="407" y="230" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="407" y="230" id="114" />
 <P2  x="407" y="291" id="105" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="122" >
+<CONNECTOR type="115" id="122" index="9" uid="998308d3-a352-4605-9f98-afa91310ff1c" >
 <cdparam x="407" y="321" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="407" y="321" id="106" />
 <P2  x="407" y="413" id="100" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="123" >
+<CONNECTOR type="115" id="123" index="10" uid="a955f4ea-3d8e-4a37-8402-31b754d059cb" >
 <cdparam x="530" y="327" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <P1  x="530" y="327" id="103" />
 <P2  x="530" y="411" id="98" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp1" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="131" >
+<TMLActivityDiagramPanel name="PrimitiveComp1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="125" index="0" uid="b88edb2d-2cb4-429b-9b78-e06c94723bb3" >
 <cdparam x="397" y="440" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="130" />
+<new d="false" />
+<TGConnectingPoint num="0" id="124" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="133" >
+<COMPONENT type="1001" id="127" index="1" uid="03920b3d-811a-4c78-b49a-8b6443997d3f" >
 <cdparam x="302" y="444" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="132" />
+<new d="false" />
+<TGConnectingPoint num="0" id="126" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="136" >
+<COMPONENT type="1008" id="130" index="2" uid="e5bf9c4e-c3a5-486a-8b3b-7313f4ec92c2" >
 <cdparam x="285" y="326" />
 <sizeparam width="55" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="send event" value="event()" />
-<TGConnectingPoint num="0" id="134" />
-<TGConnectingPoint num="1" id="135" />
+<new d="false" />
+<TGConnectingPoint num="0" id="128" />
+<TGConnectingPoint num="1" id="129" />
 <extraparam>
 <Data eventName="event" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="139" >
+<COMPONENT type="1006" id="133" index="3" uid="2c251e3c-2333-455f-8373-55ebfc48248e" >
 <cdparam x="368" y="324" />
 <sizeparam width="78" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="write channel" value="channel(1)" />
-<TGConnectingPoint num="0" id="137" />
-<TGConnectingPoint num="1" id="138" />
+<new d="false" />
+<TGConnectingPoint num="0" id="131" />
+<TGConnectingPoint num="1" id="132" />
 <extraparam>
 <Data channelName="channel" nbOfSamples="1" secPattern="" isAttacker="Yes" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1012" id="147" >
+<COMPONENT type="1012" id="141" index="4" uid="1d7d565f-2054-4df3-a5d5-8159729b0f2a" >
 <cdparam x="392" y="183" />
 <sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="143" />
-<TGConnectingPoint num="1" id="144" />
-<TGConnectingPoint num="2" id="145" />
-<TGConnectingPoint num="3" id="146" />
+<new d="false" />
+<TGConnectingPoint num="0" id="137" />
+<TGConnectingPoint num="1" id="138" />
+<TGConnectingPoint num="2" id="139" />
+<TGConnectingPoint num="3" id="140" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="140" >
-<father id="147" num="0" />
+<SUBCOMPONENT type="-1" id="134" index="11" uid="0722c79d-59eb-4a46-bbea-bd98095edc0a" >
+<father id="141" num="0" />
 <cdparam x="367" y="193" />
 <sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
 <infoparam name="guard 1" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="141" >
-<father id="147" num="1" />
+<SUBCOMPONENT type="-1" id="135" index="12" uid="579ec11e-4b31-40c7-af70-7a626d8705a8" >
+<father id="141" num="1" />
 <cdparam x="427" y="193" />
 <sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="142" >
-<father id="147" num="2" />
+<SUBCOMPONENT type="-1" id="136" index="13" uid="fac25b09-dc84-401e-bf7d-312bcd9ce5d2" >
+<father id="141" num="2" />
 <cdparam x="412" y="228" />
 <sizeparam width="14" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
 <infoparam name="guard 3" value="[ ]" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1000" id="149" >
+<COMPONENT type="1000" id="143" index="5" uid="f47bee01-bd2b-493c-bcb2-baec2dc8aaf5" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="148" />
+<new d="false" />
+<TGConnectingPoint num="0" id="142" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="151" >
+<CONNECTOR type="115" id="145" index="6" uid="1a3f837f-abc6-40b9-8208-a304dcc0e2a1" >
 <cdparam x="367" y="198" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="367" y="198" id="144" />
-<P2  x="312" y="321" id="134" />
+<P1  x="367" y="198" id="138" />
+<P2  x="312" y="321" id="128" />
 <Point x="312" y="198" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="150" >
-<father id="151" num="0" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="144" index="14" uid="de9f56b4-0d92-45b6-84d7-8071f286b56c" >
+<father id="145" num="0" />
 <cdparam x="312" y="198" />
-<sizeparam width="1" height="1" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="point " value="null" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="115" id="152" >
+<CONNECTOR type="115" id="146" index="7" uid="f807f97c-2419-469b-9c39-4cc2419ae4c1" >
 <cdparam x="407" y="65" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="65" id="148" />
-<P2  x="407" y="173" id="143" />
+<P1  x="407" y="70" id="142" />
+<P2  x="407" y="178" id="137" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="153" >
+<CONNECTOR type="115" id="147" index="8" uid="4c4ed793-4c7b-4ea3-a9f4-961a872864b0" >
 <cdparam x="407" y="238" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="238" id="146" />
-<P2  x="407" y="319" id="137" />
+<P1  x="407" y="238" id="140" />
+<P2  x="407" y="319" id="131" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="154" >
+<CONNECTOR type="115" id="148" index="9" uid="1e31d99c-0a8c-44eb-9515-6358d140d447" >
 <cdparam x="312" y="351" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="312" y="351" id="135" />
-<P2  x="312" y="439" id="132" />
+<P1  x="312" y="351" id="129" />
+<P2  x="312" y="439" id="126" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="155" >
+<CONNECTOR type="115" id="149" index="10" uid="86d1ce02-8ce7-42f7-9c0b-975ef7be7f07" >
 <cdparam x="407" y="349" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="349" id="138" />
-<P2  x="407" y="435" id="130" />
+<P1  x="407" y="349" id="132" />
+<P2  x="407" y="435" id="124" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp3" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="157" >
+<TMLActivityDiagramPanel name="PrimitiveComp3" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="151" index="0" uid="748c85f2-11f4-41bf-8fca-0998d2b100aa" >
 <cdparam x="397" y="269" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="156" />
+<new d="false" />
+<TGConnectingPoint num="0" id="150" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="160" >
-<cdparam x="364" y="143" />
-<sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="154" index="1" uid="3acc3f6a-f36e-4913-8585-c907854f5095" >
+<cdparam x="358" y="143" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="write channel" value="channel2(1)" />
-<TGConnectingPoint num="0" id="158" />
-<TGConnectingPoint num="1" id="159" />
+<new d="false" />
+<TGConnectingPoint num="0" id="152" />
+<TGConnectingPoint num="1" id="153" />
 <extraparam>
 <Data channelName="channel2" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="162" >
+<COMPONENT type="1000" id="156" index="2" uid="e61a5b8a-4861-43c8-b270-f5d40b49832e" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="161" />
+<new d="false" />
+<TGConnectingPoint num="0" id="155" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="163" >
+<CONNECTOR type="115" id="157" index="3" uid="4187df15-8622-4d30-a967-56cc0af3b892" >
 <cdparam x="407" y="168" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="168" id="159" />
-<P2  x="407" y="264" id="156" />
+<P1  x="407" y="168" id="153" />
+<P2  x="407" y="264" id="150" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="164" >
+<CONNECTOR type="115" id="158" index="4" uid="2516b79f-9c25-4519-9541-bc17643230e6" >
 <cdparam x="407" y="65" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="65" id="161" />
-<P2  x="407" y="138" id="158" />
+<P1  x="407" y="70" id="155" />
+<P2  x="407" y="138" id="152" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp4" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="166" >
+<TMLActivityDiagramPanel name="PrimitiveComp4" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="160" index="0" uid="dc3afcd5-2dea-40be-96d8-0993533d51cd" >
 <cdparam x="397" y="274" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="165" />
+<new d="false" />
+<TGConnectingPoint num="0" id="159" />
 </COMPONENT>
 
-<COMPONENT type="1009" id="169" >
-<cdparam x="362" y="162" />
-<sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="163" index="1" uid="3d77c356-82c1-4d0d-a965-be3618022238" >
+<cdparam x="356" y="162" />
+<sizeparam width="102" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="read channel" value="channel2(1) " />
-<TGConnectingPoint num="0" id="167" />
-<TGConnectingPoint num="1" id="168" />
+<new d="false" />
+<TGConnectingPoint num="0" id="161" />
+<TGConnectingPoint num="1" id="162" />
 <extraparam>
 <Data channelName="channel2" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="171" >
+<COMPONENT type="1000" id="165" index="2" uid="1efd63ee-fe3e-49d8-9777-5c9d6370bbb2" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="170" />
+<new d="false" />
+<TGConnectingPoint num="0" id="164" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="172" >
+<CONNECTOR type="115" id="166" index="3" uid="de551952-7094-4841-9a25-784a16240216" >
 <cdparam x="407" y="65" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="65" id="170" />
-<P2  x="407" y="157" id="167" />
+<P1  x="407" y="70" id="164" />
+<P2  x="407" y="157" id="161" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="173" >
+<CONNECTOR type="115" id="167" index="4" uid="1c70447b-972e-4e50-8121-11168bc05b1e" >
 <cdparam x="407" y="187" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="187" id="168" />
-<P2  x="407" y="269" id="165" />
+<P1  x="407" y="187" id="162" />
+<P2  x="407" y="269" id="159" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp5" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="175" >
+<TMLActivityDiagramPanel name="PrimitiveComp5" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="169" index="0" uid="4dd6c087-0124-4af7-8bd7-afedb2cda2a7" >
 <cdparam x="1077" y="1208" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="174" />
+<new d="false" />
+<TGConnectingPoint num="0" id="168" />
 </COMPONENT>
 
-<COMPONENT type="1013" id="179" >
+<COMPONENT type="1013" id="173" index="1" uid="4a7b86fc-c93a-4d2d-9e5e-60c4c0a7f577" >
 <cdparam x="503" y="270" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="177" />
-<TGConnectingPoint num="1" id="178" />
+<new d="false" />
+<TGConnectingPoint num="0" id="171" />
+<TGConnectingPoint num="1" id="172" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="176" >
-<father id="179" num="0" />
+<SUBCOMPONENT type="-1" id="170" index="41" uid="a9395928-7ab7-4c99-9a96-a1226bc1c69f" >
+<father id="173" num="0" />
 <cdparam x="518" y="290" />
 <sizeparam width="16" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
 <infoparam name="value of the delay" value="10" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1015" id="183" >
+<COMPONENT type="1015" id="177" index="2" uid="d1cb7a98-47c3-4dbf-aeb1-20bdf60d50a6" >
 <cdparam x="510" y="341" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="execIInterval" value="null" />
-<TGConnectingPoint num="0" id="181" />
-<TGConnectingPoint num="1" id="182" />
+<new d="false" />
+<TGConnectingPoint num="0" id="175" />
+<TGConnectingPoint num="1" id="176" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="180" >
-<father id="183" num="0" />
+<SUBCOMPONENT type="-1" id="174" index="42" uid="2c39bc8e-c011-4d3b-b1a7-5d2ccfb3a9cf" >
+<father id="177" num="0" />
 <cdparam x="525" y="361" />
-<sizeparam width="51" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="49" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
 <infoparam name="value of the time interval" value="[10, 20]" />
+<new d="false" />
 <extraparam>
 <Interval minDelay="10" maxDelay="20" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1026" id="187" >
+<COMPONENT type="1026" id="181" index="3" uid="f2fc4554-119e-48c1-a0b5-f5ed288f62dd" >
 <cdparam x="508" y="413" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="delay" value="null" />
-<TGConnectingPoint num="0" id="185" />
-<TGConnectingPoint num="1" id="186" />
+<new d="false" />
+<TGConnectingPoint num="0" id="179" />
+<TGConnectingPoint num="1" id="180" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="184" >
-<father id="187" num="0" />
+<SUBCOMPONENT type="-1" id="178" index="43" uid="ec672f24-ef0e-40e9-8c0d-c672d12be32b" >
+<father id="181" num="0" />
 <cdparam x="523" y="433" />
-<sizeparam width="39" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="38" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
 <infoparam name="value of the delay" value="10 ms" />
+<new d="false" />
 <extraparam>
-<TimeDelay minDelay="10" maxDelay="nope" hasMaxDelay="false" unit="ms" />
+<TimeDelay minDelay="10" maxDelay="nope" hasMaxDelay="false" isActiveDelay="false" unit="ms" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1028" id="191" >
+<COMPONENT type="1028" id="185" index="4" uid="a375bc23-03e4-4882-8695-bad0c7cce7ad" >
 <cdparam x="496" y="677" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="delayInterval" value="null" />
-<TGConnectingPoint num="0" id="189" />
-<TGConnectingPoint num="1" id="190" />
+<new d="false" />
+<TGConnectingPoint num="0" id="183" />
+<TGConnectingPoint num="1" id="184" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="188" >
-<father id="191" num="0" />
+<SUBCOMPONENT type="-1" id="182" index="44" uid="8a634df0-f01d-4365-947c-d9467cf58f48" >
+<father id="185" num="0" />
 <cdparam x="511" y="697" />
-<sizeparam width="73" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="70" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
 <infoparam name="value of the interval delay" value="[10, 20] ms" />
+<new d="false" />
 <extraparam>
-<TimeDelay minDelay="10" maxDelay="20" hasMaxDelay="true" unit="ms" />
+<TimeDelay minDelay="10" maxDelay="20" hasMaxDelay="true" isActiveDelay="false" unit="ms" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1032" id="199" >
+<COMPONENT type="1032" id="193" index="5" uid="e58dabce-58c7-4c85-ac91-4c84a66a375b" >
 <cdparam x="969" y="1006" />
 <sizeparam width="150" height="5" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="sequence" value="null" />
-<TGConnectingPoint num="0" id="193" />
-<TGConnectingPoint num="1" id="194" />
-<TGConnectingPoint num="2" id="195" />
-<TGConnectingPoint num="3" id="196" />
-<TGConnectingPoint num="4" id="197" />
-<TGConnectingPoint num="5" id="198" />
+<new d="false" />
+<TGConnectingPoint num="0" id="187" />
+<TGConnectingPoint num="1" id="188" />
+<TGConnectingPoint num="2" id="189" />
+<TGConnectingPoint num="3" id="190" />
+<TGConnectingPoint num="4" id="191" />
+<TGConnectingPoint num="5" id="192" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="192" >
-<father id="199" num="0" />
+<SUBCOMPONENT type="-1" id="186" index="45" uid="e51c6479-e48c-4817-8341-ef0e5dbb9ba8" >
+<father id="193" num="0" />
 <cdparam x="1123" y="1013" />
 <sizeparam width="20" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="154" maxX="154" minY="7" maxY="7" />
 <infoparam name="Sequence information" value="&gt;&gt;" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="201" >
+<COMPONENT type="1001" id="195" index="6" uid="0d9db5ee-5769-4744-a4fc-05c83af6c19a" >
 <cdparam x="844" y="947" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="200" />
+<new d="false" />
+<TGConnectingPoint num="0" id="194" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="203" >
+<COMPONENT type="1001" id="197" index="7" uid="01f577ad-968d-4dd2-bc13-7cf233f6909d" >
 <cdparam x="981" y="1153" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="202" />
+<new d="false" />
+<TGConnectingPoint num="0" id="196" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="206" >
+<COMPONENT type="1011" id="200" index="8" uid="28b31106-8c50-4f50-9e88-3477a7ba7f1a" >
 <cdparam x="959" y="1053" />
 <sizeparam width="67" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="action state" value="attr1 = 2" />
-<TGConnectingPoint num="0" id="204" />
-<TGConnectingPoint num="1" id="205" />
+<new d="false" />
+<TGConnectingPoint num="0" id="198" />
+<TGConnectingPoint num="1" id="199" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="209" >
+<COMPONENT type="1011" id="203" index="9" uid="5b786f4b-c4fa-4d67-b27d-f1d5dfe5ad7a" >
 <cdparam x="1041" y="1054" />
 <sizeparam width="85" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="action state" value="attr2 = true" />
-<TGConnectingPoint num="0" id="207" />
-<TGConnectingPoint num="1" id="208" />
+<new d="false" />
+<TGConnectingPoint num="0" id="201" />
+<TGConnectingPoint num="1" id="202" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="212" >
+<COMPONENT type="1011" id="206" index="10" uid="60502e05-249d-4977-8f52-fe68af94df81" >
 <cdparam x="973" y="951" />
 <sizeparam width="75" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="action state" value="attr1 = 10" />
-<TGConnectingPoint num="0" id="210" />
-<TGConnectingPoint num="1" id="211" />
+<new d="false" />
+<TGConnectingPoint num="0" id="204" />
+<TGConnectingPoint num="1" id="205" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="214" >
+<COMPONENT type="1001" id="208" index="11" uid="9385e349-ad4b-4f92-b124-aec93b5bf3cb" >
 <cdparam x="682" y="897" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="213" />
+<new d="false" />
+<TGConnectingPoint num="0" id="207" />
 </COMPONENT>
 
-<COMPONENT type="1014" id="218" >
+<COMPONENT type="1014" id="212" index="12" uid="b340526a-1d7b-40ea-99d1-9af2a313ae08" >
 <cdparam x="731" y="877" />
 <sizeparam width="241" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="for loop" value="for(attr1=0;attr1&lt;5;attr1 = attr1+1)" />
-<TGConnectingPoint num="0" id="215" />
-<TGConnectingPoint num="1" id="216" />
-<TGConnectingPoint num="2" id="217" />
+<new d="false" />
+<TGConnectingPoint num="0" id="209" />
+<TGConnectingPoint num="1" id="210" />
+<TGConnectingPoint num="2" id="211" />
 <extraparam>
 <Data init="attr1=0" condition="attr1&lt;5" increment="attr1 = attr1+1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1020" id="222" >
+<COMPONENT type="1020" id="216" index="13" uid="a060ee3b-9ecc-4c32-b2fc-1497cd329990" >
 <cdparam x="648" y="836" />
 <sizeparam width="98" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="for loop" value="10" />
-<TGConnectingPoint num="0" id="219" />
-<TGConnectingPoint num="1" id="220" />
-<TGConnectingPoint num="2" id="221" />
+<new d="false" />
+<TGConnectingPoint num="0" id="213" />
+<TGConnectingPoint num="1" id="214" />
+<TGConnectingPoint num="2" id="215" />
 </COMPONENT>
 
-<COMPONENT type="1030" id="225" >
+<COMPONENT type="1030" id="219" index="14" uid="e49001cc-afc1-43c8-befa-cf756f7c3f68" >
 <cdparam x="456" y="799" />
 <sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="for ever loop" value="Loop for ever" />
-<TGConnectingPoint num="0" id="223" />
-<TGConnectingPoint num="1" id="224" />
+<new d="false" />
+<TGConnectingPoint num="0" id="217" />
+<TGConnectingPoint num="1" id="218" />
 </COMPONENT>
 
-<COMPONENT type="1024" id="228" >
-<cdparam x="420" y="736" />
-<sizeparam width="162" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1024" id="222" index="15" uid="e1cf0ed8-b958-4340-918f-043c67b14b4a" >
+<cdparam x="413" y="736" />
+<sizeparam width="177" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="null" />
-<TGConnectingPoint num="0" id="226" />
-<TGConnectingPoint num="1" id="227" />
+<infoparam name="TGComponent" value="0_10" />
+<new d="false" />
+<TGConnectingPoint num="0" id="220" />
+<TGConnectingPoint num="1" id="221" />
 <extraparam>
 <Data variable="attr1" minValue="0" maxValue="10" functionId="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1036" id="231" >
+<COMPONENT type="1036" id="225" index="16" uid="7326c586-2a3f-441e-a709-bae383610994" >
 <cdparam x="499" y="597" />
 <sizeparam width="15" height="35" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="decrypt" value="null" />
-<TGConnectingPoint num="0" id="229" />
-<TGConnectingPoint num="1" id="230" />
+<new d="false" />
+<TGConnectingPoint num="0" id="223" />
+<TGConnectingPoint num="1" id="224" />
 <extraparam>
 <Data secPattern="encryption1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1035" id="234" >
+<COMPONENT type="1035" id="228" index="17" uid="60307767-348e-42ac-af44-27e8304b4b6a" >
 <cdparam x="504" y="503" />
 <sizeparam width="15" height="35" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="encrypt" value="null" />
-<TGConnectingPoint num="0" id="232" />
-<TGConnectingPoint num="1" id="233" />
+<new d="false" />
+<TGConnectingPoint num="0" id="226" />
+<TGConnectingPoint num="1" id="227" />
 <extraparam>
-<Data secContext="encryption1" type="" overhead="" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
+<Data secContext="encryption1" type="Symmetric Encryption" overhead="" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="237" >
-<cdparam x="1037" y="1135" />
-<sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="231" index="18" uid="02b4cc18-dbdd-47fb-bc80-b0ca9eca8f49" >
+<cdparam x="1031" y="1135" />
+<sizeparam width="102" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="read channel" value="channel3(1) " />
-<TGConnectingPoint num="0" id="235" />
-<TGConnectingPoint num="1" id="236" />
+<new d="false" />
+<TGConnectingPoint num="0" id="229" />
+<TGConnectingPoint num="1" id="230" />
 <extraparam>
 <Data channelName="channel3" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="240" >
-<cdparam x="468" y="200" />
-<sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="234" index="19" uid="2e1e9de5-8577-4903-a3f4-a74fc9006df4" >
+<cdparam x="462" y="200" />
+<sizeparam width="98" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="write channel" value="channel3(1)" />
-<TGConnectingPoint num="0" id="238" />
-<TGConnectingPoint num="1" id="239" />
+<new d="false" />
+<TGConnectingPoint num="0" id="232" />
+<TGConnectingPoint num="1" id="233" />
 <extraparam>
 <Data channelName="channel3" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="242" >
+<COMPONENT type="1000" id="236" index="20" uid="c13f48d1-011b-4fea-b633-01ff7b9d5865" >
 <cdparam x="504" y="107" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="241" />
+<new d="false" />
+<TGConnectingPoint num="0" id="235" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="244" >
+<CONNECTOR type="115" id="238" index="21" uid="c7a78092-c6e6-4351-a849-103c0d8c60ac" >
 <cdparam x="746" y="850" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="746" y="850" id="220" />
-<P2  x="851" y="872" id="215" />
+<P1  x="746" y="850" id="214" />
+<P2  x="851" y="872" id="209" />
 <Point x="859" y="844" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="243" >
-<father id="244" num="0" />
+<new d="false" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="237" index="46" uid="aed04d49-9b65-468d-808b-0b701d569463" >
+<father id="238" num="0" />
 <cdparam x="859" y="844" />
-<sizeparam width="1" height="1" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="8" height="8" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="point " value="null" />
+<new d="false" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="115" id="245" >
+<CONNECTOR type="115" id="239" index="22" uid="b4072db1-8090-41d3-974c-e3fc4ba4e000" >
 <cdparam x="972" y="891" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="972" y="891" id="216" />
-<P2  x="1010" y="946" id="210" />
+<P1  x="972" y="891" id="210" />
+<P2  x="1010" y="946" id="204" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="246" >
+<CONNECTOR type="115" id="240" index="23" uid="a60d6119-065d-4c52-9ced-180f65297a95" >
 <cdparam x="1083" y="1079" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="1083" y="1079" id="208" />
-<P2  x="1082" y="1130" id="235" />
+<P1  x="1083" y="1079" id="202" />
+<P2  x="1082" y="1130" id="229" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="247" >
+<CONNECTOR type="115" id="241" index="24" uid="829578dd-11ec-4345-9186-ca497cd43336" >
 <cdparam x="511" y="122" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="511" y="122" id="241" />
-<P2  x="511" y="195" id="238" />
+<P1  x="511" y="127" id="235" />
+<P2  x="511" y="195" id="232" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="248" >
+<CONNECTOR type="115" id="242" index="25" uid="d86e8966-c7f7-4d22-85e9-c479e264ed03" >
 <cdparam x="511" y="225" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="511" y="225" id="239" />
-<P2  x="508" y="265" id="177" />
+<P1  x="511" y="225" id="233" />
+<P2  x="508" y="265" id="171" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="249" >
+<CONNECTOR type="115" id="243" index="26" uid="0045651f-fe50-4732-9805-9e40c87d0a57" >
 <cdparam x="508" y="305" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="508" y="305" id="178" />
-<P2  x="515" y="336" id="181" />
+<P1  x="508" y="305" id="172" />
+<P2  x="515" y="336" id="175" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="250" >
+<CONNECTOR type="115" id="244" index="27" uid="ae91e09a-d0e1-4fb6-aeed-a9ba2b2c980c" >
 <cdparam x="515" y="376" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="515" y="376" id="182" />
-<P2  x="513" y="408" id="185" />
+<P1  x="515" y="376" id="176" />
+<P2  x="513" y="408" id="179" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="251" >
+<CONNECTOR type="115" id="245" index="28" uid="25aea873-0bcf-480b-8f8b-b0d9f93dc0ea" >
 <cdparam x="513" y="448" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="513" y="448" id="186" />
-<P2  x="511" y="498" id="232" />
+<P1  x="513" y="448" id="180" />
+<P2  x="511" y="498" id="226" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="252" >
+<CONNECTOR type="115" id="246" index="29" uid="b13c52ad-aa2c-4039-b31c-58af331fc962" >
 <cdparam x="511" y="548" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="511" y="548" id="233" />
-<P2  x="506" y="592" id="229" />
+<P1  x="511" y="548" id="227" />
+<P2  x="506" y="592" id="223" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="253" >
+<CONNECTOR type="115" id="247" index="30" uid="bc924aa4-e422-4329-b6f2-7479c8dfb87d" >
 <cdparam x="506" y="642" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="506" y="642" id="230" />
-<P2  x="501" y="672" id="189" />
+<P1  x="506" y="642" id="224" />
+<P2  x="501" y="672" id="183" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="254" >
+<CONNECTOR type="115" id="248" index="31" uid="e8e4ec0a-c5c3-45f0-bd83-c00b7996dd56" >
 <cdparam x="501" y="712" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="501" y="712" id="190" />
-<P2  x="501" y="731" id="226" />
+<P1  x="501" y="712" id="184" />
+<P2  x="501" y="731" id="220" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="255" >
+<CONNECTOR type="115" id="249" index="32" uid="3a200bb2-4a74-4f24-830e-df6605403c73" >
 <cdparam x="501" y="761" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="501" y="761" id="227" />
-<P2  x="502" y="794" id="223" />
+<P1  x="501" y="761" id="221" />
+<P2  x="502" y="794" id="217" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="256" >
+<CONNECTOR type="115" id="250" index="33" uid="82195d58-c84c-400d-a5e7-63c55dcd0872" >
 <cdparam x="548" y="813" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="548" y="813" id="224" />
-<P2  x="697" y="831" id="219" />
+<P1  x="548" y="813" id="218" />
+<P2  x="697" y="831" id="213" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="257" >
+<CONNECTOR type="115" id="251" index="34" uid="2ee7879b-61c0-411a-9d2a-07c99c8426a1" >
 <cdparam x="697" y="861" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="697" y="861" id="221" />
-<P2  x="692" y="892" id="213" />
+<P1  x="697" y="861" id="215" />
+<P2  x="692" y="892" id="207" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="258" >
+<CONNECTOR type="115" id="252" index="35" uid="44a6a419-dde6-45a2-94c4-106a3e1f9e68" >
 <cdparam x="1010" y="976" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="1010" y="976" id="211" />
-<P2  x="1044" y="1006" id="193" />
+<P1  x="1010" y="976" id="205" />
+<P2  x="1044" y="1006" id="187" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="259" >
+<CONNECTOR type="115" id="253" index="36" uid="e6ed31ef-552f-4e1e-9200-74b5cf4025c0" >
 <cdparam x="1069" y="1011" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="1069" y="1011" id="197" />
-<P2  x="1083" y="1049" id="207" />
+<P1  x="1069" y="1011" id="191" />
+<P2  x="1083" y="1049" id="201" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="260" >
+<CONNECTOR type="115" id="254" index="37" uid="f9ab3e90-8757-4336-9475-c9856f50c5f4" >
 <cdparam x="994" y="1011" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="994" y="1011" id="194" />
-<P2  x="992" y="1048" id="204" />
+<P1  x="994" y="1011" id="188" />
+<P2  x="992" y="1048" id="198" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="261" >
+<CONNECTOR type="115" id="255" index="38" uid="8ec9aa75-2422-41e6-977c-0d2b6478bc1c" >
 <cdparam x="992" y="1078" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="992" y="1078" id="205" />
-<P2  x="991" y="1148" id="202" />
+<P1  x="992" y="1078" id="199" />
+<P2  x="991" y="1148" id="196" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="262" >
+<CONNECTOR type="115" id="256" index="39" uid="d425350a-ee4d-47a0-b7c8-7f132d627d13" >
 <cdparam x="851" y="902" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="851" y="902" id="217" />
-<P2  x="854" y="942" id="200" />
+<P1  x="851" y="902" id="211" />
+<P2  x="854" y="942" id="194" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="263" >
+<CONNECTOR type="115" id="257" index="40" uid="9f5daf28-81e7-45f0-a4ed-c0bcb020283a" >
 <cdparam x="1082" y="1160" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="1082" y="1160" id="236" />
-<P2  x="1087" y="1203" id="174" />
+<P1  x="1082" y="1160" id="230" />
+<P2  x="1087" y="1203" id="168" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="PrimitiveComp6" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="1001" id="265" >
+<TMLActivityDiagramPanel name="PrimitiveComp6" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="259" index="0" uid="2621aa42-518e-4a0b-94c4-aa7107598605" >
 <cdparam x="397" y="331" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="264" />
+<new d="false" />
+<TGConnectingPoint num="0" id="258" />
 </COMPONENT>
 
-<COMPONENT type="1009" id="268" >
+<COMPONENT type="1009" id="262" index="1" uid="91f63691-65fd-46e4-93d1-887a0ebe8e80" >
 <cdparam x="362" y="233" />
 <sizeparam width="90" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="read channel" value="channel4(1) " />
-<TGConnectingPoint num="0" id="266" />
-<TGConnectingPoint num="1" id="267" />
+<new d="false" />
+<TGConnectingPoint num="0" id="260" />
+<TGConnectingPoint num="1" id="261" />
 <extraparam>
 <Data channelName="channel4" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="271" >
+<COMPONENT type="1006" id="265" index="2" uid="4e8cf9f1-9d96-4fb2-a43f-bcac6996cef0" >
 <cdparam x="364" y="133" />
 <sizeparam width="86" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="write channel" value="channel4(1)" />
-<TGConnectingPoint num="0" id="269" />
-<TGConnectingPoint num="1" id="270" />
+<new d="false" />
+<TGConnectingPoint num="0" id="263" />
+<TGConnectingPoint num="1" id="264" />
 <extraparam>
 <Data channelName="channel4" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="273" >
+<COMPONENT type="1000" id="267" index="3" uid="df20b9a2-6234-4454-b784-f56731010474" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="272" />
+<new d="false" />
+<TGConnectingPoint num="0" id="266" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="274" >
+<CONNECTOR type="115" id="268" index="4" uid="ed62ecca-1c6b-4e06-874f-f6138794bd66" >
 <cdparam x="407" y="65" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="65" id="272" />
-<P2  x="407" y="128" id="269" />
+<P1  x="407" y="70" id="266" />
+<P2  x="407" y="128" id="263" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="275" >
+<CONNECTOR type="115" id="269" index="5" uid="f821d0b8-1b37-4b05-99db-1aa7d2bf07fb" >
 <cdparam x="407" y="158" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="158" id="270" />
-<P2  x="407" y="228" id="266" />
+<P1  x="407" y="158" id="264" />
+<P2  x="407" y="228" id="260" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
-<CONNECTOR type="115" id="276" >
+<CONNECTOR type="115" id="270" index="6" uid="0bbf921c-3600-4393-819e-81e22f0261e5" >
 <cdparam x="407" y="258" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="258" id="267" />
-<P2  x="407" y="326" id="264" />
+<P1  x="407" y="258" id="261" />
+<P2  x="407" y="326" id="258" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
@@ -1310,764 +1427,896 @@
 
 
 <Modeling type="TML Architecture" nameTab="Architecture" >
-<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1100" id="355" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" considerExecOperators="true" considerTimingOperators="true" masterClockFrequency="200" zoom="1.0" >
+<CONNECTOR type="125" id="737" index="0" uid="128953d6-b1b6-49d6-81d1-c20cedd9f684" >
+<cdparam x="1448" y="810" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1448" y="810" id="583" />
+<P2  x="1363" y="498" id="462" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="736" index="1" uid="44caf93c-5749-4b1b-af03-63a05dbbb2a4" >
+<cdparam x="1358" y="814" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1358" y="814" id="552" />
+<P2  x="1363" y="511" id="455" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="735" index="2" uid="523b68a7-a583-41c1-951f-85afa9aa390d" >
+<cdparam x="1575" y="568" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1611" y="569" id="501" />
+<P2  x="1488" y="511" id="456" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="734" index="3" uid="5af96185-98b6-471d-8e4e-510b8fe643e2" >
+<cdparam x="1315" y="629" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1315" y="629" id="661" />
+<P2  x="1425" y="511" id="464" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="733" index="4" uid="0ae72911-81ec-44cf-b23e-d5345461d01b" >
+<cdparam x="1309" y="454" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1309" y="454" id="629" />
+<P2  x="1363" y="486" id="453" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="732" index="5" uid="cd3821af-14ff-4f41-9e2e-2f018a2f15fa" >
+<cdparam x="1498" y="296" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="1498" y="296" id="381" />
+<P2  x="1488" y="461" id="451" />
+<AutomaticDrawing  data="true" />
+<new d="false" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<COMPONENT type="1100" id="349" index="6" uid="4603200e-3f7f-4f0c-aa2a-95ac7d793206" >
 <cdparam x="83" y="128" />
 <sizeparam width="552" height="225" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="CPU0" value="name" />
-<TGConnectingPoint num="0" id="331" />
-<TGConnectingPoint num="1" id="332" />
-<TGConnectingPoint num="2" id="333" />
-<TGConnectingPoint num="3" id="334" />
-<TGConnectingPoint num="4" id="335" />
-<TGConnectingPoint num="5" id="336" />
-<TGConnectingPoint num="6" id="337" />
-<TGConnectingPoint num="7" id="338" />
-<TGConnectingPoint num="8" id="339" />
-<TGConnectingPoint num="9" id="340" />
-<TGConnectingPoint num="10" id="341" />
-<TGConnectingPoint num="11" id="342" />
-<TGConnectingPoint num="12" id="343" />
-<TGConnectingPoint num="13" id="344" />
-<TGConnectingPoint num="14" id="345" />
-<TGConnectingPoint num="15" id="346" />
-<TGConnectingPoint num="16" id="347" />
-<TGConnectingPoint num="17" id="348" />
-<TGConnectingPoint num="18" id="349" />
-<TGConnectingPoint num="19" id="350" />
-<TGConnectingPoint num="20" id="351" />
-<TGConnectingPoint num="21" id="352" />
-<TGConnectingPoint num="22" id="353" />
-<TGConnectingPoint num="23" id="354" />
+<new d="false" />
+<TGConnectingPoint num="0" id="325" />
+<TGConnectingPoint num="1" id="326" />
+<TGConnectingPoint num="2" id="327" />
+<TGConnectingPoint num="3" id="328" />
+<TGConnectingPoint num="4" id="329" />
+<TGConnectingPoint num="5" id="330" />
+<TGConnectingPoint num="6" id="331" />
+<TGConnectingPoint num="7" id="332" />
+<TGConnectingPoint num="8" id="333" />
+<TGConnectingPoint num="9" id="334" />
+<TGConnectingPoint num="10" id="335" />
+<TGConnectingPoint num="11" id="336" />
+<TGConnectingPoint num="12" id="337" />
+<TGConnectingPoint num="13" id="338" />
+<TGConnectingPoint num="14" id="339" />
+<TGConnectingPoint num="15" id="340" />
+<TGConnectingPoint num="16" id="341" />
+<TGConnectingPoint num="17" id="342" />
+<TGConnectingPoint num="18" id="343" />
+<TGConnectingPoint num="19" id="344" />
+<TGConnectingPoint num="20" id="345" />
+<TGConnectingPoint num="21" id="346" />
+<TGConnectingPoint num="22" id="347" />
+<TGConnectingPoint num="23" id="348" />
 <extraparam>
 <info stereotype="CPU" nodeName="CPU0" />
 <attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="285" >
-<father id="355" num="0" />
-<cdparam x="110" y="152" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
-<TGConnectingPoint num="0" id="277" />
-<TGConnectingPoint num="1" id="278" />
-<TGConnectingPoint num="2" id="279" />
-<TGConnectingPoint num="3" id="280" />
-<TGConnectingPoint num="4" id="281" />
-<TGConnectingPoint num="5" id="282" />
-<TGConnectingPoint num="6" id="283" />
-<TGConnectingPoint num="7" id="284" />
-<extraparam>
-<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="294" >
-<father id="355" num="1" />
-<cdparam x="111" y="201" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="279" index="26" uid="475ad0c7-7f47-4b81-bb72-5d85dc0c6d92" >
+<father id="349" num="0" />
+<cdparam x="376" y="255" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
-<TGConnectingPoint num="0" id="286" />
-<TGConnectingPoint num="1" id="287" />
-<TGConnectingPoint num="2" id="288" />
-<TGConnectingPoint num="3" id="289" />
-<TGConnectingPoint num="4" id="290" />
-<TGConnectingPoint num="5" id="291" />
-<TGConnectingPoint num="6" id="292" />
-<TGConnectingPoint num="7" id="293" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
+<new d="false" />
+<TGConnectingPoint num="0" id="271" />
+<TGConnectingPoint num="1" id="272" />
+<TGConnectingPoint num="2" id="273" />
+<TGConnectingPoint num="3" id="274" />
+<TGConnectingPoint num="4" id="275" />
+<TGConnectingPoint num="5" id="276" />
+<TGConnectingPoint num="6" id="277" />
+<TGConnectingPoint num="7" id="278" />
 <extraparam>
-<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="303" >
-<father id="355" num="2" />
-<cdparam x="112" y="261" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="288" index="27" uid="400b1d89-e1c3-45fc-9967-65ed7b055a79" >
+<father id="349" num="1" />
+<cdparam x="371" y="203" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
-<TGConnectingPoint num="0" id="295" />
-<TGConnectingPoint num="1" id="296" />
-<TGConnectingPoint num="2" id="297" />
-<TGConnectingPoint num="3" id="298" />
-<TGConnectingPoint num="4" id="299" />
-<TGConnectingPoint num="5" id="300" />
-<TGConnectingPoint num="6" id="301" />
-<TGConnectingPoint num="7" id="302" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
+<new d="false" />
+<TGConnectingPoint num="0" id="280" />
+<TGConnectingPoint num="1" id="281" />
+<TGConnectingPoint num="2" id="282" />
+<TGConnectingPoint num="3" id="283" />
+<TGConnectingPoint num="4" id="284" />
+<TGConnectingPoint num="5" id="285" />
+<TGConnectingPoint num="6" id="286" />
+<TGConnectingPoint num="7" id="287" />
 <extraparam>
-<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="312" >
-<father id="355" num="3" />
+<SUBCOMPONENT type="1101" id="297" index="28" uid="ea5cb2f2-971f-4556-bb97-3fada947b2dd" >
+<father id="349" num="2" />
 <cdparam x="393" y="144" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
 <infoparam name="TGComponent" value="Application::PrimitiveComp4" />
-<TGConnectingPoint num="0" id="304" />
-<TGConnectingPoint num="1" id="305" />
-<TGConnectingPoint num="2" id="306" />
-<TGConnectingPoint num="3" id="307" />
-<TGConnectingPoint num="4" id="308" />
-<TGConnectingPoint num="5" id="309" />
-<TGConnectingPoint num="6" id="310" />
-<TGConnectingPoint num="7" id="311" />
+<new d="false" />
+<TGConnectingPoint num="0" id="289" />
+<TGConnectingPoint num="1" id="290" />
+<TGConnectingPoint num="2" id="291" />
+<TGConnectingPoint num="3" id="292" />
+<TGConnectingPoint num="4" id="293" />
+<TGConnectingPoint num="5" id="294" />
+<TGConnectingPoint num="6" id="295" />
+<TGConnectingPoint num="7" id="296" />
 <extraparam>
 <info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="321" >
-<father id="355" num="4" />
-<cdparam x="371" y="203" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="306" index="29" uid="51cc3679-d032-465f-90b5-cf1d05f57d0c" >
+<father id="349" num="3" />
+<cdparam x="112" y="261" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
-<TGConnectingPoint num="0" id="313" />
-<TGConnectingPoint num="1" id="314" />
-<TGConnectingPoint num="2" id="315" />
-<TGConnectingPoint num="3" id="316" />
-<TGConnectingPoint num="4" id="317" />
-<TGConnectingPoint num="5" id="318" />
-<TGConnectingPoint num="6" id="319" />
-<TGConnectingPoint num="7" id="320" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="298" />
+<TGConnectingPoint num="1" id="299" />
+<TGConnectingPoint num="2" id="300" />
+<TGConnectingPoint num="3" id="301" />
+<TGConnectingPoint num="4" id="302" />
+<TGConnectingPoint num="5" id="303" />
+<TGConnectingPoint num="6" id="304" />
+<TGConnectingPoint num="7" id="305" />
 <extraparam>
-<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="330" >
-<father id="355" num="5" />
-<cdparam x="376" y="255" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="315" index="30" uid="4c1fada3-5dca-465b-ba07-79b74fce6557" >
+<father id="349" num="4" />
+<cdparam x="111" y="201" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
-<TGConnectingPoint num="0" id="322" />
-<TGConnectingPoint num="1" id="323" />
-<TGConnectingPoint num="2" id="324" />
-<TGConnectingPoint num="3" id="325" />
-<TGConnectingPoint num="4" id="326" />
-<TGConnectingPoint num="5" id="327" />
-<TGConnectingPoint num="6" id="328" />
-<TGConnectingPoint num="7" id="329" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="307" />
+<TGConnectingPoint num="1" id="308" />
+<TGConnectingPoint num="2" id="309" />
+<TGConnectingPoint num="3" id="310" />
+<TGConnectingPoint num="4" id="311" />
+<TGConnectingPoint num="5" id="312" />
+<TGConnectingPoint num="6" id="313" />
+<TGConnectingPoint num="7" id="314" />
 <extraparam>
-<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1100" id="380" >
-<cdparam x="1276" y="110" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="324" index="31" uid="ab929319-77ae-4ccc-9f8e-5e5f3ebe09c9" >
+<father id="349" num="5" />
+<cdparam x="110" y="152" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="CPU2" value="name" />
-<TGConnectingPoint num="0" id="356" />
-<TGConnectingPoint num="1" id="357" />
-<TGConnectingPoint num="2" id="358" />
-<TGConnectingPoint num="3" id="359" />
-<TGConnectingPoint num="4" id="360" />
-<TGConnectingPoint num="5" id="361" />
-<TGConnectingPoint num="6" id="362" />
-<TGConnectingPoint num="7" id="363" />
-<TGConnectingPoint num="8" id="364" />
-<TGConnectingPoint num="9" id="365" />
-<TGConnectingPoint num="10" id="366" />
-<TGConnectingPoint num="11" id="367" />
-<TGConnectingPoint num="12" id="368" />
-<TGConnectingPoint num="13" id="369" />
-<TGConnectingPoint num="14" id="370" />
-<TGConnectingPoint num="15" id="371" />
-<TGConnectingPoint num="16" id="372" />
-<TGConnectingPoint num="17" id="373" />
-<TGConnectingPoint num="18" id="374" />
-<TGConnectingPoint num="19" id="375" />
-<TGConnectingPoint num="20" id="376" />
-<TGConnectingPoint num="21" id="377" />
-<TGConnectingPoint num="22" id="378" />
-<TGConnectingPoint num="23" id="379" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU2" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
+<new d="false" />
+<TGConnectingPoint num="0" id="316" />
+<TGConnectingPoint num="1" id="317" />
+<TGConnectingPoint num="2" id="318" />
+<TGConnectingPoint num="3" id="319" />
+<TGConnectingPoint num="4" id="320" />
+<TGConnectingPoint num="5" id="321" />
+<TGConnectingPoint num="6" id="322" />
+<TGConnectingPoint num="7" id="323" />
+<extraparam>
+<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="1100" id="405" >
-<cdparam x="991" y="100" />
+<COMPONENT type="1100" id="399" index="7" uid="6388bda7-c702-4ec2-ba88-8f1e9ad8fcf5" >
+<cdparam x="1373" y="96" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="CPU1" value="name" />
-<TGConnectingPoint num="0" id="381" />
-<TGConnectingPoint num="1" id="382" />
-<TGConnectingPoint num="2" id="383" />
-<TGConnectingPoint num="3" id="384" />
-<TGConnectingPoint num="4" id="385" />
-<TGConnectingPoint num="5" id="386" />
-<TGConnectingPoint num="6" id="387" />
-<TGConnectingPoint num="7" id="388" />
-<TGConnectingPoint num="8" id="389" />
-<TGConnectingPoint num="9" id="390" />
-<TGConnectingPoint num="10" id="391" />
-<TGConnectingPoint num="11" id="392" />
-<TGConnectingPoint num="12" id="393" />
-<TGConnectingPoint num="13" id="394" />
-<TGConnectingPoint num="14" id="395" />
-<TGConnectingPoint num="15" id="396" />
-<TGConnectingPoint num="16" id="397" />
-<TGConnectingPoint num="17" id="398" />
-<TGConnectingPoint num="18" id="399" />
-<TGConnectingPoint num="19" id="400" />
-<TGConnectingPoint num="20" id="401" />
-<TGConnectingPoint num="21" id="402" />
-<TGConnectingPoint num="22" id="403" />
-<TGConnectingPoint num="23" id="404" />
+<new d="false" />
+<TGConnectingPoint num="0" id="375" />
+<TGConnectingPoint num="1" id="376" />
+<TGConnectingPoint num="2" id="377" />
+<TGConnectingPoint num="3" id="378" />
+<TGConnectingPoint num="4" id="379" />
+<TGConnectingPoint num="5" id="380" />
+<TGConnectingPoint num="6" id="381" />
+<TGConnectingPoint num="7" id="382" />
+<TGConnectingPoint num="8" id="383" />
+<TGConnectingPoint num="9" id="384" />
+<TGConnectingPoint num="10" id="385" />
+<TGConnectingPoint num="11" id="386" />
+<TGConnectingPoint num="12" id="387" />
+<TGConnectingPoint num="13" id="388" />
+<TGConnectingPoint num="14" id="389" />
+<TGConnectingPoint num="15" id="390" />
+<TGConnectingPoint num="16" id="391" />
+<TGConnectingPoint num="17" id="392" />
+<TGConnectingPoint num="18" id="393" />
+<TGConnectingPoint num="19" id="394" />
+<TGConnectingPoint num="20" id="395" />
+<TGConnectingPoint num="21" id="396" />
+<TGConnectingPoint num="22" id="397" />
+<TGConnectingPoint num="23" id="398" />
 <extraparam>
 <info stereotype="CPURR" nodeName="CPU1" />
 <attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1107" id="430" >
+<COMPONENT type="1107" id="424" index="8" uid="b776642b-5b85-474c-bdba-f9967100b729" >
 <cdparam x="699" y="398" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="DMA0" value="name" />
-<TGConnectingPoint num="0" id="406" />
-<TGConnectingPoint num="1" id="407" />
-<TGConnectingPoint num="2" id="408" />
-<TGConnectingPoint num="3" id="409" />
-<TGConnectingPoint num="4" id="410" />
-<TGConnectingPoint num="5" id="411" />
-<TGConnectingPoint num="6" id="412" />
-<TGConnectingPoint num="7" id="413" />
-<TGConnectingPoint num="8" id="414" />
-<TGConnectingPoint num="9" id="415" />
-<TGConnectingPoint num="10" id="416" />
-<TGConnectingPoint num="11" id="417" />
-<TGConnectingPoint num="12" id="418" />
-<TGConnectingPoint num="13" id="419" />
-<TGConnectingPoint num="14" id="420" />
-<TGConnectingPoint num="15" id="421" />
-<TGConnectingPoint num="16" id="422" />
-<TGConnectingPoint num="17" id="423" />
-<TGConnectingPoint num="18" id="424" />
-<TGConnectingPoint num="19" id="425" />
-<TGConnectingPoint num="20" id="426" />
-<TGConnectingPoint num="21" id="427" />
-<TGConnectingPoint num="22" id="428" />
-<TGConnectingPoint num="23" id="429" />
+<new d="false" />
+<TGConnectingPoint num="0" id="400" />
+<TGConnectingPoint num="1" id="401" />
+<TGConnectingPoint num="2" id="402" />
+<TGConnectingPoint num="3" id="403" />
+<TGConnectingPoint num="4" id="404" />
+<TGConnectingPoint num="5" id="405" />
+<TGConnectingPoint num="6" id="406" />
+<TGConnectingPoint num="7" id="407" />
+<TGConnectingPoint num="8" id="408" />
+<TGConnectingPoint num="9" id="409" />
+<TGConnectingPoint num="10" id="410" />
+<TGConnectingPoint num="11" id="411" />
+<TGConnectingPoint num="12" id="412" />
+<TGConnectingPoint num="13" id="413" />
+<TGConnectingPoint num="14" id="414" />
+<TGConnectingPoint num="15" id="415" />
+<TGConnectingPoint num="16" id="416" />
+<TGConnectingPoint num="17" id="417" />
+<TGConnectingPoint num="18" id="418" />
+<TGConnectingPoint num="19" id="419" />
+<TGConnectingPoint num="20" id="420" />
+<TGConnectingPoint num="21" id="421" />
+<TGConnectingPoint num="22" id="422" />
+<TGConnectingPoint num="23" id="423" />
 <extraparam>
 <info stereotype="DMA" nodeName="DMA0" />
 <attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="455" >
+<COMPONENT type="1105" id="449" index="9" uid="83651822-6f1d-4197-ab61-bbf60a99dfa7" >
 <cdparam x="344" y="601" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="267" height="280" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="431" />
-<TGConnectingPoint num="1" id="432" />
-<TGConnectingPoint num="2" id="433" />
-<TGConnectingPoint num="3" id="434" />
-<TGConnectingPoint num="4" id="435" />
-<TGConnectingPoint num="5" id="436" />
-<TGConnectingPoint num="6" id="437" />
-<TGConnectingPoint num="7" id="438" />
-<TGConnectingPoint num="8" id="439" />
-<TGConnectingPoint num="9" id="440" />
-<TGConnectingPoint num="10" id="441" />
-<TGConnectingPoint num="11" id="442" />
-<TGConnectingPoint num="12" id="443" />
-<TGConnectingPoint num="13" id="444" />
-<TGConnectingPoint num="14" id="445" />
-<TGConnectingPoint num="15" id="446" />
-<TGConnectingPoint num="16" id="447" />
-<TGConnectingPoint num="17" id="448" />
-<TGConnectingPoint num="18" id="449" />
-<TGConnectingPoint num="19" id="450" />
-<TGConnectingPoint num="20" id="451" />
-<TGConnectingPoint num="21" id="452" />
-<TGConnectingPoint num="22" id="453" />
-<TGConnectingPoint num="23" id="454" />
+<new d="false" />
+<TGConnectingPoint num="0" id="425" />
+<TGConnectingPoint num="1" id="426" />
+<TGConnectingPoint num="2" id="427" />
+<TGConnectingPoint num="3" id="428" />
+<TGConnectingPoint num="4" id="429" />
+<TGConnectingPoint num="5" id="430" />
+<TGConnectingPoint num="6" id="431" />
+<TGConnectingPoint num="7" id="432" />
+<TGConnectingPoint num="8" id="433" />
+<TGConnectingPoint num="9" id="434" />
+<TGConnectingPoint num="10" id="435" />
+<TGConnectingPoint num="11" id="436" />
+<TGConnectingPoint num="12" id="437" />
+<TGConnectingPoint num="13" id="438" />
+<TGConnectingPoint num="14" id="439" />
+<TGConnectingPoint num="15" id="440" />
+<TGConnectingPoint num="16" id="441" />
+<TGConnectingPoint num="17" id="442" />
+<TGConnectingPoint num="18" id="443" />
+<TGConnectingPoint num="19" id="444" />
+<TGConnectingPoint num="20" id="445" />
+<TGConnectingPoint num="21" id="446" />
+<TGConnectingPoint num="22" id="447" />
+<TGConnectingPoint num="23" id="448" />
 <extraparam>
 <info stereotype="MEMORY" nodeName="Memory0" />
 <attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
+<SUBCOMPONENT type="1111" id="774" index="32" uid="e88326fc-e7ba-4af7-afac-714a0b559965" >
+<father id="449" num="0" />
+<cdparam x="455" y="832" />
+<sizeparam width="78" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="192" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="encryption1" />
+<new d="false" />
+<TGConnectingPoint num="0" id="775" />
+<TGConnectingPoint num="1" id="776" />
+<TGConnectingPoint num="2" id="777" />
+<TGConnectingPoint num="3" id="778" />
+<TGConnectingPoint num="4" id="779" />
+<TGConnectingPoint num="5" id="780" />
+<TGConnectingPoint num="6" id="781" />
+<TGConnectingPoint num="7" id="782" />
+<extraparam>
+<info value="encryption1" referenceKeyName="encryption1" priority="5" typeName="key" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="765" index="33" uid="376cf494-dee1-4217-a555-e2ce6458cd7e" >
+<father id="449" num="1" />
+<cdparam x="374" y="784" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="108" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="Application::channel4" />
+<new d="false" />
+<TGConnectingPoint num="0" id="766" />
+<TGConnectingPoint num="1" id="767" />
+<TGConnectingPoint num="2" id="768" />
+<TGConnectingPoint num="3" id="769" />
+<TGConnectingPoint num="4" id="770" />
+<TGConnectingPoint num="5" id="771" />
+<TGConnectingPoint num="6" id="772" />
+<TGConnectingPoint num="7" id="773" />
+<extraparam>
+<info value="Application::channel4" communicationName="channel4" referenceCommunicationName="Application" mappedElements="" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="756" index="34" uid="f37ccc05-dc3e-4fc4-82ad-e43c556f8c86" >
+<father id="449" num="2" />
+<cdparam x="371" y="735" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="108" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="Application::channel3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="757" />
+<TGConnectingPoint num="1" id="758" />
+<TGConnectingPoint num="2" id="759" />
+<TGConnectingPoint num="3" id="760" />
+<TGConnectingPoint num="4" id="761" />
+<TGConnectingPoint num="5" id="762" />
+<TGConnectingPoint num="6" id="763" />
+<TGConnectingPoint num="7" id="764" />
+<extraparam>
+<info value="Application::channel3" communicationName="channel3" referenceCommunicationName="Application" mappedElements="" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="747" index="35" uid="7765fc58-c690-45ea-a216-e4096ee4dbd4" >
+<father id="449" num="3" />
+<cdparam x="371" y="689" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="108" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="Application::channel2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="748" />
+<TGConnectingPoint num="1" id="749" />
+<TGConnectingPoint num="2" id="750" />
+<TGConnectingPoint num="3" id="751" />
+<TGConnectingPoint num="4" id="752" />
+<TGConnectingPoint num="5" id="753" />
+<TGConnectingPoint num="6" id="754" />
+<TGConnectingPoint num="7" id="755" />
+<extraparam>
+<info value="Application::channel2" communicationName="channel2" referenceCommunicationName="Application" mappedElements="" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="738" index="36" uid="beea57bc-ba8d-411c-a8fe-3c5e556f73f4" >
+<father id="449" num="4" />
+<cdparam x="369" y="641" />
+<sizeparam width="151" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="116" minY="0" maxY="240" />
+<infoparam name="TGComponent" value="Application::channel" />
+<new d="false" />
+<TGConnectingPoint num="0" id="739" />
+<TGConnectingPoint num="1" id="740" />
+<TGConnectingPoint num="2" id="741" />
+<TGConnectingPoint num="3" id="742" />
+<TGConnectingPoint num="4" id="743" />
+<TGConnectingPoint num="5" id="744" />
+<TGConnectingPoint num="6" id="745" />
+<TGConnectingPoint num="7" id="746" />
+<extraparam>
+<info value="Application::channel" communicationName="channel" referenceCommunicationName="Application" mappedElements="" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="1102" id="480" >
+<COMPONENT type="1102" id="474" index="10" uid="b3ac12d2-1f38-4f5b-b2cd-0ecb2c6f8561" >
 <cdparam x="1363" y="461" />
 <sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Bus1" value="name" />
-<TGConnectingPoint num="0" id="456" />
-<TGConnectingPoint num="1" id="457" />
-<TGConnectingPoint num="2" id="458" />
-<TGConnectingPoint num="3" id="459" />
-<TGConnectingPoint num="4" id="460" />
-<TGConnectingPoint num="5" id="461" />
-<TGConnectingPoint num="6" id="462" />
-<TGConnectingPoint num="7" id="463" />
-<TGConnectingPoint num="8" id="464" />
-<TGConnectingPoint num="9" id="465" />
-<TGConnectingPoint num="10" id="466" />
-<TGConnectingPoint num="11" id="467" />
-<TGConnectingPoint num="12" id="468" />
-<TGConnectingPoint num="13" id="469" />
-<TGConnectingPoint num="14" id="470" />
-<TGConnectingPoint num="15" id="471" />
-<TGConnectingPoint num="16" id="472" />
-<TGConnectingPoint num="17" id="473" />
-<TGConnectingPoint num="18" id="474" />
-<TGConnectingPoint num="19" id="475" />
-<TGConnectingPoint num="20" id="476" />
-<TGConnectingPoint num="21" id="477" />
-<TGConnectingPoint num="22" id="478" />
-<TGConnectingPoint num="23" id="479" />
+<new d="false" />
+<TGConnectingPoint num="0" id="450" />
+<TGConnectingPoint num="1" id="451" />
+<TGConnectingPoint num="2" id="452" />
+<TGConnectingPoint num="3" id="453" />
+<TGConnectingPoint num="4" id="454" />
+<TGConnectingPoint num="5" id="455" />
+<TGConnectingPoint num="6" id="456" />
+<TGConnectingPoint num="7" id="457" />
+<TGConnectingPoint num="8" id="458" />
+<TGConnectingPoint num="9" id="459" />
+<TGConnectingPoint num="10" id="460" />
+<TGConnectingPoint num="11" id="461" />
+<TGConnectingPoint num="12" id="462" />
+<TGConnectingPoint num="13" id="463" />
+<TGConnectingPoint num="14" id="464" />
+<TGConnectingPoint num="15" id="465" />
+<TGConnectingPoint num="16" id="466" />
+<TGConnectingPoint num="17" id="467" />
+<TGConnectingPoint num="18" id="468" />
+<TGConnectingPoint num="19" id="469" />
+<TGConnectingPoint num="20" id="470" />
+<TGConnectingPoint num="21" id="471" />
+<TGConnectingPoint num="22" id="472" />
+<TGConnectingPoint num="23" id="473" />
 <extraparam>
 <info stereotype="BUS-RR" nodeName="Bus1" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  burstSize="100"  clockRatio="1"  privacy="0"  referenceAttack="null" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1102" id="505" >
+<COMPONENT type="1102" id="499" index="11" uid="d159b8a1-fa92-4737-aafd-b54e73b4a6b5" >
 <cdparam x="316" y="416" />
 <sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="481" />
-<TGConnectingPoint num="1" id="482" />
-<TGConnectingPoint num="2" id="483" />
-<TGConnectingPoint num="3" id="484" />
-<TGConnectingPoint num="4" id="485" />
-<TGConnectingPoint num="5" id="486" />
-<TGConnectingPoint num="6" id="487" />
-<TGConnectingPoint num="7" id="488" />
-<TGConnectingPoint num="8" id="489" />
-<TGConnectingPoint num="9" id="490" />
-<TGConnectingPoint num="10" id="491" />
-<TGConnectingPoint num="11" id="492" />
-<TGConnectingPoint num="12" id="493" />
-<TGConnectingPoint num="13" id="494" />
-<TGConnectingPoint num="14" id="495" />
-<TGConnectingPoint num="15" id="496" />
-<TGConnectingPoint num="16" id="497" />
-<TGConnectingPoint num="17" id="498" />
-<TGConnectingPoint num="18" id="499" />
-<TGConnectingPoint num="19" id="500" />
-<TGConnectingPoint num="20" id="501" />
-<TGConnectingPoint num="21" id="502" />
-<TGConnectingPoint num="22" id="503" />
-<TGConnectingPoint num="23" id="504" />
+<new d="false" />
+<TGConnectingPoint num="0" id="475" />
+<TGConnectingPoint num="1" id="476" />
+<TGConnectingPoint num="2" id="477" />
+<TGConnectingPoint num="3" id="478" />
+<TGConnectingPoint num="4" id="479" />
+<TGConnectingPoint num="5" id="480" />
+<TGConnectingPoint num="6" id="481" />
+<TGConnectingPoint num="7" id="482" />
+<TGConnectingPoint num="8" id="483" />
+<TGConnectingPoint num="9" id="484" />
+<TGConnectingPoint num="10" id="485" />
+<TGConnectingPoint num="11" id="486" />
+<TGConnectingPoint num="12" id="487" />
+<TGConnectingPoint num="13" id="488" />
+<TGConnectingPoint num="14" id="489" />
+<TGConnectingPoint num="15" id="490" />
+<TGConnectingPoint num="16" id="491" />
+<TGConnectingPoint num="17" id="492" />
+<TGConnectingPoint num="18" id="493" />
+<TGConnectingPoint num="19" id="494" />
+<TGConnectingPoint num="20" id="495" />
+<TGConnectingPoint num="21" id="496" />
+<TGConnectingPoint num="22" id="497" />
+<TGConnectingPoint num="23" id="498" />
 <extraparam>
 <info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  burstSize="100"  clockRatio="1"  privacy="0"  referenceAttack="null" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1116" id="530" >
-<cdparam x="1355" y="573" />
+<COMPONENT type="1116" id="524" index="12" uid="92730563-e44f-472c-9fd3-5d004532ee45" >
+<cdparam x="1486" y="569" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="FPGA1" value="name" />
-<TGConnectingPoint num="0" id="506" />
-<TGConnectingPoint num="1" id="507" />
-<TGConnectingPoint num="2" id="508" />
-<TGConnectingPoint num="3" id="509" />
-<TGConnectingPoint num="4" id="510" />
-<TGConnectingPoint num="5" id="511" />
-<TGConnectingPoint num="6" id="512" />
-<TGConnectingPoint num="7" id="513" />
-<TGConnectingPoint num="8" id="514" />
-<TGConnectingPoint num="9" id="515" />
-<TGConnectingPoint num="10" id="516" />
-<TGConnectingPoint num="11" id="517" />
-<TGConnectingPoint num="12" id="518" />
-<TGConnectingPoint num="13" id="519" />
-<TGConnectingPoint num="14" id="520" />
-<TGConnectingPoint num="15" id="521" />
-<TGConnectingPoint num="16" id="522" />
-<TGConnectingPoint num="17" id="523" />
-<TGConnectingPoint num="18" id="524" />
-<TGConnectingPoint num="19" id="525" />
-<TGConnectingPoint num="20" id="526" />
-<TGConnectingPoint num="21" id="527" />
-<TGConnectingPoint num="22" id="528" />
-<TGConnectingPoint num="23" id="529" />
+<new d="false" />
+<TGConnectingPoint num="0" id="500" />
+<TGConnectingPoint num="1" id="501" />
+<TGConnectingPoint num="2" id="502" />
+<TGConnectingPoint num="3" id="503" />
+<TGConnectingPoint num="4" id="504" />
+<TGConnectingPoint num="5" id="505" />
+<TGConnectingPoint num="6" id="506" />
+<TGConnectingPoint num="7" id="507" />
+<TGConnectingPoint num="8" id="508" />
+<TGConnectingPoint num="9" id="509" />
+<TGConnectingPoint num="10" id="510" />
+<TGConnectingPoint num="11" id="511" />
+<TGConnectingPoint num="12" id="512" />
+<TGConnectingPoint num="13" id="513" />
+<TGConnectingPoint num="14" id="514" />
+<TGConnectingPoint num="15" id="515" />
+<TGConnectingPoint num="16" id="516" />
+<TGConnectingPoint num="17" id="517" />
+<TGConnectingPoint num="18" id="518" />
+<TGConnectingPoint num="19" id="519" />
+<TGConnectingPoint num="20" id="520" />
+<TGConnectingPoint num="21" id="521" />
+<TGConnectingPoint num="22" id="522" />
+<TGConnectingPoint num="23" id="523" />
 <extraparam>
 <info stereotype="FPGA" nodeName="FPGA1" />
 <attributes capacity="100" byteDataSize="4"  mappingPenalty="0"  reconfigurationTime="50"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  execiTime="1" execcTime="1" clockRatio="1" operation =""  scheduling ="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1116" id="555" >
+<COMPONENT type="1116" id="549" index="13" uid="01bcb2cd-8d59-4465-a940-c424365d342f" >
 <cdparam x="74" y="596" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="FPGA0" value="name" />
-<TGConnectingPoint num="0" id="531" />
-<TGConnectingPoint num="1" id="532" />
-<TGConnectingPoint num="2" id="533" />
-<TGConnectingPoint num="3" id="534" />
-<TGConnectingPoint num="4" id="535" />
-<TGConnectingPoint num="5" id="536" />
-<TGConnectingPoint num="6" id="537" />
-<TGConnectingPoint num="7" id="538" />
-<TGConnectingPoint num="8" id="539" />
-<TGConnectingPoint num="9" id="540" />
-<TGConnectingPoint num="10" id="541" />
-<TGConnectingPoint num="11" id="542" />
-<TGConnectingPoint num="12" id="543" />
-<TGConnectingPoint num="13" id="544" />
-<TGConnectingPoint num="14" id="545" />
-<TGConnectingPoint num="15" id="546" />
-<TGConnectingPoint num="16" id="547" />
-<TGConnectingPoint num="17" id="548" />
-<TGConnectingPoint num="18" id="549" />
-<TGConnectingPoint num="19" id="550" />
-<TGConnectingPoint num="20" id="551" />
-<TGConnectingPoint num="21" id="552" />
-<TGConnectingPoint num="22" id="553" />
-<TGConnectingPoint num="23" id="554" />
+<new d="false" />
+<TGConnectingPoint num="0" id="525" />
+<TGConnectingPoint num="1" id="526" />
+<TGConnectingPoint num="2" id="527" />
+<TGConnectingPoint num="3" id="528" />
+<TGConnectingPoint num="4" id="529" />
+<TGConnectingPoint num="5" id="530" />
+<TGConnectingPoint num="6" id="531" />
+<TGConnectingPoint num="7" id="532" />
+<TGConnectingPoint num="8" id="533" />
+<TGConnectingPoint num="9" id="534" />
+<TGConnectingPoint num="10" id="535" />
+<TGConnectingPoint num="11" id="536" />
+<TGConnectingPoint num="12" id="537" />
+<TGConnectingPoint num="13" id="538" />
+<TGConnectingPoint num="14" id="539" />
+<TGConnectingPoint num="15" id="540" />
+<TGConnectingPoint num="16" id="541" />
+<TGConnectingPoint num="17" id="542" />
+<TGConnectingPoint num="18" id="543" />
+<TGConnectingPoint num="19" id="544" />
+<TGConnectingPoint num="20" id="545" />
+<TGConnectingPoint num="21" id="546" />
+<TGConnectingPoint num="22" id="547" />
+<TGConnectingPoint num="23" id="548" />
 <extraparam>
 <info stereotype="FPGA" nodeName="FPGA0" />
 <attributes capacity="100" byteDataSize="4"  mappingPenalty="0"  reconfigurationTime="50"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  execiTime="1" execcTime="1" clockRatio="1" operation =""  scheduling ="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1106" id="580" >
+<COMPONENT type="1106" id="574" index="14" uid="1f9e5367-d296-41b8-8a69-480519572200" >
 <cdparam x="1108" y="814" />
 <sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Bridge1" value="name" />
-<TGConnectingPoint num="0" id="556" />
-<TGConnectingPoint num="1" id="557" />
-<TGConnectingPoint num="2" id="558" />
-<TGConnectingPoint num="3" id="559" />
-<TGConnectingPoint num="4" id="560" />
-<TGConnectingPoint num="5" id="561" />
-<TGConnectingPoint num="6" id="562" />
-<TGConnectingPoint num="7" id="563" />
-<TGConnectingPoint num="8" id="564" />
-<TGConnectingPoint num="9" id="565" />
-<TGConnectingPoint num="10" id="566" />
-<TGConnectingPoint num="11" id="567" />
-<TGConnectingPoint num="12" id="568" />
-<TGConnectingPoint num="13" id="569" />
-<TGConnectingPoint num="14" id="570" />
-<TGConnectingPoint num="15" id="571" />
-<TGConnectingPoint num="16" id="572" />
-<TGConnectingPoint num="17" id="573" />
-<TGConnectingPoint num="18" id="574" />
-<TGConnectingPoint num="19" id="575" />
-<TGConnectingPoint num="20" id="576" />
-<TGConnectingPoint num="21" id="577" />
-<TGConnectingPoint num="22" id="578" />
-<TGConnectingPoint num="23" id="579" />
+<new d="false" />
+<TGConnectingPoint num="0" id="550" />
+<TGConnectingPoint num="1" id="551" />
+<TGConnectingPoint num="2" id="552" />
+<TGConnectingPoint num="3" id="553" />
+<TGConnectingPoint num="4" id="554" />
+<TGConnectingPoint num="5" id="555" />
+<TGConnectingPoint num="6" id="556" />
+<TGConnectingPoint num="7" id="557" />
+<TGConnectingPoint num="8" id="558" />
+<TGConnectingPoint num="9" id="559" />
+<TGConnectingPoint num="10" id="560" />
+<TGConnectingPoint num="11" id="561" />
+<TGConnectingPoint num="12" id="562" />
+<TGConnectingPoint num="13" id="563" />
+<TGConnectingPoint num="14" id="564" />
+<TGConnectingPoint num="15" id="565" />
+<TGConnectingPoint num="16" id="566" />
+<TGConnectingPoint num="17" id="567" />
+<TGConnectingPoint num="18" id="568" />
+<TGConnectingPoint num="19" id="569" />
+<TGConnectingPoint num="20" id="570" />
+<TGConnectingPoint num="21" id="571" />
+<TGConnectingPoint num="22" id="572" />
+<TGConnectingPoint num="23" id="573" />
 <extraparam>
 <info stereotype="BRIDGE" nodeName="Bridge1" />
 <attributes bufferByteDataSize="4"  clockRatio="1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1104" id="605" >
-<cdparam x="1393" y="804" />
+<COMPONENT type="1104" id="599" index="15" uid="4ba45209-d7c2-47e0-b7a2-543345790c71" >
+<cdparam x="1398" y="810" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="HWA1" value="name" />
-<TGConnectingPoint num="0" id="581" />
-<TGConnectingPoint num="1" id="582" />
-<TGConnectingPoint num="2" id="583" />
-<TGConnectingPoint num="3" id="584" />
-<TGConnectingPoint num="4" id="585" />
-<TGConnectingPoint num="5" id="586" />
-<TGConnectingPoint num="6" id="587" />
-<TGConnectingPoint num="7" id="588" />
-<TGConnectingPoint num="8" id="589" />
-<TGConnectingPoint num="9" id="590" />
-<TGConnectingPoint num="10" id="591" />
-<TGConnectingPoint num="11" id="592" />
-<TGConnectingPoint num="12" id="593" />
-<TGConnectingPoint num="13" id="594" />
-<TGConnectingPoint num="14" id="595" />
-<TGConnectingPoint num="15" id="596" />
-<TGConnectingPoint num="16" id="597" />
-<TGConnectingPoint num="17" id="598" />
-<TGConnectingPoint num="18" id="599" />
-<TGConnectingPoint num="19" id="600" />
-<TGConnectingPoint num="20" id="601" />
-<TGConnectingPoint num="21" id="602" />
-<TGConnectingPoint num="22" id="603" />
-<TGConnectingPoint num="23" id="604" />
+<new d="false" />
+<TGConnectingPoint num="0" id="575" />
+<TGConnectingPoint num="1" id="576" />
+<TGConnectingPoint num="2" id="577" />
+<TGConnectingPoint num="3" id="578" />
+<TGConnectingPoint num="4" id="579" />
+<TGConnectingPoint num="5" id="580" />
+<TGConnectingPoint num="6" id="581" />
+<TGConnectingPoint num="7" id="582" />
+<TGConnectingPoint num="8" id="583" />
+<TGConnectingPoint num="9" id="584" />
+<TGConnectingPoint num="10" id="585" />
+<TGConnectingPoint num="11" id="586" />
+<TGConnectingPoint num="12" id="587" />
+<TGConnectingPoint num="13" id="588" />
+<TGConnectingPoint num="14" id="589" />
+<TGConnectingPoint num="15" id="590" />
+<TGConnectingPoint num="16" id="591" />
+<TGConnectingPoint num="17" id="592" />
+<TGConnectingPoint num="18" id="593" />
+<TGConnectingPoint num="19" id="594" />
+<TGConnectingPoint num="20" id="595" />
+<TGConnectingPoint num="21" id="596" />
+<TGConnectingPoint num="22" id="597" />
+<TGConnectingPoint num="23" id="598" />
 <extraparam>
 <info stereotype="HWA" nodeName="HWA1" />
-<attributes byteDataSize="4"  execiTime="1"  clockRatio="1"  operation="" />
+<attributes byteDataSize="4"  execiTime="1"  execcTime="1"  clockRatio="1"  operation="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1104" id="630" >
+<COMPONENT type="1104" id="624" index="16" uid="b09ab224-8365-42d2-9ef1-aa1474d5ecdf" >
 <cdparam x="672" y="681" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="HWA0" value="name" />
-<TGConnectingPoint num="0" id="606" />
-<TGConnectingPoint num="1" id="607" />
-<TGConnectingPoint num="2" id="608" />
-<TGConnectingPoint num="3" id="609" />
-<TGConnectingPoint num="4" id="610" />
-<TGConnectingPoint num="5" id="611" />
-<TGConnectingPoint num="6" id="612" />
-<TGConnectingPoint num="7" id="613" />
-<TGConnectingPoint num="8" id="614" />
-<TGConnectingPoint num="9" id="615" />
-<TGConnectingPoint num="10" id="616" />
-<TGConnectingPoint num="11" id="617" />
-<TGConnectingPoint num="12" id="618" />
-<TGConnectingPoint num="13" id="619" />
-<TGConnectingPoint num="14" id="620" />
-<TGConnectingPoint num="15" id="621" />
-<TGConnectingPoint num="16" id="622" />
-<TGConnectingPoint num="17" id="623" />
-<TGConnectingPoint num="18" id="624" />
-<TGConnectingPoint num="19" id="625" />
-<TGConnectingPoint num="20" id="626" />
-<TGConnectingPoint num="21" id="627" />
-<TGConnectingPoint num="22" id="628" />
-<TGConnectingPoint num="23" id="629" />
+<new d="false" />
+<TGConnectingPoint num="0" id="600" />
+<TGConnectingPoint num="1" id="601" />
+<TGConnectingPoint num="2" id="602" />
+<TGConnectingPoint num="3" id="603" />
+<TGConnectingPoint num="4" id="604" />
+<TGConnectingPoint num="5" id="605" />
+<TGConnectingPoint num="6" id="606" />
+<TGConnectingPoint num="7" id="607" />
+<TGConnectingPoint num="8" id="608" />
+<TGConnectingPoint num="9" id="609" />
+<TGConnectingPoint num="10" id="610" />
+<TGConnectingPoint num="11" id="611" />
+<TGConnectingPoint num="12" id="612" />
+<TGConnectingPoint num="13" id="613" />
+<TGConnectingPoint num="14" id="614" />
+<TGConnectingPoint num="15" id="615" />
+<TGConnectingPoint num="16" id="616" />
+<TGConnectingPoint num="17" id="617" />
+<TGConnectingPoint num="18" id="618" />
+<TGConnectingPoint num="19" id="619" />
+<TGConnectingPoint num="20" id="620" />
+<TGConnectingPoint num="21" id="621" />
+<TGConnectingPoint num="22" id="622" />
+<TGConnectingPoint num="23" id="623" />
 <extraparam>
 <info stereotype="HWA" nodeName="HWA0" />
-<attributes byteDataSize="4"  execiTime="1"  clockRatio="1"  operation="" />
+<attributes byteDataSize="4"  execiTime="1"  execcTime="1"  clockRatio="1"  operation="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1107" id="655" >
+<COMPONENT type="1107" id="649" index="17" uid="7918eb56-90be-4ef4-b6f1-ce4d56df6824" >
 <cdparam x="1109" y="354" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="DMA1" value="name" />
-<TGConnectingPoint num="0" id="631" />
-<TGConnectingPoint num="1" id="632" />
-<TGConnectingPoint num="2" id="633" />
-<TGConnectingPoint num="3" id="634" />
-<TGConnectingPoint num="4" id="635" />
-<TGConnectingPoint num="5" id="636" />
-<TGConnectingPoint num="6" id="637" />
-<TGConnectingPoint num="7" id="638" />
-<TGConnectingPoint num="8" id="639" />
-<TGConnectingPoint num="9" id="640" />
-<TGConnectingPoint num="10" id="641" />
-<TGConnectingPoint num="11" id="642" />
-<TGConnectingPoint num="12" id="643" />
-<TGConnectingPoint num="13" id="644" />
-<TGConnectingPoint num="14" id="645" />
-<TGConnectingPoint num="15" id="646" />
-<TGConnectingPoint num="16" id="647" />
-<TGConnectingPoint num="17" id="648" />
-<TGConnectingPoint num="18" id="649" />
-<TGConnectingPoint num="19" id="650" />
-<TGConnectingPoint num="20" id="651" />
-<TGConnectingPoint num="21" id="652" />
-<TGConnectingPoint num="22" id="653" />
-<TGConnectingPoint num="23" id="654" />
+<new d="false" />
+<TGConnectingPoint num="0" id="625" />
+<TGConnectingPoint num="1" id="626" />
+<TGConnectingPoint num="2" id="627" />
+<TGConnectingPoint num="3" id="628" />
+<TGConnectingPoint num="4" id="629" />
+<TGConnectingPoint num="5" id="630" />
+<TGConnectingPoint num="6" id="631" />
+<TGConnectingPoint num="7" id="632" />
+<TGConnectingPoint num="8" id="633" />
+<TGConnectingPoint num="9" id="634" />
+<TGConnectingPoint num="10" id="635" />
+<TGConnectingPoint num="11" id="636" />
+<TGConnectingPoint num="12" id="637" />
+<TGConnectingPoint num="13" id="638" />
+<TGConnectingPoint num="14" id="639" />
+<TGConnectingPoint num="15" id="640" />
+<TGConnectingPoint num="16" id="641" />
+<TGConnectingPoint num="17" id="642" />
+<TGConnectingPoint num="18" id="643" />
+<TGConnectingPoint num="19" id="644" />
+<TGConnectingPoint num="20" id="645" />
+<TGConnectingPoint num="21" id="646" />
+<TGConnectingPoint num="22" id="647" />
+<TGConnectingPoint num="23" id="648" />
 <extraparam>
 <info stereotype="DMA" nodeName="DMA1" />
 <attributes byteDataSize="4" nbOfChannels="1" clockRatio="1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="680" >
+<COMPONENT type="1105" id="674" index="18" uid="63224e11-0df8-4c59-a569-a2a51aeb6f61" >
 <cdparam x="1115" y="579" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Memory1" value="name" />
-<TGConnectingPoint num="0" id="656" />
-<TGConnectingPoint num="1" id="657" />
-<TGConnectingPoint num="2" id="658" />
-<TGConnectingPoint num="3" id="659" />
-<TGConnectingPoint num="4" id="660" />
-<TGConnectingPoint num="5" id="661" />
-<TGConnectingPoint num="6" id="662" />
-<TGConnectingPoint num="7" id="663" />
-<TGConnectingPoint num="8" id="664" />
-<TGConnectingPoint num="9" id="665" />
-<TGConnectingPoint num="10" id="666" />
-<TGConnectingPoint num="11" id="667" />
-<TGConnectingPoint num="12" id="668" />
-<TGConnectingPoint num="13" id="669" />
-<TGConnectingPoint num="14" id="670" />
-<TGConnectingPoint num="15" id="671" />
-<TGConnectingPoint num="16" id="672" />
-<TGConnectingPoint num="17" id="673" />
-<TGConnectingPoint num="18" id="674" />
-<TGConnectingPoint num="19" id="675" />
-<TGConnectingPoint num="20" id="676" />
-<TGConnectingPoint num="21" id="677" />
-<TGConnectingPoint num="22" id="678" />
-<TGConnectingPoint num="23" id="679" />
+<new d="false" />
+<TGConnectingPoint num="0" id="650" />
+<TGConnectingPoint num="1" id="651" />
+<TGConnectingPoint num="2" id="652" />
+<TGConnectingPoint num="3" id="653" />
+<TGConnectingPoint num="4" id="654" />
+<TGConnectingPoint num="5" id="655" />
+<TGConnectingPoint num="6" id="656" />
+<TGConnectingPoint num="7" id="657" />
+<TGConnectingPoint num="8" id="658" />
+<TGConnectingPoint num="9" id="659" />
+<TGConnectingPoint num="10" id="660" />
+<TGConnectingPoint num="11" id="661" />
+<TGConnectingPoint num="12" id="662" />
+<TGConnectingPoint num="13" id="663" />
+<TGConnectingPoint num="14" id="664" />
+<TGConnectingPoint num="15" id="665" />
+<TGConnectingPoint num="16" id="666" />
+<TGConnectingPoint num="17" id="667" />
+<TGConnectingPoint num="18" id="668" />
+<TGConnectingPoint num="19" id="669" />
+<TGConnectingPoint num="20" id="670" />
+<TGConnectingPoint num="21" id="671" />
+<TGConnectingPoint num="22" id="672" />
+<TGConnectingPoint num="23" id="673" />
 <extraparam>
 <info stereotype="MEMORY" nodeName="Memory1" />
 <attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1106" id="705" >
+<COMPONENT type="1106" id="699" index="19" uid="ae4dc07f-22d8-4adc-81ab-e2cf7c455129" >
 <cdparam x="13" y="416" />
 <sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Bridge0" value="name" />
-<TGConnectingPoint num="0" id="681" />
-<TGConnectingPoint num="1" id="682" />
-<TGConnectingPoint num="2" id="683" />
-<TGConnectingPoint num="3" id="684" />
-<TGConnectingPoint num="4" id="685" />
-<TGConnectingPoint num="5" id="686" />
-<TGConnectingPoint num="6" id="687" />
-<TGConnectingPoint num="7" id="688" />
-<TGConnectingPoint num="8" id="689" />
-<TGConnectingPoint num="9" id="690" />
-<TGConnectingPoint num="10" id="691" />
-<TGConnectingPoint num="11" id="692" />
-<TGConnectingPoint num="12" id="693" />
-<TGConnectingPoint num="13" id="694" />
-<TGConnectingPoint num="14" id="695" />
-<TGConnectingPoint num="15" id="696" />
-<TGConnectingPoint num="16" id="697" />
-<TGConnectingPoint num="17" id="698" />
-<TGConnectingPoint num="18" id="699" />
-<TGConnectingPoint num="19" id="700" />
-<TGConnectingPoint num="20" id="701" />
-<TGConnectingPoint num="21" id="702" />
-<TGConnectingPoint num="22" id="703" />
-<TGConnectingPoint num="23" id="704" />
+<new d="false" />
+<TGConnectingPoint num="0" id="675" />
+<TGConnectingPoint num="1" id="676" />
+<TGConnectingPoint num="2" id="677" />
+<TGConnectingPoint num="3" id="678" />
+<TGConnectingPoint num="4" id="679" />
+<TGConnectingPoint num="5" id="680" />
+<TGConnectingPoint num="6" id="681" />
+<TGConnectingPoint num="7" id="682" />
+<TGConnectingPoint num="8" id="683" />
+<TGConnectingPoint num="9" id="684" />
+<TGConnectingPoint num="10" id="685" />
+<TGConnectingPoint num="11" id="686" />
+<TGConnectingPoint num="12" id="687" />
+<TGConnectingPoint num="13" id="688" />
+<TGConnectingPoint num="14" id="689" />
+<TGConnectingPoint num="15" id="690" />
+<TGConnectingPoint num="16" id="691" />
+<TGConnectingPoint num="17" id="692" />
+<TGConnectingPoint num="18" id="693" />
+<TGConnectingPoint num="19" id="694" />
+<TGConnectingPoint num="20" id="695" />
+<TGConnectingPoint num="21" id="696" />
+<TGConnectingPoint num="22" id="697" />
+<TGConnectingPoint num="23" id="698" />
 <extraparam>
 <info stereotype="BRIDGE" nodeName="Bridge0" />
 <attributes bufferByteDataSize="4"  clockRatio="1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1117" id="730" >
-<cdparam x="686" y="230" />
-<sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="NoC0" value="name" />
-<TGConnectingPoint num="0" id="706" />
-<TGConnectingPoint num="1" id="707" />
-<TGConnectingPoint num="2" id="708" />
-<TGConnectingPoint num="3" id="709" />
-<TGConnectingPoint num="4" id="710" />
-<TGConnectingPoint num="5" id="711" />
-<TGConnectingPoint num="6" id="712" />
-<TGConnectingPoint num="7" id="713" />
-<TGConnectingPoint num="8" id="714" />
-<TGConnectingPoint num="9" id="715" />
-<TGConnectingPoint num="10" id="716" />
-<TGConnectingPoint num="11" id="717" />
-<TGConnectingPoint num="12" id="718" />
-<TGConnectingPoint num="13" id="719" />
-<TGConnectingPoint num="14" id="720" />
-<TGConnectingPoint num="15" id="721" />
-<TGConnectingPoint num="16" id="722" />
-<TGConnectingPoint num="17" id="723" />
-<TGConnectingPoint num="18" id="724" />
-<TGConnectingPoint num="19" id="725" />
-<TGConnectingPoint num="20" id="726" />
-<TGConnectingPoint num="21" id="727" />
-<TGConnectingPoint num="22" id="728" />
-<TGConnectingPoint num="23" id="729" />
-<extraparam>
-<info stereotype="NoC" nodeName="NoC0" />
-<attributes bufferByteDataSize="4"  size="2"  placement="CPU1 1 0"  clockRatio="1" />
-</extraparam>
-</COMPONENT>
-
-<CONNECTOR type="125" id="731" >
+<CONNECTOR type="125" id="725" index="20" uid="f6250e04-dcfe-408a-9430-ba1cd605f234" >
 <cdparam x="199" y="596" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="199" y="596" id="532" />
-<P2  x="378" y="466" id="495" />
+<P1  x="199" y="596" id="526" />
+<P2  x="378" y="466" id="489" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="732" >
+<CONNECTOR type="125" id="726" index="21" uid="d5714674-eb01-4e20-a055-5a5ee12033b4" >
 <cdparam x="262" y="461" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="263" y="466" id="685" />
-<P2  x="316" y="441" id="484" />
+<P1  x="263" y="466" id="679" />
+<P2  x="316" y="441" id="478" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="733" >
+<CONNECTOR type="125" id="727" index="22" uid="66406a52-7714-49c2-ac5c-477dddc50aad" >
 <cdparam x="770" y="476" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="699" y="448" id="416" />
-<P2  x="566" y="441" id="485" />
+<P1  x="699" y="448" id="410" />
+<P2  x="566" y="441" id="479" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="734" >
+<CONNECTOR type="125" id="728" index="23" uid="1033cf37-b847-41d4-8fa6-67bda2618f3b" >
 <cdparam x="298" y="533" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="444" y="601" id="432" />
-<P2  x="441" y="466" id="487" />
+<P1  x="477" y="601" id="426" />
+<P2  x="441" y="466" id="481" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="735" >
+<CONNECTOR type="125" id="729" index="24" uid="5df9b60c-acea-47e2-9e6b-50b40c2846ec" >
 <cdparam x="444" y="328" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="359" y="353" id="337" />
-<P2  x="441" y="416" id="482" />
+<P1  x="359" y="353" id="331" />
+<P2  x="441" y="416" id="476" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="736" >
+<CONNECTOR type="125" id="730" index="25" uid="ce19f018-0572-45c5-af55-cb6a0bb4fe82" >
 <cdparam x="759" y="623" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="722" y="681" id="614" />
-<P2  x="503" y="466" id="496" />
+<P1  x="722" y="681" id="608" />
+<P2  x="503" y="466" id="490" />
 <AutomaticDrawing  data="true" />
+<new d="false" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
diff --git a/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml b/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
index d7d2d43639cfa9d4d626a48e6e93d82728ec0528..576193ac752ef325fb1b2ef40782e1d99ac1bc96 100644
--- a/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
+++ b/ttool/src/test/resources/ui/diagram2tml/input/CloneCompositeComponentTest.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="0" LAST_SELECTED_SUB_TAB="0">
+<TURTLEGMODELING version="3.0 beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="TML Component Design" nameTab="Application" tabs="TML Component Task Diagram$PrimitiveComp2$PrimitiveComp1$PrimitiveComp3$PrimitiveComp4$PrimitiveComp5$PrimitiveComp6" >
 <TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" considerExecOperators="true" considerTimingOperators="true" zoom="1.0" >
@@ -8,8 +8,8 @@
 <cdparam x="475" y="480" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="467" y="365" id="17" />
-<P2  x="514" y="364" id="6" />
+<P1  x="467" y="365" id="45" />
+<P2  x="514" y="364" id="56" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR>
@@ -17,8 +17,8 @@
 <cdparam x="1021" y="460" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="564" y="164" id="65" />
-<P2  x="430" y="163" id="52" />
+<P1  x="564" y="164" id="6" />
+<P2  x="430" y="163" id="19" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR>
@@ -26,8 +26,8 @@
 <cdparam x="878" y="469" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="430" y="208" id="50" />
-<P2  x="564" y="209" id="63" />
+<P1  x="430" y="208" id="21" />
+<P2  x="564" y="209" id="8" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR>
@@ -35,8 +35,8 @@
 <cdparam x="424" y="585" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="424" y="585" id="30" />
-<P2  x="521" y="585" id="28" />
+<P1  x="424" y="585" id="32" />
+<P2  x="521" y="585" id="34" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR>
@@ -44,8 +44,8 @@
 <cdparam x="1144" y="348" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1144" y="348" id="85" />
-<P2  x="1144" y="405" id="87" />
+<P1  x="1144" y="348" id="87" />
+<P2  x="1144" y="405" id="85" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
 </CONNECTOR>
@@ -68,57 +68,37 @@
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1200" id="49" index="7" uid="fa608369-ff64-4b12-8b0f-7c6da178f79e" >
+<SUBCOMPONENT type="1202" id="18" index="7" uid="35c4939c-38d1-47a1-b006-613944f2f885" >
 <father id="84" num="0" />
-<cdparam x="266" y="278" />
-<sizeparam width="471" height="329" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="201" minY="0" maxY="289" />
-<infoparam name="Composite component" value="CompositeComp2" />
-<new d="false" />
-<TGConnectingPoint num="0" id="41" />
-<TGConnectingPoint num="1" id="42" />
-<TGConnectingPoint num="2" id="43" />
-<TGConnectingPoint num="3" id="44" />
-<TGConnectingPoint num="4" id="45" />
-<TGConnectingPoint num="5" id="46" />
-<TGConnectingPoint num="6" id="47" />
-<TGConnectingPoint num="7" id="48" />
-<extraparam>
-<info hiddeni="false" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="16" index="8" uid="d5af42cd-aaeb-4fb9-8371-fef423051975" >
-<father id="49" num="0" />
-<cdparam x="527" y="316" />
+<cdparam x="577" y="116" />
 <sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="179" />
-<infoparam name="Primitive component" value="PrimitiveComp4" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp2" />
 <new d="false" />
-<TGConnectingPoint num="0" id="8" />
-<TGConnectingPoint num="1" id="9" />
-<TGConnectingPoint num="2" id="10" />
-<TGConnectingPoint num="3" id="11" />
-<TGConnectingPoint num="4" id="12" />
-<TGConnectingPoint num="5" id="13" />
-<TGConnectingPoint num="6" id="14" />
-<TGConnectingPoint num="7" id="15" />
+<TGConnectingPoint num="0" id="10" />
+<TGConnectingPoint num="1" id="11" />
+<TGConnectingPoint num="2" id="12" />
+<TGConnectingPoint num="3" id="13" />
+<TGConnectingPoint num="4" id="14" />
+<TGConnectingPoint num="5" id="15" />
+<TGConnectingPoint num="6" id="16" />
+<TGConnectingPoint num="7" id="17" />
 <extraparam>
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="7" index="9" uid="0ed01ee0-d206-413a-a6a6-084865e95784" >
-<father id="16" num="0" />
-<cdparam x="514" y="351" />
+<SUBCOMPONENT type="1203" id="7" index="8" uid="ddecd86e-4901-4709-91c6-defbef233aa6" >
+<father id="18" num="0" />
+<cdparam x="564" y="151" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel2" />
+<infoparam name="Primitive port" value="Channel channel" />
 <new d="false" />
 <TGConnectingPoint num="0" id="6" />
 <extraparam>
-<Prop commName="channel2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -126,37 +106,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="27" index="10" uid="59b57c53-361d-4d0b-ad9f-57e6896d8134" >
-<father id="49" num="1" />
-<cdparam x="285" y="318" />
-<sizeparam width="169" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="302" minY="0" maxY="179" />
-<infoparam name="Primitive component" value="PrimitiveComp3" />
-<new d="false" />
-<TGConnectingPoint num="0" id="19" />
-<TGConnectingPoint num="1" id="20" />
-<TGConnectingPoint num="2" id="21" />
-<TGConnectingPoint num="3" id="22" />
-<TGConnectingPoint num="4" id="23" />
-<TGConnectingPoint num="5" id="24" />
-<TGConnectingPoint num="6" id="25" />
-<TGConnectingPoint num="7" id="26" />
-<extraparam>
-<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="18" index="11" uid="b299d365-3c3c-4763-89fa-c4acc3b57fb7" >
-<father id="27" num="0" />
-<cdparam x="441" y="352" />
+<SUBCOMPONENT type="1203" id="9" index="9" uid="f0a79524-a384-4ff6-8aa4-09cf80840d14" >
+<father id="18" num="1" />
+<cdparam x="564" y="196" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel2" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
 <new d="false" />
-<TGConnectingPoint num="0" id="17" />
+<TGConnectingPoint num="0" id="8" />
 <extraparam>
-<Prop commName="channel2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="event" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -164,39 +124,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="40" index="12" uid="0e802cc8-bbff-4d8f-b8b3-050d6942614d" >
-<father id="49" num="2" />
-<cdparam x="399" y="491" />
-<sizeparam width="169" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="31" index="10" uid="9be27848-9755-4443-b29b-a2064e01473e" >
+<father id="84" num="1" />
+<cdparam x="217" y="116" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="302" minY="0" maxY="248" />
-<infoparam name="Primitive component" value="PrimitiveComp5" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
+<infoparam name="Primitive component" value="PrimitiveComp1" />
 <new d="false" />
-<TGConnectingPoint num="0" id="32" />
-<TGConnectingPoint num="1" id="33" />
-<TGConnectingPoint num="2" id="34" />
-<TGConnectingPoint num="3" id="35" />
-<TGConnectingPoint num="4" id="36" />
-<TGConnectingPoint num="5" id="37" />
-<TGConnectingPoint num="6" id="38" />
-<TGConnectingPoint num="7" id="39" />
+<TGConnectingPoint num="0" id="23" />
+<TGConnectingPoint num="1" id="24" />
+<TGConnectingPoint num="2" id="25" />
+<TGConnectingPoint num="3" id="26" />
+<TGConnectingPoint num="4" id="27" />
+<TGConnectingPoint num="5" id="28" />
+<TGConnectingPoint num="6" id="29" />
+<TGConnectingPoint num="7" id="30" />
 <extraparam>
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
-<Attribute access="2" id="attr1" value="" type="0" typeOther="" />
-<Attribute access="2" id="attr2" value="" type="4" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="29" index="13" uid="9d86a4e4-c3f5-493e-903c-326b65065817" >
-<father id="40" num="0" />
-<cdparam x="508" y="559" />
+<SUBCOMPONENT type="1203" id="20" index="11" uid="9be66e5d-5680-4389-9a3f-0206b75ac2e0" >
+<father id="31" num="0" />
+<cdparam x="404" y="150" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Channel channel3" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel" />
 <new d="false" />
-<TGConnectingPoint num="0" id="28" />
+<TGConnectingPoint num="0" id="19" />
 <extraparam>
-<Prop commName="channel3" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -204,17 +162,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="31" index="14" uid="be53d99f-b7cb-493b-9fb8-223fda29c23f" >
-<father id="40" num="1" />
-<cdparam x="411" y="559" />
+<SUBCOMPONENT type="1203" id="22" index="12" uid="3c5a5c05-1d84-4042-9bb7-1a21b0e951f2" >
+<father id="31" num="1" />
+<cdparam x="404" y="195" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Channel channel3" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event event" />
 <new d="false" />
-<TGConnectingPoint num="0" id="30" />
+<TGConnectingPoint num="0" id="21" />
 <extraparam>
-<Prop commName="channel3" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="event" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -222,37 +180,59 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="62" index="15" uid="9be27848-9755-4443-b29b-a2064e01473e" >
-<father id="84" num="1" />
-<cdparam x="217" y="116" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1200" id="75" index="13" uid="fa608369-ff64-4b12-8b0f-7c6da178f79e" >
+<father id="84" num="2" />
+<cdparam x="266" y="278" />
+<sizeparam width="471" height="329" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
-<infoparam name="Primitive component" value="PrimitiveComp1" />
+<cdrectangleparam minX="0" maxX="201" minY="0" maxY="289" />
+<infoparam name="Composite component" value="CompositeComp2" />
 <new d="false" />
-<TGConnectingPoint num="0" id="54" />
-<TGConnectingPoint num="1" id="55" />
-<TGConnectingPoint num="2" id="56" />
-<TGConnectingPoint num="3" id="57" />
-<TGConnectingPoint num="4" id="58" />
-<TGConnectingPoint num="5" id="59" />
-<TGConnectingPoint num="6" id="60" />
-<TGConnectingPoint num="7" id="61" />
+<TGConnectingPoint num="0" id="67" />
+<TGConnectingPoint num="1" id="68" />
+<TGConnectingPoint num="2" id="69" />
+<TGConnectingPoint num="3" id="70" />
+<TGConnectingPoint num="4" id="71" />
+<TGConnectingPoint num="5" id="72" />
+<TGConnectingPoint num="6" id="73" />
+<TGConnectingPoint num="7" id="74" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="44" index="14" uid="0e802cc8-bbff-4d8f-b8b3-050d6942614d" >
+<father id="75" num="0" />
+<cdparam x="399" y="491" />
+<sizeparam width="169" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="248" />
+<infoparam name="Primitive component" value="PrimitiveComp5" />
+<new d="false" />
+<TGConnectingPoint num="0" id="36" />
+<TGConnectingPoint num="1" id="37" />
+<TGConnectingPoint num="2" id="38" />
+<TGConnectingPoint num="3" id="39" />
+<TGConnectingPoint num="4" id="40" />
+<TGConnectingPoint num="5" id="41" />
+<TGConnectingPoint num="6" id="42" />
+<TGConnectingPoint num="7" id="43" />
 <extraparam>
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+<Attribute access="2" id="attr1" value="" type="0" typeOther="" />
+<Attribute access="2" id="attr2" value="" type="4" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="51" index="16" uid="3c5a5c05-1d84-4042-9bb7-1a21b0e951f2" >
-<father id="62" num="0" />
-<cdparam x="404" y="195" />
+<SUBCOMPONENT type="1203" id="33" index="15" uid="be53d99f-b7cb-493b-9fb8-223fda29c23f" >
+<father id="44" num="0" />
+<cdparam x="411" y="559" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event event" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
 <new d="false" />
-<TGConnectingPoint num="0" id="50" />
+<TGConnectingPoint num="0" id="32" />
 <extraparam>
-<Prop commName="event" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel3" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -260,17 +240,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="53" index="17" uid="9be66e5d-5680-4389-9a3f-0206b75ac2e0" >
-<father id="62" num="1" />
-<cdparam x="404" y="150" />
+<SUBCOMPONENT type="1203" id="35" index="16" uid="9d86a4e4-c3f5-493e-903c-326b65065817" >
+<father id="44" num="1" />
+<cdparam x="508" y="559" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel channel3" />
 <new d="false" />
-<TGConnectingPoint num="0" id="52" />
+<TGConnectingPoint num="0" id="34" />
 <extraparam>
-<Prop commName="channel" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel3" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -278,37 +258,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="75" index="18" uid="35c4939c-38d1-47a1-b006-613944f2f885" >
-<father id="84" num="2" />
-<cdparam x="577" y="116" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="55" index="17" uid="59b57c53-361d-4d0b-ad9f-57e6896d8134" >
+<father id="75" num="1" />
+<cdparam x="285" y="318" />
+<sizeparam width="169" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="472" minY="0" maxY="468" />
-<infoparam name="Primitive component" value="PrimitiveComp2" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp3" />
 <new d="false" />
-<TGConnectingPoint num="0" id="67" />
-<TGConnectingPoint num="1" id="68" />
-<TGConnectingPoint num="2" id="69" />
-<TGConnectingPoint num="3" id="70" />
-<TGConnectingPoint num="4" id="71" />
-<TGConnectingPoint num="5" id="72" />
-<TGConnectingPoint num="6" id="73" />
-<TGConnectingPoint num="7" id="74" />
+<TGConnectingPoint num="0" id="47" />
+<TGConnectingPoint num="1" id="48" />
+<TGConnectingPoint num="2" id="49" />
+<TGConnectingPoint num="3" id="50" />
+<TGConnectingPoint num="4" id="51" />
+<TGConnectingPoint num="5" id="52" />
+<TGConnectingPoint num="6" id="53" />
+<TGConnectingPoint num="7" id="54" />
 <extraparam>
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="64" index="19" uid="f0a79524-a384-4ff6-8aa4-09cf80840d14" >
-<father id="75" num="0" />
-<cdparam x="564" y="196" />
+<SUBCOMPONENT type="1203" id="46" index="18" uid="b299d365-3c3c-4763-89fa-c4acc3b57fb7" >
+<father id="55" num="0" />
+<cdparam x="441" y="352" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event event" />
+<cdrectangleparam minX="-13" maxX="156" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Channel channel2" />
 <new d="false" />
-<TGConnectingPoint num="0" id="63" />
+<TGConnectingPoint num="0" id="45" />
 <extraparam>
-<Prop commName="event" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -316,17 +296,37 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="66" index="20" uid="ddecd86e-4901-4709-91c6-defbef233aa6" >
-<father id="75" num="1" />
-<cdparam x="564" y="151" />
+<SUBCOMPONENT type="1202" id="66" index="19" uid="d5af42cd-aaeb-4fb9-8371-fef423051975" >
+<father id="75" num="2" />
+<cdparam x="527" y="316" />
+<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="179" />
+<infoparam name="Primitive component" value="PrimitiveComp4" />
+<new d="false" />
+<TGConnectingPoint num="0" id="58" />
+<TGConnectingPoint num="1" id="59" />
+<TGConnectingPoint num="2" id="60" />
+<TGConnectingPoint num="3" id="61" />
+<TGConnectingPoint num="4" id="62" />
+<TGConnectingPoint num="5" id="63" />
+<TGConnectingPoint num="6" id="64" />
+<TGConnectingPoint num="7" id="65" />
+<extraparam>
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="57" index="20" uid="0ed01ee0-d206-413a-a6a6-084865e95784" >
+<father id="66" num="0" />
+<cdparam x="514" y="351" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel channel" />
+<infoparam name="Primitive port" value="Channel channel2" />
 <new d="false" />
-<TGConnectingPoint num="0" id="65" />
+<TGConnectingPoint num="0" id="56" />
 <extraparam>
-<Prop commName="channel" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -354,9 +354,9 @@
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="86" index="21" uid="20e189ea-c0cb-4eaa-89f8-848ab0580101" >
+<SUBCOMPONENT type="1203" id="86" index="21" uid="9019dfe4-1635-43c0-ba4b-71c20fba6654" >
 <father id="97" num="0" />
-<cdparam x="1118" y="335" />
+<cdparam x="1118" y="392" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
@@ -364,7 +364,7 @@
 <new d="false" />
 <TGConnectingPoint num="0" id="85" />
 <extraparam>
-<Prop commName="channel4" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel4" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -372,9 +372,9 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="88" index="22" uid="9019dfe4-1635-43c0-ba4b-71c20fba6654" >
+<SUBCOMPONENT type="1203" id="88" index="22" uid="20e189ea-c0cb-4eaa-89f8-848ab0580101" >
 <father id="97" num="1" />
-<cdparam x="1118" y="392" />
+<cdparam x="1118" y="335" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
@@ -382,7 +382,7 @@
 <new d="false" />
 <TGConnectingPoint num="0" id="87" />
 <extraparam>
-<Prop commName="channel4" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="channel4" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1464,13 +1464,13 @@
 <attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="279" index="15" uid="36898c44-6f45-4a1c-b0d2-9c548d25d9f4" >
+<SUBCOMPONENT type="1101" id="279" index="13" uid="6a4f0c1d-e492-4a15-b14f-8f38af9f80d4" >
 <father id="349" num="0" />
-<cdparam x="376" y="255" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="110" y="152" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
 <new d="false" />
 <TGConnectingPoint num="0" id="271" />
 <TGConnectingPoint num="1" id="272" />
@@ -1481,16 +1481,16 @@
 <TGConnectingPoint num="6" id="277" />
 <TGConnectingPoint num="7" id="278" />
 <extraparam>
-<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="288" index="16" uid="6771df13-5a2d-4df0-81df-3a43e5cc00e5" >
+<SUBCOMPONENT type="1101" id="288" index="14" uid="39fff73a-8d03-4f01-badd-7758efd84065" >
 <father id="349" num="1" />
-<cdparam x="371" y="203" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="111" y="201" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
 <new d="false" />
 <TGConnectingPoint num="0" id="280" />
 <TGConnectingPoint num="1" id="281" />
@@ -1501,16 +1501,16 @@
 <TGConnectingPoint num="6" id="286" />
 <TGConnectingPoint num="7" id="287" />
 <extraparam>
-<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="297" index="17" uid="348009d2-735e-4954-9e0e-c8fdf3138bff" >
+<SUBCOMPONENT type="1101" id="297" index="15" uid="3f6e51d4-bdb4-4a88-9bfe-6c303449b749" >
 <father id="349" num="2" />
-<cdparam x="393" y="144" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="112" y="261" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp4" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
 <new d="false" />
 <TGConnectingPoint num="0" id="289" />
 <TGConnectingPoint num="1" id="290" />
@@ -1521,16 +1521,16 @@
 <TGConnectingPoint num="6" id="295" />
 <TGConnectingPoint num="7" id="296" />
 <extraparam>
-<info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="306" index="18" uid="3f6e51d4-bdb4-4a88-9bfe-6c303449b749" >
+<SUBCOMPONENT type="1101" id="306" index="16" uid="348009d2-735e-4954-9e0e-c8fdf3138bff" >
 <father id="349" num="3" />
-<cdparam x="112" y="261" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="393" y="144" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp3" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp4" />
 <new d="false" />
 <TGConnectingPoint num="0" id="298" />
 <TGConnectingPoint num="1" id="299" />
@@ -1541,16 +1541,16 @@
 <TGConnectingPoint num="6" id="304" />
 <TGConnectingPoint num="7" id="305" />
 <extraparam>
-<info value="Application::PrimitiveComp3" taskName="PrimitiveComp3" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp4" taskName="PrimitiveComp4" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="315" index="19" uid="39fff73a-8d03-4f01-badd-7758efd84065" >
+<SUBCOMPONENT type="1101" id="315" index="17" uid="6771df13-5a2d-4df0-81df-3a43e5cc00e5" >
 <father id="349" num="4" />
-<cdparam x="111" y="201" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="371" y="203" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp2" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp5" />
 <new d="false" />
 <TGConnectingPoint num="0" id="307" />
 <TGConnectingPoint num="1" id="308" />
@@ -1561,16 +1561,16 @@
 <TGConnectingPoint num="6" id="313" />
 <TGConnectingPoint num="7" id="314" />
 <extraparam>
-<info value="Application::PrimitiveComp2" taskName="PrimitiveComp2" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp5" taskName="PrimitiveComp5" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp5" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="324" index="20" uid="6a4f0c1d-e492-4a15-b14f-8f38af9f80d4" >
+<SUBCOMPONENT type="1101" id="324" index="18" uid="36898c44-6f45-4a1c-b0d2-9c548d25d9f4" >
 <father id="349" num="5" />
-<cdparam x="110" y="152" />
-<sizeparam width="207" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="376" y="255" />
+<sizeparam width="198" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="345" minY="0" maxY="185" />
-<infoparam name="TGComponent" value="Application::PrimitiveComp1" />
+<cdrectangleparam minX="0" maxX="354" minY="0" maxY="185" />
+<infoparam name="TGComponent" value="Application::PrimitiveComp6" />
 <new d="false" />
 <TGConnectingPoint num="0" id="316" />
 <TGConnectingPoint num="1" id="317" />
@@ -1581,49 +1581,12 @@
 <TGConnectingPoint num="6" id="322" />
 <TGConnectingPoint num="7" id="323" />
 <extraparam>
-<info value="Application::PrimitiveComp1" taskName="PrimitiveComp1" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp4" fatherComponentMECType="0" />
+<info value="Application::PrimitiveComp6" taskName="PrimitiveComp6" referenceTaskName="Application" priority="0" operationMEC="PrimitiveComp6" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1100" id="374" index="1" uid="4a1faa36-2017-4ca8-a8c7-4266fba9e293" >
-<cdparam x="991" y="100" />
-<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="CPU1" value="name" />
-<new d="false" />
-<TGConnectingPoint num="0" id="350" />
-<TGConnectingPoint num="1" id="351" />
-<TGConnectingPoint num="2" id="352" />
-<TGConnectingPoint num="3" id="353" />
-<TGConnectingPoint num="4" id="354" />
-<TGConnectingPoint num="5" id="355" />
-<TGConnectingPoint num="6" id="356" />
-<TGConnectingPoint num="7" id="357" />
-<TGConnectingPoint num="8" id="358" />
-<TGConnectingPoint num="9" id="359" />
-<TGConnectingPoint num="10" id="360" />
-<TGConnectingPoint num="11" id="361" />
-<TGConnectingPoint num="12" id="362" />
-<TGConnectingPoint num="13" id="363" />
-<TGConnectingPoint num="14" id="364" />
-<TGConnectingPoint num="15" id="365" />
-<TGConnectingPoint num="16" id="366" />
-<TGConnectingPoint num="17" id="367" />
-<TGConnectingPoint num="18" id="368" />
-<TGConnectingPoint num="19" id="369" />
-<TGConnectingPoint num="20" id="370" />
-<TGConnectingPoint num="21" id="371" />
-<TGConnectingPoint num="22" id="372" />
-<TGConnectingPoint num="23" id="373" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU1" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1107" id="399" index="2" uid="93a76056-6fc0-498f-a49d-d329c3e624ec" >
-<cdparam x="699" y="398" />
+<COMPONENT type="1107" id="399" index="1" uid="93a76056-6fc0-498f-a49d-d329c3e624ec" >
+<cdparam x="868" y="390" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -1659,9 +1622,9 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="424" index="3" uid="4ecdf5d5-1dcd-4170-9d35-372d61cb4f7b" >
+<COMPONENT type="1105" id="424" index="2" uid="4ecdf5d5-1dcd-4170-9d35-372d61cb4f7b" >
 <cdparam x="344" y="601" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="453" height="303" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Memory0" value="name" />
@@ -1695,8 +1658,108 @@
 <attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
+<SUBCOMPONENT type="1111" id="645" index="19" uid="a32a3295-0efe-4b57-a608-50f57ba3d815" >
+<father id="424" num="0" />
+<cdparam x="629" y="685" />
+<sizeparam width="78" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="378" minY="0" maxY="263" />
+<infoparam name="TGComponent" value="encryption1" />
+<new d="false" />
+<TGConnectingPoint num="0" id="646" />
+<TGConnectingPoint num="1" id="647" />
+<TGConnectingPoint num="2" id="648" />
+<TGConnectingPoint num="3" id="649" />
+<TGConnectingPoint num="4" id="650" />
+<TGConnectingPoint num="5" id="651" />
+<TGConnectingPoint num="6" id="652" />
+<TGConnectingPoint num="7" id="653" />
+<extraparam>
+<info value="encryption1" referenceKeyName="encryption1" priority="5" typeName="key" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="636" index="20" uid="8965f59a-7431-4124-b159-45f050ab0fb1" >
+<father id="424" num="1" />
+<cdparam x="424" y="840" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="294" minY="0" maxY="263" />
+<infoparam name="TGComponent" value="Application::channel4" />
+<new d="false" />
+<TGConnectingPoint num="0" id="637" />
+<TGConnectingPoint num="1" id="638" />
+<TGConnectingPoint num="2" id="639" />
+<TGConnectingPoint num="3" id="640" />
+<TGConnectingPoint num="4" id="641" />
+<TGConnectingPoint num="5" id="642" />
+<TGConnectingPoint num="6" id="643" />
+<TGConnectingPoint num="7" id="644" />
+<extraparam>
+<info value="Application::channel4" communicationName="channel4" referenceCommunicationName="Application" mappedElements="Bus0" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="627" index="21" uid="5e016d70-42a6-4126-a500-5c322db275e7" >
+<father id="424" num="2" />
+<cdparam x="417" y="772" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="294" minY="0" maxY="263" />
+<infoparam name="TGComponent" value="Application::channel3" />
+<new d="false" />
+<TGConnectingPoint num="0" id="628" />
+<TGConnectingPoint num="1" id="629" />
+<TGConnectingPoint num="2" id="630" />
+<TGConnectingPoint num="3" id="631" />
+<TGConnectingPoint num="4" id="632" />
+<TGConnectingPoint num="5" id="633" />
+<TGConnectingPoint num="6" id="634" />
+<TGConnectingPoint num="7" id="635" />
+<extraparam>
+<info value="Application::channel3" communicationName="channel3" referenceCommunicationName="Application" mappedElements="Bus0" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="618" index="22" uid="cc2904ff-bc52-42b6-b87f-a8821c3d2e6b" >
+<father id="424" num="3" />
+<cdparam x="415" y="709" />
+<sizeparam width="159" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="294" minY="0" maxY="263" />
+<infoparam name="TGComponent" value="Application::channel2" />
+<new d="false" />
+<TGConnectingPoint num="0" id="619" />
+<TGConnectingPoint num="1" id="620" />
+<TGConnectingPoint num="2" id="621" />
+<TGConnectingPoint num="3" id="622" />
+<TGConnectingPoint num="4" id="623" />
+<TGConnectingPoint num="5" id="624" />
+<TGConnectingPoint num="6" id="625" />
+<TGConnectingPoint num="7" id="626" />
+<extraparam>
+<info value="Application::channel2" communicationName="channel2" referenceCommunicationName="Application" mappedElements="Bus0" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1103" id="609" index="23" uid="5d13353d-f5d8-4257-9803-fa354216bb3c" >
+<father id="424" num="4" />
+<cdparam x="413" y="654" />
+<sizeparam width="151" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="302" minY="0" maxY="263" />
+<infoparam name="TGComponent" value="Application::channel" />
+<new d="false" />
+<TGConnectingPoint num="0" id="610" />
+<TGConnectingPoint num="1" id="611" />
+<TGConnectingPoint num="2" id="612" />
+<TGConnectingPoint num="3" id="613" />
+<TGConnectingPoint num="4" id="614" />
+<TGConnectingPoint num="5" id="615" />
+<TGConnectingPoint num="6" id="616" />
+<TGConnectingPoint num="7" id="617" />
+<extraparam>
+<info value="Application::channel" communicationName="channel" referenceCommunicationName="Application" mappedElements="Bus0" priority="0" typeName="channel" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="1102" id="449" index="4" uid="dd2d9143-9d10-4642-98c4-e86464b87c48" >
+<COMPONENT type="1102" id="449" index="3" uid="dd2d9143-9d10-4642-98c4-e86464b87c48" >
 <cdparam x="316" y="416" />
 <sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1733,7 +1796,7 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1116" id="474" index="5" uid="2b132fe1-d097-4c6f-80a7-45c64804a361" >
+<COMPONENT type="1116" id="474" index="4" uid="2b132fe1-d097-4c6f-80a7-45c64804a361" >
 <cdparam x="74" y="596" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1770,8 +1833,8 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1104" id="499" index="6" uid="404cc939-1c43-468f-8c5e-fc73e9c4705d" >
-<cdparam x="672" y="681" />
+<COMPONENT type="1104" id="499" index="5" uid="404cc939-1c43-468f-8c5e-fc73e9c4705d" >
+<cdparam x="883" y="624" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -1807,8 +1870,8 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1106" id="524" index="7" uid="db06ab28-3174-4247-8cee-726e80b1dd43" >
-<cdparam x="13" y="416" />
+<COMPONENT type="1106" id="524" index="6" uid="db06ab28-3174-4247-8cee-726e80b1dd43" >
+<cdparam x="806" y="227" />
 <sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -1844,44 +1907,7 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1117" id="549" index="8" uid="be2e77f3-a26b-477a-ad2b-1b2bba8680f6" >
-<cdparam x="686" y="230" />
-<sizeparam width="250" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="NoC0" value="name" />
-<new d="false" />
-<TGConnectingPoint num="0" id="525" />
-<TGConnectingPoint num="1" id="526" />
-<TGConnectingPoint num="2" id="527" />
-<TGConnectingPoint num="3" id="528" />
-<TGConnectingPoint num="4" id="529" />
-<TGConnectingPoint num="5" id="530" />
-<TGConnectingPoint num="6" id="531" />
-<TGConnectingPoint num="7" id="532" />
-<TGConnectingPoint num="8" id="533" />
-<TGConnectingPoint num="9" id="534" />
-<TGConnectingPoint num="10" id="535" />
-<TGConnectingPoint num="11" id="536" />
-<TGConnectingPoint num="12" id="537" />
-<TGConnectingPoint num="13" id="538" />
-<TGConnectingPoint num="14" id="539" />
-<TGConnectingPoint num="15" id="540" />
-<TGConnectingPoint num="16" id="541" />
-<TGConnectingPoint num="17" id="542" />
-<TGConnectingPoint num="18" id="543" />
-<TGConnectingPoint num="19" id="544" />
-<TGConnectingPoint num="20" id="545" />
-<TGConnectingPoint num="21" id="546" />
-<TGConnectingPoint num="22" id="547" />
-<TGConnectingPoint num="23" id="548" />
-<extraparam>
-<info stereotype="NoC" nodeName="NoC0" />
-<attributes bufferByteDataSize="4"  size="2"  placement="CPU1 1 0"  clockRatio="1" />
-</extraparam>
-</COMPONENT>
-
-<CONNECTOR type="125" id="550" index="9" uid="85054cb4-6611-429e-8159-2e4cd4a8fade" >
+<CONNECTOR type="125" id="550" index="7" uid="85054cb4-6611-429e-8159-2e4cd4a8fade" >
 <cdparam x="199" y="596" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
@@ -1894,11 +1920,11 @@
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="551" index="10" uid="cfd81448-4fc3-4756-90ce-7c54ac45a969" >
+<CONNECTOR type="125" id="551" index="8" uid="cfd81448-4fc3-4756-90ce-7c54ac45a969" >
 <cdparam x="262" y="461" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="263" y="466" id="504" />
+<P1  x="1056" y="277" id="504" />
 <P2  x="316" y="441" id="428" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -1907,11 +1933,11 @@
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="552" index="11" uid="660bc149-89a7-4e30-9681-81175982b4fe" >
+<CONNECTOR type="125" id="552" index="9" uid="660bc149-89a7-4e30-9681-81175982b4fe" >
 <cdparam x="770" y="476" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="699" y="448" id="385" />
+<P1  x="868" y="440" id="385" />
 <P2  x="566" y="441" id="429" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -1920,11 +1946,11 @@
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="553" index="12" uid="71bfe2a4-9928-49ed-93cc-f626d227a7e7" >
+<CONNECTOR type="125" id="553" index="10" uid="71bfe2a4-9928-49ed-93cc-f626d227a7e7" >
 <cdparam x="298" y="533" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="444" y="601" id="401" />
+<P1  x="570" y="601" id="401" />
 <P2  x="441" y="466" id="431" />
 <AutomaticDrawing  data="true" />
 <new d="false" />
@@ -1933,7 +1959,7 @@
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="554" index="13" uid="ab183948-ca5f-4609-acb8-0626992f702a" >
+<CONNECTOR type="125" id="554" index="11" uid="ab183948-ca5f-4609-acb8-0626992f702a" >
 <cdparam x="444" y="328" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
@@ -1946,11 +1972,11 @@
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="555" index="14" uid="f9884ba6-40a9-48b1-b7bf-90cb8396184c" >
+<CONNECTOR type="125" id="555" index="12" uid="f9884ba6-40a9-48b1-b7bf-90cb8396184c" >
 <cdparam x="759" y="623" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="722" y="681" id="483" />
+<P1  x="933" y="624" id="483" />
 <P2  x="503" y="466" id="440" />
 <AutomaticDrawing  data="true" />
 <new d="false" />